Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - karurosu

#1
Hola buen día amigos.

Estoy desarrollando un tutorial de la página de Game Maker y para hacerlo más detallado se me ocurrió la idea de darle una posición específica a cada objeto que puede recoger el player en el videojuego desarrollado y que dé la impresión de que sostiene cada objeto correctamente según su tamaño.

Para ello mi idea es hacer tres arreglos que le den la posición al objeto en X, Y y la profundidad, sin embargo estos objetos aparecen en el mapa del juego y heredan sus variables de un objeto padre (obj_par_item), así que se me hizo fácil añadir solamente un switch con la variable obj_par_item.itemName (variable heredada por todos los objetos que cambia de nombre según el objeto) para extraer el nombre de cada objeto recogido por el player (solamente puede cargar un objeto a la vez) y así dar la posición específica para cada objeto.

Mi sorpresa es que al mostrar en consola el valor del itemName siempre sale el mismo valor (que es el nombre del primer objeto hijo Rolling Pin) independientemente del objeto que tome, puede ser el primer elemento, el segundo, tercero, etc. ¿alguien sabe a qué se debe esto?

¡Muchas gracias!

Adjunto imágenes del ejercicio

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Adjunto el código de mi script:
Código: php
// script de objeto
function scr_itemPosition(){
    var _x, _y, _depth;
    var _x_object = array_create(4), _y_object = array_create(4), _depth_object = array_create(4);
    
    show_debug_message(obj_par_item.itemName);
    
    switch(obj_par_item.itemName){
        case "Rolling Pin":
            //derecha
            _x_object[0] = 65;
            _y_object[0] = 104;
            _depth_object[0] = 2;
            //arriba
            _x_object[1] = 0;
            _y_object[1] = 95;
            _depth_object[1] = 2;
            //izquierda
            _x_object[2] = 65;
            _y_object[2] = 106;
            _depth_object[2] = 2;
            //abajo
            _x_object[3] = 0;
            _y_object[3] = 95;
            _depth_object[3] = 2;
        break;
        case "Apple":
            //derecha
            _x_object[0] = 10;
            _y_object[0] = 104;
            _depth_object[0] = 2;
            //arriba
            _x_object[1] = 0;
            _y_object[1] = 95;
            _depth_object[1] = 2;
            //izquierda
            _x_object[2] = 65;
            _y_object[2] = 106;
            _depth_object[2] = 2;
            //abajo
            _x_object[3] = 0;
            _y_object[3] = 95;
            _depth_object[3] = 2;
        break;
    }
    
    if(instance_exists(obj_player)){
        switch obj_player.dir{
            case 0://derecha
                _x = obj_player.x + _x_object[0];
                _y = obj_player.y - _y_object[0];
                _depth = obj_player.depth - _depth_object[0];
            break;
            case 1://arriba
                _x = obj_player.x + _x_object[1];
                _y = obj_player.y - _y_object[1];
                _depth = obj_player.depth + _depth_object[1];
            break;
            case 2://izquierda
                _x = obj_player.x - _x_object[2];
                _y = obj_player.y - _y_object[2];
                _depth = obj_player.depth - _depth_object[2];
            break;
            case 3://abajo
                _x = obj_player.x + _x_object[3];
                _y = obj_player.y - _y_object[3];
                _depth = obj_player.depth - _depth_object[3];
            break;
        }
    
        return [_x, _y, _depth];
    }
}

#2
Hola buenas tardes a todos!

Hace poco hice un procedimiento que se ejecutará cada 1 y 16 de cada mes siempre y cuando sea día hábil, y si el 1 o el 16 cae en fin de semana entonces dicho procedimiento se debe ejecutar el lunes más próximo al 1 o al 16, con esto en mente me surgió la duda, ¿Alguien sabrá si esta ejecución se puede realizar configurando un job en oracle? ¿O es necesario hacer esta validación en el procedimiento como tal?

¡Muchas gracias por sus respuestas!
#3
Buenas tardes.

Quisiera ver si alguien me puede ayudar con algún ejemplo ya que he estado buscando y no he tenido éxito al querer comunicarme con un webservice y recibir su respuesta en Json, todo esto desde pl sql, actualmente cuento con la versión 10g de oracle.

¡gracias y saludos!
#4
Dudas y pedidos generales / Duda brackets
Febrero 02, 2019, 01:29:47 AM
Buenas noches,  he estado buscando en la red sobre alguna extensión que me permita abrir los archivos que están dentro de un include, como en los otros editores de texto en los que abres un archivo con ctrl + clic derecho, si alguien sabe de alguna extensión para esto en brackets se lo agradecería, así como para marcar una línea de código, ¡muchas gracias!

#5
Hola qué tal, hace tiempo que utilizo para jugar en mi laptop unos controles de xbox 360, hace poco decidí comprar un juego en Steam y cuando conecté los controles pareciera que el driver se instaló de nuevo o se configuró para Steam (era la primera vez que los conectaba con Steam abierto), luego de eso me dan como "falso contacto", ya que a cada rato mientras tengo el juego abierto me dice que el control se deconecta y suena el pitido típico del USB desconectándose, ya reinstalé los drivers y limpié caché y errores de registro pero nada ha funcionado, contacté a Microsoft y su solución es formatear el equipo, ¿algún consejo?, ¡saludos!
#6
C / C++ / Perceptrón en C
Marzo 30, 2016, 02:22:13 PM
Buenas, les quiero compartir este código que recién hice, se trata de un perceptrón hecho en C, en mi caso analiza 20 patrones con 64 elementos cada uno (más el primer elemento por default siendo 65), todo lo leo de un archivo .txt lo almaceno en arreglos y realizo las operaciones, para los que no saben que es un perceptrón es un método para comparar patrones que pueden ser linealmente separables, esto verifica que cierto patrón coincida con un valor, en mi caso debe coincidir con las salidas deseadas de mi .txt, en fin les dejo el código:

Código: c
#include <stdio.h>
#include <stdlib.h>

//Declaración de variables globales
char numeroPatron[20][2];
int patrones[20][65];
float salidaDeseada[20];
float pesos[65];
int contadorElementos, contadorPatrones;
float FP[20];
int SP [20];

//Paso 1 se lee el archivo que contiene los patrones
void leerArchivo()
{
     int contadorPatron, contadorNumeros1, contadorNumeros2;
     
     contadorNumeros1 = 0;
     
     printf("Los patrones son: \n");
     
     //Se declara un apuntador al archivo
     FILE * fichero;
     //Se abre el archivo para lectura con "r"
     fichero = fopen ("patrones.txt", "r");
     
     contadorPatrones = 0;
     for (contadorPatron = 0; contadorPatron < 20; contadorPatron++)
     {
         contadorElementos = 1;
         contadorPatrones++;
         //Se lee el valor del documento y se guarda en el arreglo
         fscanf(fichero, "%s", &numeroPatron[contadorPatron]);
         printf("%s\n", numeroPatron[contadorPatron]);
         patrones [contadorNumeros1][0] = 1;
         printf("%d", patrones[contadorNumeros1][0]);
         
         for (contadorNumeros2 = 1; contadorNumeros2 < 65; contadorNumeros2++)
         {
             fscanf(fichero, "%d", &patrones[contadorNumeros1][contadorNumeros2]);
             printf("%d", patrones[contadorNumeros1][contadorNumeros2]);
             contadorElementos++;
         }
         
         fscanf(fichero, "%f", &salidaDeseada[contadorPatron]);
         printf("\n%.2f\n", salidaDeseada[contadorPatron]);
         
         contadorNumeros1++;
     }
     //Se cierra el archivo
     fclose(fichero);
}

void primerosPesos()
{
     int x;
     time_t t;
     
     sleep(5000);
     system("CLS");
         
     srand((unsigned) time(&t));
     printf ("Pesos\n\n");
     for (x = 0; x < contadorElementos; x++)
     {
         pesos [x] = rand() % 201;
         if (pesos[x] <= 100)
         {
            pesos [x] = pesos[x] / -100;             
         }else
         {
            pesos [x] = pesos[x] / 200;
         }
         printf("w%d = %.2f\n", x, pesos[x]);
     }   
}

void recalcularPesos(int y, int bandera)
    {
         int x, z;
         float n = 0.1;
         
         printf("Los nuevos pesos son: \n");
         for(x = 0; x < contadorElementos; x++)
         {
               if (bandera == 1){
                           pesos[x] = pesos[x] + n * patrones [y] [x];
               }
               if (bandera == 0){
                           pesos[x] = pesos[x] - n * patrones [y] [x];
               }
               printf("w%d = %.2f\n", x + 1, pesos[x]);
         }
         printf("\n\n");
    }

void funcionPropagacion()
    {
         int x, y, umbral = 0, malclasificados = 0, bandera1;
         
         printf ("\nCalculando funcion de propagacion y salida del Perceptron\n\n"); 
               
               for (x = 0; x < contadorPatrones; x++)
               {
                   FP [x] = 0;
               }
               
               for (x = 0; x < contadorPatrones; x++)
               {
                 printf ("FP%d = ", x + 1);
                 for (y = 0; y < contadorElementos; y++)
                 {
                     FP [x] = FP [x] + pesos [y] * patrones [x] [y];
                     printf ("%.2f * %d + ", pesos[y], patrones [x] [y]);
                 }
                 printf ("= %.2f\n", FP[x]);
                 
                 if(FP [x] > umbral)
                 {
                       SP[x] = 1;
                 }
                 else{
                      SP[x] = -1;
                 }
                 printf ("SP%d = %d\n", x + 1, SP[x]);
                 if (salidaDeseada [x] != SP[x])
                 {
                       malclasificados = malclasificados + 1;
                 }
             }
             printf ("Los mal clasificados son %d\n", malclasificados);
             sleep(5000);
             while(malclasificados > 0)
             {
                                   system("CLS");
                                   malclasificados = 0;
               
                                   for (x = 0; x < contadorPatrones; x++)
                                   {
                                       FP [x] = 0;
                                   }
               
                                   for (x = 0; x < contadorPatrones; x++)
                                   {
                                     printf ("FP%d = ", x + 1);
                                     for (y = 0; y < contadorElementos; y++)
                                     {
                                         FP [x] = FP [x] + pesos [y] * patrones [x] [y];
                                         printf ("%.2f * %d + ", pesos[y], patrones [x] [y]);
                                     }
                                     printf ("= %.2f\n", FP[x]);
                                     
                                     if(FP [x] > umbral)
                                     {
                                           SP[x] = 1;
                                     }
                                     else{
                                          SP[x] = -1;
                                     }
                                     printf ("SP%d = %d\n", x + 1, SP[x]);
                                     if (salidaDeseada [x] != SP[x])
                                     {
                                           printf("\nLos valores son distintos se recalcularan los pesos...\n");
                                           system("CLS");
                                           if (SP[x] < salidaDeseada [x])
                                           {
                                                     bandera1 = 1;
                                           }else{
                                                     bandera1 = 0;
                                           }
                                           recalcularPesos(x, bandera1);
                                           malclasificados = malclasificados + 1;
                                     }
                                 }
               }                       
   
         printf ("\nLas salidas son las deseadas!\n\n");
         printf ("Los pesos son:\n");
         for (x = 0; x < contadorElementos; x++)
         {
             printf ("w%d = %.2f\n", x + 1, pesos[x]);
         }
}

int main()
{
  leerArchivo();
  primerosPesos();
  funcionPropagacion();
  system("PAUSE");
}   


Espero que le sirva a alguien, saludos.  :)
#7
C / C++ / Perceptrón en C
Marzo 29, 2016, 04:22:22 PM
Buenas, les quiero compartir este código que recién hice, se trata de un perceptrón hecho en C, en mi caso analiza 20 patrones con 64 elementos cada uno (más el primer elemento por default siendo 65), todo lo leo de un archivo .txt lo almaceno en arreglos y realizo las operaciones, para los que no saben que es un perceptrón es un método para comparar patrones que pueden ser linealmente separables, esto verifica que cierto patrón coincida con un valor, en mi caso debe coincidir con las salidas deseadas de mi .txt, en fin les dejo el código:

Código: php
#include <stdio.h>
#include <stdlib.h>

//Declaración de variables globales
char numeroPatron[20][2];
int patrones[20][65];
float salidaDeseada[20];
float pesos[65];
int contadorElementos, contadorPatrones;
float FP[20];
int SP [20];

//Paso 1 se lee el archivo que contiene los patrones
void leerArchivo()
{
     int contadorPatron, contadorNumeros1, contadorNumeros2;
     
     contadorNumeros1 = 0;
     
     printf("Los patrones son: \n");
     
     //Se declara un apuntador al archivo
     FILE * fichero;
     //Se abre el archivo para lectura con "r"
     fichero = fopen ("patrones.txt", "r");
     
     contadorPatrones = 0;
     for (contadorPatron = 0; contadorPatron < 20; contadorPatron++)
     {
         contadorElementos = 1;
         contadorPatrones++;
         //Se lee el valor del documento y se guarda en el arreglo
         fscanf(fichero, "%s", &numeroPatron[contadorPatron]);
         printf("%s\n", numeroPatron[contadorPatron]);
         patrones [contadorNumeros1][0] = 1;
         printf("%d", patrones[contadorNumeros1][0]);
         
         for (contadorNumeros2 = 1; contadorNumeros2 < 65; contadorNumeros2++)
         {
             fscanf(fichero, "%d", &patrones[contadorNumeros1][contadorNumeros2]);
             printf("%d", patrones[contadorNumeros1][contadorNumeros2]);
             contadorElementos++;
         }
         
         fscanf(fichero, "%f", &salidaDeseada[contadorPatron]);
         printf("\n%.2f\n", salidaDeseada[contadorPatron]);
         
         contadorNumeros1++;
     }
     //Se cierra el archivo
     fclose(fichero);
}

void primerosPesos()
{
     int x;
     time_t t;
     
     sleep(5000);
     system("CLS");
         
     srand((unsigned) time(&t));
     printf ("Pesos\n\n");
     for (x = 0; x < contadorElementos; x++)
     {
         pesos [x] = rand() % 201;
         if (pesos[x] <= 100)
         {
            pesos [x] = pesos[x] / -100;             
         }else
         {
            pesos [x] = pesos[x] / 200;
         }
         printf("w%d = %.2f\n", x, pesos[x]);
     }   
}

void recalcularPesos(int y, int bandera)
    {
         int x, z;
         float n = 0.1;
         
         printf("Los nuevos pesos son: \n");
         for(x = 0; x < contadorElementos; x++)
         {
               if (bandera == 1){
                           pesos[x] = pesos[x] + n * patrones [y] [x];
               }
               if (bandera == 0){
                           pesos[x] = pesos[x] - n * patrones [y] [x];
               }
               printf("w%d = %.2f\n", x + 1, pesos[x]);
         }
         printf("\n\n");
    }

void funcionPropagacion()
    {
         int x, y, umbral = 0, malclasificados = 0, bandera1;
         
         printf ("\nCalculando funcion de propagacion y salida del Perceptron\n\n"); 
               
               for (x = 0; x < contadorPatrones; x++)
               {
                   FP [x] = 0;
               }
               
               for (x = 0; x < contadorPatrones; x++)
               {
                 printf ("FP%d = ", x + 1);
                 for (y = 0; y < contadorElementos; y++)
                 {
                     FP [x] = FP [x] + pesos [y] * patrones [x] [y];
                     printf ("%.2f * %d + ", pesos[y], patrones [x] [y]);
                 }
                 printf ("= %.2f\n", FP[x]);
                 
                 if(FP [x] > umbral)
                 {
                       SP[x] = 1;
                 }
                 else{
                      SP[x] = -1;
                 }
                 printf ("SP%d = %d\n", x + 1, SP[x]);
                 if (salidaDeseada [x] != SP[x])
                 {
                       malclasificados = malclasificados + 1;
                 }
             }
             printf ("Los mal clasificados son %d\n", malclasificados);
             sleep(5000);
             while(malclasificados > 0)
             {
                                   system("CLS");
                                   malclasificados = 0;
               
                                   for (x = 0; x < contadorPatrones; x++)
                                   {
                                       FP [x] = 0;
                                   }
               
                                   for (x = 0; x < contadorPatrones; x++)
                                   {
                                     printf ("FP%d = ", x + 1);
                                     for (y = 0; y < contadorElementos; y++)
                                     {
                                         FP [x] = FP [x] + pesos [y] * patrones [x] [y];
                                         printf ("%.2f * %d + ", pesos[y], patrones [x] [y]);
                                     }
                                     printf ("= %.2f\n", FP[x]);
                                     
                                     if(FP [x] > umbral)
                                     {
                                           SP[x] = 1;
                                     }
                                     else{
                                          SP[x] = -1;
                                     }
                                     printf ("SP%d = %d\n", x + 1, SP[x]);
                                     if (salidaDeseada [x] != SP[x])
                                     {
                                           printf("\nLos valores son distintos se recalcularan los pesos...\n");
                                           system("CLS");
                                           if (SP[x] < salidaDeseada [x])
                                           {
                                                     bandera1 = 1;
                                           }else{
                                                     bandera1 = 0;
                                           }
                                           recalcularPesos(x, bandera1);
                                           malclasificados = malclasificados + 1;
                                     }
                                 }
               }                       
   
         printf ("\nLas salidas son las deseadas!\n\n");
         printf ("Los pesos son:\n");
         for (x = 0; x < contadorElementos; x++)
         {
             printf ("w%d = %.2f\n", x + 1, pesos[x]);
         }
}

int main()
{
  leerArchivo();
  primerosPesos();
  funcionPropagacion();
  system("PAUSE");
}   


Espero que le sirva a alguien, saludos.  :)
#8



Después de que Nike estuviera prometiendo por varios años la fabricación de unos tenis que se aten solos, sí como los de 'Back to the Future', hoy la compañía ha revelado de forma oficial su primer modelo.

Ya no sólo es un concepto o un prototipo, sino un producto real que podrá ser comprado por cualquier persona, ya que estará siendo fabricado en masa y llegará a diferentes mercados. Su nombre oficial es HyperAdapt 1.0.





El funcionamiento de estos tenis es cómo el que todos habíamos soñado, tan sólo nos los pondremos y sus agujetas se ajustarán automáticamente a nuestros pies. Eso sí, para tener un ajuste óptimo tendremos a nuestra disposición un par de botones con los que podremos apretar o soltar más las agujetas.

Nike adelanta que en un futuro no tan lejano, este tipo de calzado podrá ajustarse exactamente a la medida de nuestros pies tan sólo después ponérnoslo. Como decíamos, en esta primer versión, el ajuste final se tendrá que realizar de forma manual, si es que se requiere.





Lo mejor es que cualquier que haya soñado con estos tenis podrá comprarlos. No se ha revelado precio oficial, sin embargo, Nike espera iniciar su comercialización para finales de este mismo año. Esperemos que la empresa tenga pensado venderlos en México.


Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#9



ProtonMail es un servicio de correo electrónico cifrado que hará que nuestros correos estén más seguros, la aplicación utiliza las mismas configuraciones de seguridad que las compañías más seguras del mundo.

Con una cantidad de usuarios de más de un millón registrados en su sistema de correo electrónico, es sorprendente que haya tomado tanto tiempo para tener una aplicación móvil. La aplicación utiliza una interfaz de usuario y el conjunto de características bastante básicas, con un cifrado extremo de punto a punto.

El servicio es gratuito, con la opción de realizar donaciones y es compatible con Android 4.0.3 o posterior.





Por alguna razón la aplicación se muestra incompatible con varios dispositivos, puede ser debido a un bloqueo geográfico, o un error en la compilación por parte del desarrollador, sin embargo no es ningún problema ya que se encuentra disponible para descargar su APK e instalarla en cualquier dispositivo Android compatible.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#10


La mayoría de las personas nos sentimos más confiados cuando probamos algo antes de comprarlo, en el caso de los juegos de las tiendas de aplicaciones a veces no es suficiente imagines o un video, Google lo sabe y está por lanzar una alternativa que cambiará todo el sistema.

Google trae la posibilidad de probar juegos de Google Play directamente desde las búsquedas de Google gracias a "app streaming", podrás buscar algún juego, dar clic en "probar" y comenzaras a jugar el mismo rápidamente desde el navegador, después aparecerá una pantalla donde podemos ir a descargarla.

El tiempo son 10 minutos lo cual es más que suficiente pasa saber si quieres saber más y comprarlo, sin duda es una excelente opción incluso porque no tienes que instalar nada en el dispositivo, todo es vía streaming.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#11


En la respectiva participación de Microsoft en la GDC 2016, la compañía anuncio una funcionalidad que, de llevarse a cabo como todos estamos pensando, podría significar un cambio radical en el mundo de los videojuegos actuales.

La funcionalidad se llama Cross-Network Play, y con ella los desarrolladores podrán crear experiencias multijugador cruzadas entre diferentes plataformas. Es decir, podremos jugar a un título en línea con amigos incluso cuando éstos no tengan la misma plataforma que nosotros, por ejemplo: teniendo Xbox y un PS4. Suena a locura, pero Microsoft lo quiere hacer realidad.

Juego cruzado entre plataformas de la competencia

En concreto el comunicado de Microsoft dice que si un desarrollador decide incluir esta característica en su título, los jugadores podrán disfrutar el multijugador en línea en otras redes, incluyendo las de otras consolas o PC. No hay una confirmación de que se piensa en el PS4, pero la última frase de quien proporcionó el anuncio apunta hacia ella y a Steam.

Sobre el pepel la idea suena estupenda, sin embargo, para que se convierta en una realidad se tendrá que cumplir una importante condición, las empresas detrás de las otras redes multijugador —en este caso Sony y Valve— tendrán que dar oportunidad a que esta característica funcione.




Microsoft podría buscar con esta funcionalidad ganar presencia en el mercado actual de consolas. Recordemos que quien lleva la delantera, hasta el día de hoy, es Sony con su PlayStation 4.

De momento el único juego que implementará esta funcionalidad es Rocket League de Xbox One, aunque en un principio el juego cruzado sólo funcionará con los usuarios de Windows 10, pero podría expandirse. Sobre el papel suena bastante revolucionario, pero en la práctica su implementación es más difícil de lo que parece.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#12


Sony tiene poco tiempo de haber dado a conocer su Future Lab, pero aunque haya sido sólo hace un par de días parece que ya tienen varias ideas en las que se encuentran trabajando, y una de ellas es un proyector del futuro.

Si bien muchos se están enfocando en la realidad virtual, aún hay mucho provecho que se puede sacar de la realidad aumentada y el poder crear una interacción entre el mundo físico y el virtual. Eso es precisamente lo que busca Sony con este experimento.
Durante el festival SXSW, los japoneses presentaron un concepto nombrado "Interactive Tabletop" (mesa interactiva), el cual utiliza sensores de profundidad y rastreo de movimiento para poder interactuar de forma digital con objetos físicos.


Este prototipo fue capaz de detectar los objetos en la mesa y los movimientos de la mano, además de reconocer y traer a la vida partes del libro de "Alicia en el país de las maravillas" mediante proyecciones de los personajes, los cuales incluso interactuaban con dichos objetos.

Sin duda, este tipo de tecnología puede tener bastantes usos y resultar de mucha utilidad en un futuro, aunque habrá que esperar un poco para poder verlo funcionando por completo, y más aún, para tenerlo en nuestras casas.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#13
Pues ahora sí no lo esperábamos, después de algunas semanas con filtraciones y adelantos respecto a la próxima versión de Android, hace unos momentos Google acaba de cambiar la estrategia, ya que están lanzando de forma oficial la primera versión para desarrolladores de Android N, así es, sin previo aviso.

Según Google ahora están implementando una serie de cambios de cara al próximo Google I/O 2016, donde quieren llegar con una mayor cantidad de retroalimentación por parte de la comunidad, para así tener una versión más madura con la que podrán trabajar durante los talleres. Así que veamos todo lo que incluye esta primera "vista previa" o "trabajo en progreso" de Android N.

Multitarea a pantalla dividida


Una de las primeras novedades es el soporte nativo de pantalla dividida, algo que algunas compañías ya habían implementado en sus propias capas de personalización, pero ahora estará disponible para que cualquier desarrollador lo implemente en sus aplicaciones. Esta función será una de las más útiles sobre todo en tablets, ya que además se podrá cambiar el tamaño de las ventanas

Respuesta directa en notificaciones


Android N estrena nueva barra de notificaciones, y desde ella podremos contestar directamente sin necesidad de abrir la aplicación, algo que vendrá por defecto en Hangouts, pero que aplicaciones como WhatsApp, Telegram y Messenger de Facebook podrán adoptar sin problemas.

Notificaciones agrupadas por app


Otra nueva implementación en la barra de notificaciones, será la posibilidad de agrupar dichas notificaciones por app, así será más sencillo localizarlas y tenerlas disponibles sin necesidad de navegar por el caos que a veces significa tener cientos de notificaciones.

La eterna batalla por una mejor autonomía


Google sigue implementando novedades en Doze, su sistema de ahorro de energía, que ahora en Android N busca ser más eficiente y tener una mayor participación, ya que ahora tendrá la capacidad de eliminar procesos que estén afectando la autonomía, algo que podrá hacer incluso en modo reposo.

Sí, Java 8 llega a Android


Una de las sorpresas es el anuncio del soporte a Java 8 de Oracle a través del Jack Compilar para Android, esto sin duda es una muy buena noticia para los desarrolladores, ya que podrán adaptar código existente en otras plataformas para llevarlo a Android, y así evitar reescribir para adaptar al operativo.

¿Para quiénes está disponible? (Adiós Nexus 5)

La primera versión de Android N Developer Preview ya está disponible para dispositivos Nexus, donde una de las noticias que tampoco esperábamos, es que el Nexus 5 queda fuera de esta nueva versión de Android.

Hay que destacar que esta versión de Android N está enfocada a desarrolladores, por lo que no se recomienda su instalación en cualquier dispositivo, ya que al instalarlo perderán toda su información.

Otra de las novedades de Android N, es que al instalar esta developer preview, las siguientes se podrán instalar vía OTA, así que no será necesario descargar toda la imagen y volver a instalar, como fue necesario en Marshmallow.

Estos son los equipos compatibles y su respectivo enlace a las imágenes de fabrica:


  • Nexus 5X
  • Nexus 6
  • Nexus 6P
  • Nexus 9
  • Nexus 9G
  • Nexus Player
  • Pixel C

¿Para cuándo esperamos Android N?


Google está cambiando la ventana de actualizaciones a la que nos tenía acostumbrados, ya que la versión final de Android N estará disponible durante el tercer trimestre del año, y gracias a esta nueva estrategia tendremos al menos una versión beta cada mes.

La idea es tener una versión final robusta, que tenga la participación de la gran mayoría de los desarrolladores y sus aplicaciones compatibles, además de que se pone a disposición versiones preliminares para que los fabricantes tengan listas sus actualizaciones en un menor tiempo posible, ya que Google quiere que Android N tenga una buena participación de mercado hacia finales de año.

Otro punto importante, es que más adelante se lanzará por primera vez el Android Beta Program, una iniciativa que permitirá que cualquier usuario, con dispositivos compatibles, pruebe Android N sin ser desarrollador, donde existirá la opción de enviar comentarios, así como probar funciones antes de que se hagan públicas, vamos, un programa que ha funcionado a compañías como a Microsoft con sus Insiders, o a la misma Apple que tiene su programa de Betas Públicas.

Con esto, Google quiere que Android N deje de ser una sorpresa y sea parte de todos, ya que con la colaboración de usuarios, fabricantes y desarrolladores, quieren que sea la versión de más rápida adopción en la historia de Android. Veremos si lo consiguen.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#14



Durante los últimos meses hemos visto cómo cada vez son más los fabricantes que deciden incluir en sus terminales un lector de huellas dactilares, siendo un elemento que ya no está presente solo como una medida de seguridad adicional para smartphones, ya que también ha dado el salto a las tablets como la Samsung Galaxy Tab S.

Sin embargo, esta tecnología no se ha librado de la polémica puesto que han aparecido casos como el de un grupo hacker que logró engañar al lector de huellas del iPhone 5S con una lámina de latex. Hoy se suma a esta lista el experimento de dos investigadores que han logrado hackear a un lector de huellas de un móvil con una hoja de papel y tinta de impresora.




Kai Cao, y Anil K. Jain del Departamento de Ingeniería y Ciencia Informática de la Universidad Estatal de Michigan han conseguido desarrollar un método por el cual es posible engañar a un lector de huellas dactilares en tan solo 15 minutos o menos, tal y como nos muestran en su vídeo.

Para lograrlo, solo han tenido que utilizar una impresora de inyección de tinta común, tres cartuchos de tinta plateada conductiva de la marca AgIC, un cartucho de tinta negra normal, y una hoja de papel especial de la marca AgIC (utilizados para proyectos de electrónica).

Según los investigadores, cualquiera puede llevar a cabo este experimento con un terminal robado, ya que solo sería necesario extraer una huella del dueño de la pantalla del terminal, escanearla a 300 dpi, girarla para que quede horizontal, y luego imprimirla con los materiales indicados sobre la cara brillante del papel AgIC.

Tras ello, solo sería cuestión de recortar la huella impresa y ponerla sobre el lector de huellas dactilares del smartphone, independientemente de la marca que sea. El proceso para hackear el sensor de huellas de un iPhone o similares costaría menos de 15 minutos, y en sus pruebas ha funcionado correctamente con un Samsung Galaxy S6 y un Huawei Honor 7.

Todo esto pone una vez más en entredicho la seguridad y la fiabilidad de los lectores de huellas que están empezando a popularizarse entre los diferentes fabricantes de smartphones. Parece que todavía queda mucho trabajo por delante, si realmente se pretende que estos sistemas se conviertan en un sinónimo de seguridad infalible.

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#15


Después de una larga espera, hoy por fin los que estén inscritos al programa Insider de Windows 10 pueden probar la primera versión mexicana del asistente personal Cortana. Había posibilidad de utilizar dicho asistente desde nuestro país, pero en una versión de Español, España.

Sin embargo, con la Build 14279 de Windows 10, podremos utilizar Cortana en su versión especialmente adaptada para México. Según Microsoft la adaptación no fue sólo en su acento, sino también en las referencias culturales que se programaron en el asistente personal.

Por ahora, sólo para los usuarios del programa Insider

Como lo hemos dicho, sólo los usuarios del programada Insider pueden descargar esta versión del sistema, así que deberán de pasar unos meses antes de que llegue dicha Build al consumidor promedio.




Cortana es una de las mayores características de Windows 10, ya que promete simplificarnos un montón las tareas cotidianas al pedirle diferentes acciones por medio de comandos de voz pudiendo responder a estas de una forma bastante natural gracias a su potente sistema de inteligencia artificial.


Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#16



La empresa DJI lleva tiempo liderando el segmento de los cuadricópteros y ahora vuelve a sorprender a propios y extraños con el DJI Phantom 4, un modelo que permite a los usuarios finales acceder a un vehículo autónomo no tripulado que esquiva obstáculos y te sigue, algo solo posible hasta hace poco en modelos experimentales y fuera del circuito comercial convencional.

El Phantom 4 cuenta con cinco cámaras -dos en la parte frontal, dos en la parte inferior y una última cámara 4K- que se encargan de evaluar todo lo que pasa alrededor del dron para influir sobre la trayectoria de este. Podrás intentar estrellar el Phantom 4 contra una pared, pero será difícil que lo consigas, porque la detectará y se detendrá antes de que eso ocurra.

Más rápido, más alto, y además te persigue donde vayas

Esta característica de los nuevos cuadricópteros de DJI precisamente supone una pequeña revolución en un segmento que ve amenazado su futuro ante unos organismos reguladores que -no sin falta de razón- quieren evitar cualquier tipo de tragedia. La capacidad de detectar y evitar obstáculos convierte a estos drones en los primeros de una generación que podría acabar por fin surcando nuestros cielos.

En DJI aseguran que hay aún más novedades interesantes como dos sensores de ultrasonidos que permiten mantener mucho mejor la posición cuando se le pide, incluso corrigiéndola en condiciones de viento. Otra de las funciones destacadas es ActiveTrack: una vez tracemos un círculo alrededor del sujeto que queremos mantener siempre enfocado, el Phantom 4 se mantendrá en una posición perfecta para poder seguirlo en todo momento.

Ese seguimiento se puede combinar con la detección y la esquiva de obstáculos, y en DJI indican además que la velocidad puede llegar a ser de hasta 72 km/h. El peso ha aumentado 100 gramos respecto a su predecesor, pero eso se debe al aumento de la batería, que pasa de los 4.480 mAh a los 5.350 mAh que ofrecen una autonomía de entre 25 y 28 minutos. Nada mal para una pequeña maravilla que, eso sí, tiene un precio de 1.399 dólares.




Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#17



¿Qué pensarías si se pudiera saber en todo momento dónde estás, cómo y adónde viajas, dónde paras, si estás en una manifestación, si frecuentas más unos lugares que otros? ¿Te parecería bien? ¿O pedirías que se eliminara inmediatamente esa información? ¿Cómo la obtienen? La verdad es que no tenemos ni idea de la cantidad de información que tienen y que pueden saber de nosotros. Todos (o casi todos) llevamos un teléfono móvil y, por tanto, accedemos mediante una compañía telefónica que nos conecta con el mundo digital.

Malte Spitz, miembro del Partido Verde alemán pidió en 2009 a su compañía telefónica, la Deutsche Telekom, todos los datos que tuviera de él. Tuvo que demandarlos para que le hicieran llegar un CD con una hoja de cálculo que tenía nada menos que 30.830 líneas de información. Esta información comprendía los últimos 6 meses de la información que tenían.

De los datos pudo extraerse muchísima información: cuándo iba en tren o en avión, cuándo y dónde se paraba, cuándo está comiendo o durmiendo, los mensajes que le mandaban, quién le llamaba, cuánto tiempo hablaba con el que le llamaba, etc. Y todo esto es porque llevaba todo el día consigo un teléfono móvil, que va emitiendo una señal cada cierto tiempo de dónde está, entre otras cosas.

Pero si juntamos los datos, ya no sólo de Malte Spitz, sino de muchas personas, podemos dibujar una red de comunicaciones y podemos, además, ver cuáles son los principales centros o puntos más importantes de dicha red. De hecho, esta información nos permitiría controlar la sociedad: puedes saber quién habla con quién, desde donde, cómo, etc.

¿Qué podemos hacer con los datos de muchas personas?

Por ejemplo, imaginad una manifestación de personas, todos con su móvil en el bolsillo. Todos, automáticamente, están identificados. Es más, si hacemos un mapa de las comunicaciones podemos incluso ver los cabecillas o personas más influyentes o con más contactos de la misma.




Sólo desactivándolos ya podríamos intervenir en la misma y, por lo menos, ponerlos en problemas. Incluso identificarlos, como hizo el gobierno de Ucrania, identificando a los manifestantes y enviándoles un SMS donde se les advertía que habían participado en una manifestación ilegal.

¿Puede la compañía telefónica o proveedor de Internet tener esa información? En verano de 2006 la Unión Europea presentó la directiva de retención de datos que dice que todas las compañías con más de 10.000 clientes deben guardar los datos de sus clientes con una profundidad mínima de 6 meses hasta un máximo de 2 años.

La pregunta es, ¿queremos esto? ¿queremos que sea así? ¿nos parece bien que nuestros datos sean utilizados para los fines que los que están en el poder quieran?

Solemos aceptar que las instituciones tengan control sobre nosotros por, según afirman, nuestra seguridad; pues así son capaces de detectar malhechores; pero dicho esto, entonces, ¿dónde queda nuestra privacidad? ¿dónde está el límite en sacrificar nuestra privacidad por nuestra seguridad? ¿qué pasaría si esos datos cayeran en manos con no tan buenas intenciones?

Durante la Segunda Guerra Mundial, los holandeses llevaban un censo de las personas que contenía, entre otros datos, sus diferentes creencias religiosas: católicos, protestantes, judíos, etc; para ver cómo debían repartir el dinero entre las congregaciones. Cuando llegaron los nazis esa información les sirvió de mucho: sólo un 25% de los judíos holandeses sobrevivieron.

Según Marta Peirano, la mera existencia de esa información nos marca unos antecedentes y nos hace vulnerables de formas que ni siquiera podemos imaginar.


Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#18



En la actualidad la tecnología tiene una clara tendencia hacia el uso de nuevos dispositivos inteligentes. Desde los hoy normales smartphones y tablets, pasando por los smartwatches y llegando hasta el concepto y puesta en práctica de las Smart Homes. Pero no queda allí, y todo indica que tendremos que acostumbrarnos a ver en nuestra vida diaria nuevas y mejores herramientas inteligentes, como la denominada Le Super Bike, una bicicleta inteligente con Android.

El fabricante es LeEco, anteriormente llamada LeTV, una compañía relativamente nueva en el mercado de dispositivos móviles, quien ha hecho especial a esta bicicleta al dotarle de un rastreador de fitness integrado que ejecuta Android y también de láseres.
Esta bicicleta está hecha de fibra de carbón y titanio, y en el manubrio tiene ubicado un pequeño dispositivo similar a un smartphone pequeño, desde el que se pueden hacer llamadas y enviar mensajes de texto, pero que además es capaz de obtener direcciones y grabar cada uno de los desplazamientos que hacemos en la bicicleta.

Le Super Bike además, tiene sensores incorporados en el manubrio o manillar para llevar un registro de nuestro ritmo cardiaco, y en este mismo se han incorporado indicadores luminosos similares a los de un automóvil, así como botones para controlar nuestra música. Por si no fuera suficiente, por la noche, un láser rojo brilla en el suelo tanto al lado izquierdo como al derecho, buscando indicar que tanto pueden acercarse otros vehículos.

Desde luego, no podemos olvidarnos de mencionar el costo y la disponibilidad de esta bicicleta inteligente. De acuerdo a LeEco, por el momento solo está disponible en China por 800 dólares , aunque tienen pensado expandir sus ventas hacia América a finales de este año.



Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
#19
Arduino - Raspberry PI / Comenzando con ARDUINO UNO
Mayo 20, 2015, 04:31:18 PM
En esta ocasión quisiera hacer una breve descripción de Arduino UNO, existe una gran variedad de tarjetas Arduino y muchas suelen ser muy similares, con excepción claro de algunas entradas, pero quiero hacerlo de este modelo en particular porque acabo de adquirir una y me parece lo más lógico, por otro lado no soy un experto, pero para los que apenas comienzan o van a comenzar como yo, espero que esto les sea de utilidad, en fin comencemos.

¿Qué es Arduino?
Arduino es un entorno que nos permite crear circuitos, posee un microcontrolador programable, el cual mediante instrucciones escritas por nosotros realizará cierta función, además posee entradas digitales, salidas analógicas y otras cosas que intentaré detallar, ahora esta tarjeta nos facilita mucho la vida en ocasiones en que los circuitos son muy complejos, o que son demasiado extensos, pues porque nos ahorra ciertos componentes que sin ella serían necesarios, esto nos ahorra por lo tanto tiempo de elaboración y dinero, el programa en sí, realiza el proceso que los componentes excluidos realizarían sin el programa, esta es mi definición y si en algo está mal pues claro que pido disculpas, les recuerdo que soy nuevo y estoy intentando hacerlo claro, tan claro como yo lo comprendo.


Estos son algunos modelos de Arduino que quería mostrar, para que vean la variedad que tiene, sin embargo para iniciar muchos recomiendan la arduino UNO y es la que adquirí, además claro está, de que los modelos subirán su costo dependiendo de sus conexiones posibles.


Ahora sí vámonos de lleno con Arduino UNO, en esta ocasión quiero compartir lo que recién aprendí que son las conexiones de nuestra tarjeta.


1.- Bien primero que nada tenemos el conector USB, nos permite conectar nuestra tarjeta al ordenador, ¿para qué? Pues para programar sobre el microcontrolador, evidentemente primero debemos tener instalado el IDE de Arduino, para ello vamos a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y seleccionamos nuestro sistema operativo en esta parte:


Bien una vez ya descargado he instalado veremos algo como esto:


En la sección de void setup, dentro de ese bloque, declararemos nuestros componentes, por ejemplo un led, y en void loop, escribiremos nuestro código que se ejecutará de manera cíclica, es decir, una vez finalizada la última línea de código comenzará de nuevo desde la primera, esto lo quería decir como algo previo a la programación que se verá luego, una vez ya con nuestro programa y nuestra tarjeta conectada a la PC, si es la primera vez que la conectamos, notaremos que no la reconoce, esto se soluciona dentro del mismo IDE, vamos a herramientas y seleccionamos Arduino uno, además en puerto (debajo de la primera selección) debemos colocar COM, con esto ya nos reconocerá nuestra tarjeta.

2.- Luego vemos la fuente de alimentación externa, que nos permite encender nuestro circuito sin que la tarjeta esté conectada a la PC (por si nos da flojera cargarla o no podemos llevarla con nosotros), recordemos que una vez grabado el programa en el microcontrolador no necesitamos más de la PC ni del IDE de Arduino, el voltaje adecuado para la tarjeta es de 7 V. a 12 V., si sobrepasamos este voltaje con nuestro circuito evidentemente no deberíamos alimentar el circuito de esta manera, se puede alimentar de manera externa, es decir la fuente conectada al protoboard o la placa (directamente al circuito) y otra fuente de alimentación para la tarjeta.

3.- Tenemos 3 tierras, cualquiera nos sirve para el circuito y tenemos las entradas/salidas digitales, para conectar nuestros componentes que funcionen de manera digital evidentemente, como un led, las entradas 2 y 3 poseen la capacidad de interrupción, es decir, pueden ser usadas para realizar las interrupciones del programa, mientras que las entradas 3, 5, 6, 9, 10, y 11 que tienen el símbolo "~", son PWM, esto nos permite por ejemplo hacer giros en tantos grados de un motor (servomotor), ¿para qué? Pues por ejemplo para una mano robótica que necesita girar tantos grados para tomar un objeto.
4.- El botón reset (en realidad ya está junto al conector USB) nos sirve para hacer un reseteo, por si nos perdimos algo que ejecutó nuestro programa ya con el circuito instalado y funcional, basta con presionar dicho botón y el programa comenzará de nuevo, sin necesidad de esperar a que finalice su ejecución.

5.- EL programador serie en Arduino va de la mano con el microcontrolador, el microcontrolador es donde se guarda nuestro programa y por lo tanto, si tenemos ya un circuito y programa finalizado y listo para vender, lo único que hacemos es quitar el microcontrolador y conectarlo a la placa, esto obviamente bien conectado con el circuito y con un reloj, pues las instrucciones funcionan con ciclos de reloj (en la Arduino el reloj es esa figura que parece una elipse plateada), nuestro reloj debe funcionar a 16 MHz, y así ya luego sólo compramos otro microcontrolador y lo conectamos a la Arduino, por cierto el microcontrolador es el ATMEGA328P-PU por si luego lo quisieran comprar de nuevo, ahora, no basta con conectarlo a la tarjeta, necesita mmmmm digamos algo así como un formato, que nos permite guardar los programas escritos en el IDE en él, y para eso es el programador arduino, para poder darle formato necesitamos un ICSP que se conecta en la zona del programador serie, es algo así:


6.- Por último tenemos las entradas analógicas para componentes analógicos, y entradas proporcionadoras de voltaje específico, esto va a depender de nuestro circuito obviamente.
Cabe destacar por último que cada entrada o salida proporciona 40 mA, si conectamos algo que demanda más corriente se quemará dicha entrada o salida.
Espero haber ayudado de alguna forma a alguien y que se haya comprendido, no soy un experto en el tema, pero quiero compartir lo que sé con ustedes, hasta la próxima.  :)
#20
C / C++ / Juego de triqui/gato
Junio 20, 2014, 10:41:58 PM
Bueno pues acá les dejo un pequeño código de este juego en C  :D se puede mejorar pero básicamente es la "base", espero que les sirva de algo, ¡saludos!

Código: c

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include <conio.h>
#include <windows.h>

int main(int argc, char *argv[])
{
    int a1=0, a2=0, a3=0, b1=0, b2=0, b3=0, d1=0, d2=0, d3=0, dec, bandera=0,columna=0,fila=0, ganador = 0, juego=1, turno=0, ocupado =  0;
    char nombre1[15], nombre2[15], gato[200];

HANDLE hConsoleOutput;
COORD coord;
hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 10;
coord.Y=10;
SetConsoleCursorPosition(hConsoleOutput,coord);
   
  while (juego ==1)
              {
  a1=0;
  a2=0;
  a3=0;
  b1=0;
  b2=0;
  b3=0;
  d1=0;
  d2=0;
  d3=0;
  bandera=0;
  columna=0;
  fila=0;
  ganador = 0;
  dec = 0;
  turno = 0;
  ocupado = 0;
  system ("CLS");
  printf ("JUEGO DEL GATO\n\n");
  printf ("Creado por: Lah-Vahn.\n\n");
  printf ("Seleccione que desea hacer:\n");
  printf ("1.-Jugar.\n");
  printf ("2.-Instrucciones.\n");
  printf ("3.-Salir.\n");
  scanf ("%i",& dec);
  switch (dec){
         case 1:
              system ("CLS");
            printf ("Ingrese nombre del jugador 1:\n");
            scanf ("%s",&nombre1);
            printf ("Ingrese nombre del jugador 2:\n");
            scanf ("%s",&nombre2);
            system ("CLS");
            printf ("   |     |   \n------------- \n   |     |   \n-------------\n   |     |   \n\n");
            while (ganador == 0){
            if (bandera == 0 && ganador == 0)
            {
                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=6;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                    printf ("Turno de %s.\n\n",nombre1);
                        printf ("Ingresa fila:\n");
                        scanf ("%i",&fila);
                        printf ("Ingresa columna:\n");
                        scanf ("%i",&columna);
                        //Revisión de espacios ocupados
                        if (fila == 0 && columna == 0 && (a1==1 || a1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 1 && (a2==1 || a2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 2 && (a3==1 || a3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 0 && (b1==1 || b1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 1 && (b2==1 || b2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 1 && columna == 2 && (b3==1 || b3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 0 && (d1==1 || d1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 1 && (d2==1 || d2==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 2 && columna == 2 && (d3==1 || d3==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }


Código: c

//Aquí comienza la asignación
                        if (fila == 0 && columna == 0 && a1==0){
                                 hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 1 && a2==0){
                                                  hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 2 && a3==0){
                                                              hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 a3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 0 && b1==0){
                                                                               hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 1 && b2==0){
                                                                                                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 2 && b3==0){
                                                                                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 b3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 0 && d1==0){
                                                                                                                                                                    hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d1 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 1 && d2==0){
                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d2 = 1;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 2 && d3==0){
                                                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("x");
                                 d3 = 1;
                                 ocupado = 0;
                                 }
                        if (fila>2 || fila<0 || columna>2 || columna<0){
                              printf ("Has ingresado valores erroneos.\n");
                              }


Código: c

//comienza comprobaciòn de ganador
                        if (a1+a2+a3==3 && ganador==0){
                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (b1+b2+b3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (d1+d2+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a1+b1+d1==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a2+b2+d2==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a3+b3+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a1+b2+d3==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (a3+b2+d1==3 && ganador==0){
                                         hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre1);
                                         ganador = 1;
                                         }
                        if (ocupado == 0){
                                    bandera = 1;
                                    turno = turno + 1;
                                    }
                        if (turno == 9 && ganador == 0){
                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Ha sido un empate.\n");
                                         ganador = 1;
                                  }
                        }


Código: c

//turno del jugador 2
            if (bandera == 1 && ganador==0)
            {
                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=6;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                    printf ("Turno de %s.\n\n",nombre2);
                        printf ("Ingresa fila:\n");
                        scanf ("%i",&fila);
                        printf ("Ingresa columna:\n");
                        scanf ("%i",&columna);
                        //Revisión de espacios ocupados
                        if (fila == 0 && columna == 0 && (a1==1 || a1==5)){
                                 printf ("Ya esta ocupado.");
                                 ocupado = 1;
                                 }
                        if (fila == 0 && columna == 1 && (a2==1 || a2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 0 && columna == 2 && (a3==1 || a3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 0 && (b1==1 || b1==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 1 && (b2==1 || b2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 1 && columna == 2 && (b3==1 || b3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 0 && (d1==1 || d1==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 1 && (d2==1 || d2==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }
                        if (fila == 2 && columna == 2 && (d3==1 || d3==5)){
                                 printf ("Ya esta ocupado.");
                                  ocupado = 1;
                                 }


Código: c

//Aquí comienza la asignación
                        if (fila == 0 && columna == 0 && a1==0){
                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a1 = 5;
                                  ocupado = 0;
                                 }
                        if (fila == 0 && columna == 1 && a2==0){
                                                                       hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 0 && columna == 2 && a3==0){
                                                                               hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=0;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 a3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 0 && b1==0){
                                                                                                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b1 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 1 && b2==0){
                                                                                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 1 && columna == 2 && b3==0){
                                                                                                                                                                    hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=2;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 b3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 0 && d1==0){
                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 1;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d1 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 1 && d2==0){
                                                                                                                                                                                                                        hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 6;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d2 = 5;
                                 ocupado = 0;
                                 }
                        if (fila == 2 && columna == 2 && d3==0){
                                                                                                                                                                                                                                                   hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 11;
coord.Y=4;
SetConsoleCursorPosition(hConsoleOutput,coord);
printf("o");
                                 d3 = 5;
                                 ocupado = 0;
                                 }
                        if (fila>2 || fila<0 || columna>2 || columna<0){
                              printf ("Has ingresado valores erroneos.\n");
                              }


Código: c

//comienza comprobaciòn de ganador
                        if (a1+a2+a3==15 && ganador==0){
                            hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (b1+b2+b3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (d1+d2+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a1+b1+d1==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a2+b2+d2==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a3+b3+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a1+b2+d3==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (a3+b2+d1==15 && ganador==0){
                                          hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Gana %s!\n",nombre2);
                                         ganador = 1;
                                         }
                        if (ocupado == 0){
                                    bandera = 0;
                                    turno = turno + 1;
                                    }
                        if (turno == 9 && ganador == 0){
                                                                           hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
coord.X= 0;
coord.Y=13;
SetConsoleCursorPosition(hConsoleOutput,coord);
                                         printf ("Ha sido un empate.\n");
                                         ganador = 1;
                                  }
                        }
                  }
            break;
         case 2:
              system ("CLS");
              printf ("INSTRUCCIONES\n\n");
              printf ("1.-Ingrese el numero 1 para jugar, el 2 para las instrucciones y el 3 para salir.\n");
              printf ("2.-Al jugar ingrese el nombre de los dos jugadores.\n");
              printf ("3.-Ingrese la fila y columna donde desea colocar su tiro.\n");
              printf ("4.-Ganara el jugador que logre 3 tiros consecutivos en linea recta.\n\n");   
              break;
         case 3:
              exit(1);
              break;
         default:
              printf ("Error en el valor Ingresado.\n");   
              break;
         }
  system("PAUSE");
                          }
}
#21
C# - VB.NET / Ecuaciones de Newton-Raphson simples
Junio 11, 2014, 10:34:22 AM
Bueno pues por si alguien quiere practicar o algo, les dejo este código que hice hace poco que es para obtener ecuaciones de newton-raphson simples con un máximo de 4 variables a través de los cortes de cadena, espero les sirva mínimo como ejemplo respecto a ciertas funciones que les llamen la atención, aunque el programa es bastante simple, consta de 3 formularios, la presentación, el segundo en el que ingresas la función y el tercero que te muestra los resultados.



Código: php

Public Class Form3

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'salir
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        End
    End Sub

    Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click
        'comenzar
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        Me.Hide()
        Form1.Show()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox("1.- Presione 'comenzar' para continuar o 'salir' para cerrar el programa." & vbCrLf & "2.- Escriba la función con los botones de la pantalla y el valor inicial de Xi con el teclado, no olvide poner siempre '+' o '-' dependiendo del signo sin importar que sea el primer elemento de la función." & vbCrLf & "3.- Si no coloca ningún valor en Xi se tomará como un valor inicial de 0." & vbCrLf & "4.- Presione 'guardar valores' para continuar y luego coloque el número de variables, sólo se permiten entre 1 y 4 variables." & vbCrLf & "5.- Si desea colocar sólo una 'x' escriba 'x^1' pues esto no afecta la función, o si desea colocar sólo un número por ejemplo '6' escriba '6x^0' pues esto tampoco afecta la función." & vbCrLf & "7.- Se mostrarán los resultados, presione 'volver' para regresar o 'salir' para finalizar el programa.", MsgBoxStyle.Information, "Instrucciones")
    End Sub

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Arranque del formulario
        My.Computer.Audio.Play(My.Resources.inicio, AudioPlayMode.BackgroundLoop)
    End Sub
End Class




Código: php
Public Class Form1

    Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button.Click
        'botón 1
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "1"
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'botón 2
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "2"
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'botón 3
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "3"
    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        'botón 4
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "4"
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'botón 5
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "5"
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'botón 6
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "6"
    End Sub

    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        'botón 7
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "7"
    End Sub

    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        'botón 8
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "8"
    End Sub

    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        'botón 9
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "9"
    End Sub

    Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        'botón +
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "+"
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        'botón -
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "-"
    End Sub

    Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'botón *
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "*"
    End Sub

    Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'botón /
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "/"
    End Sub

    Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
        'botón ^
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "^"
    End Sub

    Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click
        'botón x
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "x"
    End Sub

    Private Sub Button21_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button21.Click
        'botón retroceso
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        If TextBox1.Text.Length > 0 Then
            TextBox1.Text = TextBox1.Text.Remove(TextBox1.Text.Length - 1, 1)
        Else
            MsgBox("No hay carácteres que borrar.", MsgBoxStyle.Information, "Error")
        End If
    End Sub

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
        'botón 0
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "0"
    End Sub

    Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button17.Click
        'botón guardar
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        funcion = TextBox1.Text
        If funcion <> "" Then
            xi = Val(TextBox2.Text)
            n = InputBox("Ingrese los términos:")
            Me.Close()
            Form2.Show()
        Else
            MsgBox("Por favor escriba la función.", MsgBoxStyle.Exclamation, "Alto")
        End If
    End Sub

    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
        'botón salir
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        End
    End Sub

    Private Sub Button22_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button22.Click
        'punto
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Text = TextBox1.Text & "."
    End Sub

    Private Sub Button23_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button23.Click
        'botón limpiar
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        TextBox1.Clear()
        TextBox2.Clear()
        xi = 0
        funcion = ""
        n = 0
    End Sub
End Class




Código: php
Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'botón salir
        End
    End Sub

    Private Sub Button18_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button18.Click
        'botón volver
        My.Computer.Audio.Play(My.Resources.click, AudioPlayMode.Background)
        Form1.TextBox1.Text = funcion
        Form1.TextBox2.Text = xi
        Me.Close()
        Form1.Show()
    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'arranque del formulario
        My.Computer.Audio.Play(My.Resources.tambor, AudioPlayMode.WaitToComplete)
        Dim tamaño As Integer = 0
        Dim corte As String
        Dim uno As Integer
        Dim dos As Integer
        Dim tres As Integer
        Dim cuatro As Integer
        Dim bandera As Integer
        Dim signo1 As Integer
        Dim signo2 As Integer
        Dim signo3 As Integer
        Dim signo4 As Integer
        Dim bloque1 As Double = 1
        Dim bloque2 As Double = 1
        Dim bloque3 As Double = 1
        Dim bloque4 As Double = 1
        Dim exponente As Integer
        Dim numero1 As Double = 0
        Dim numero2 As Double = 0
        Dim numero3 As Double = 0
        Dim numero4 As Double = 0
        Dim corte2 As String = 0
        Dim marca As Integer = 0
        bandera = 0

        For ciclo = 0 To 15
            bloque1 = 1
            bloque2 = 1
            bloque3 = 1
            bloque4 = 1
            iteracion(ciclo) = ciclo
            TextBox1.Text = TextBox1.Text & iteracion(ciclo) & vbCrLf
            TextBox2.Text = TextBox2.Text & xi & vbCrLf
            If n = 4 Then
                tamaño = Len(funcion)
                For x = 1 To tamaño
                    corte = Mid(funcion, x, 1)
                    If corte = "+" Or corte = "-" Then
                        If bandera = 3 Then
                            cuatro = x
                            bandera = 4
                            If corte = "+" Then
                                signo4 = 1
                            Else
                                signo4 = -1
                            End If
                        End If
                        If bandera = 2 Then
                            tres = x
                            bandera = 3
                            If corte = "+" Then
                                signo3 = 1
                            Else
                                signo3 = -1
                            End If
                        End If
                        If bandera = 1 Then
                            dos = x
                            bandera = 2
                            If corte = "+" Then
                                signo2 = 1
                            Else
                                signo2 = -1
                            End If
                        End If
                        If bandera = 0 Then
                            uno = x
                            bandera = 1
                            If corte = "+" Then
                                signo1 = 1
                            Else
                                signo1 = -1
                            End If
                        End If
                    End If
                Next
                uno = Len(funcion)
                'bloque 1
                For x = 1 To dos
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque1 = bloque1 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque1 = bloque1 * signo1
                        Else
                            numero1 = Val(Mid(funcion, 2, x - 1))
                            bloque1 = bloque1 * numero1 * signo1
                        End If
                    End If
                Next
                'bloque2
                For x = dos To tres
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque2 = bloque2 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque2 = bloque2 * signo2
                        Else
                            numero2 = Val(Mid(funcion, dos + 1, x - 1))
                            bloque2 = bloque2 * numero2 * signo2
                        End If
                    End If
                Next
                'bloque 3
                For x = tres To cuatro
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque3 = bloque3 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque3 = bloque3 * signo3
                        Else
                            numero3 = Val(Mid(funcion, tres + 1, x - 1))
                            bloque3 = bloque3 * numero3 * signo3
                        End If
                    End If
                Next
                'bloque4
                For x = cuatro To uno
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque4 = bloque4 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque4 = bloque4 * signo4
                        Else
                            numero4 = Val(Mid(funcion, cuatro + 1, x - 1))
                            bloque4 = bloque4 * numero4 * signo4
                        End If
                    End If
                Next
                'f (xi)
                n = 4
                fxi(ciclo) = bloque1 + bloque2 + bloque3 + bloque4
                TextBox3.Text = TextBox3.Text & fxi(ciclo) & vbCrLf
            End If


Código: php

            '3 valores
            If n = 3 Then
                tamaño = Len(funcion)
                For x = 1 To tamaño
                    corte = Mid(funcion, x, 1)
                    If corte = "+" Or corte = "-" Then
                        If bandera = 2 Then
                            tres = x
                            bandera = 3
                            If corte = "+" Then
                                signo3 = 1
                            Else
                                signo3 = -1
                            End If
                        End If
                        If bandera = 1 Then
                            dos = x
                            bandera = 2
                            If corte = "+" Then
                                signo2 = 1
                            Else
                                signo2 = -1
                            End If
                        End If
                        If bandera = 0 Then
                            uno = x
                            bandera = 1
                            If corte = "+" Then
                                signo1 = 1
                            Else
                                signo1 = -1
                            End If
                        End If
                    End If
                Next
                uno = Len(funcion)
                'bloque 1
                For x = 1 To dos
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque1 = bloque1 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque1 = bloque1 * signo1
                        Else
                            numero1 = Val(Mid(funcion, 2, x - 1))
                            bloque1 = bloque1 * numero1 * signo1
                        End If
                    End If
                Next
                'bloque2
                For x = dos To tres
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque2 = bloque2 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque2 = bloque2 * signo2
                        Else
                            numero2 = Val(Mid(funcion, dos + 1, x - 1))
                            bloque2 = bloque2 * numero2 * signo2
                        End If
                    End If
                Next
                'bloque 3
                For x = tres To uno
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque3 = bloque3 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque3 = bloque3 * signo3
                        Else
                            numero3 = Val(Mid(funcion, tres + 1, x - 1))
                            bloque3 = bloque3 * numero3 * signo3
                        End If
                    End If
                Next
                'f (xi)
                n = 3
                fxi(ciclo) = bloque1 + bloque2 + bloque3
                TextBox3.Text = TextBox3.Text & fxi(ciclo) & vbCrLf
            End If
            '2 valores
            If n = 2 Then
                tamaño = Len(funcion)
                For x = 1 To tamaño
                    corte = Mid(funcion, x, 1)
                    If corte = "+" Or corte = "-" Then
                        If bandera = 1 Then
                            dos = x
                            bandera = 2
                            If corte = "+" Then
                                signo2 = 1
                            Else
                                signo2 = -1
                            End If
                        End If
                        If bandera = 0 Then
                            uno = x
                            bandera = 1
                            If corte = "+" Then
                                signo1 = 1
                            Else
                                signo1 = -1
                            End If
                        End If
                    End If
                Next
                uno = Len(funcion)
                'bloque 1
                For x = 1 To dos
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque1 = bloque1 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque1 = bloque1 * signo1
                        Else
                            numero1 = Val(Mid(funcion, 2, x - 1))
                            bloque1 = bloque1 * numero1 * signo1
                        End If
                    End If
                Next
                'bloque2
                For x = dos To uno
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque2 = bloque2 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque2 = bloque2 * signo2
                        Else
                            numero2 = Val(Mid(funcion, dos + 1, x - 1))
                            bloque2 = bloque2 * numero2 * signo2
                        End If
                    End If
                Next
                'f (xi)
                n = 2
                fxi(ciclo) = bloque1 + bloque2
                TextBox3.Text = TextBox3.Text & fxi(ciclo) & vbCrLf
            End If
            '1 valor
            If n = 1 Then
                tamaño = Len(funcion)
                For x = 1 To tamaño
                    corte = Mid(funcion, x, 1)
                    If corte = "+" Or corte = "-" Then
                        If bandera = 0 Then
                            uno = x
                            bandera = 1
                            If corte = "+" Then
                                signo1 = 1
                            Else
                                signo1 = -1
                            End If
                        End If
                    End If
                Next
                uno = Len(funcion)
                'bloque 1
                For x = 1 To uno
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        For x2 = 1 To exponente
                            bloque1 = bloque1 * xi
                        Next
                        corte2 = Mid(funcion, x - 1, 1)
                        If corte2 = "+" Or corte2 = "-" Then
                            bloque1 = bloque1 * signo1
                        Else
                            numero1 = Val(Mid(funcion, 2, x - 1))
                            bloque1 = bloque1 * numero1 * signo1
                        End If
                    End If
                Next
                n = 1
                fxi(ciclo) = bloque1
                TextBox3.Text = TextBox3.Text & fxi(ciclo) & vbCrLf
            End If


Código: php
'derivación **********************************************************************************************************
            bloque1 = 1
            bloque2 = 1
            bloque3 = 1
            bloque4 = 1
            If n = 4 Then
                tamaño = Len(funcion)
                For x = 1 To tamaño
                    corte = Mid(funcion, x, 1)
                    If corte = "+" Or corte = "-" Then
                        If bandera = 3 Then
                            cuatro = x
                            bandera = 4
                            If corte = "+" Then
                                signo4 = 1
                            Else
                                signo4 = -1
                            End If
                        End If
                        If bandera = 2 Then
                            tres = x
                            bandera = 3
                            If corte = "+" Then
                                signo3 = 1
                            Else
                                signo3 = -1
                            End If
                        End If
                        If bandera = 1 Then
                            dos = x
                            bandera = 2
                            If corte = "+" Then
                                signo2 = 1
                            Else
                                signo2 = -1
                            End If
                        End If
                        If bandera = 0 Then
                            uno = x
                            bandera = 1
                            If corte = "+" Then
                                signo1 = 1
                            Else
                                signo1 = -1
                            End If
                        End If
                    End If
                Next
                uno = Len(funcion)
                'bloque 1
                For x = 1 To dos
                    corte = Mid(funcion, x, 1)
                    If corte = "x" Then
                        exponente = Val(Mid(funcion, x + 2, 1))
                        If exponente <> 1 And exponente <> 0 Then
                            corte2 = Mid(funcion, x - 1, 1)
                            If corte2 = "+" Or corte2 = "-" Then
                                numero1 = exponente
                                exponente = exponente - 1
                                For x2 = 1 To exponente
                                    bloque1 = bloque1 * xi
                                Next
                                bloque1 = bloque1 * numero1 * signo1
                            Else
                                numero1 = Val(Mid(funcion, 2, x - 1))
                                numero1 = numero1 * exponente
                                exponente = exponente - 1
                                For x2 = 1 To exponente
                                    bloque1 = bloque1 * xi
                                Next
                                bloque1 = bloque1 * numero1 * signo1
                            End If
                        Else
                            If exponente = 1 Then
                                corte2 = Mid(funcion, x - 1, 1)
                                If corte2 = "+" Or corte2 = "-" Then
                                    bloque1 = 1 * signo1
                                Else
                                    numero1 = Val(Mid(funcion, 2, x - 1))
                                    numero1 = numero1 * 1
                                    bloque1 = numero1 * signo1
                                End If
                            End If
                            If exponente = 0 Then
                                corte2 = Mid(funcion, x - 1, 1)
                                If corte2 = "+" Or corte2 = "-" Then
                                    numero1 = 1
                                    bloque1 = numero1 * signo1
                                Else
                                    bloque1 = 0
                                End If
                            End If
                        End If
                    End If
                Next
               


Nota: aún falta código pero no me deja ponerlo porque es demasiado XD si les interesa se los voy compartiendo, lo restante, ¡saludos!  :D
#22
Ideas y Sugerencias / Sugerencia
Agosto 22, 2013, 03:14:59 PM
Hola amigos que tal, solo quería proponer algún taller de Java, o de HTML además según estoy viendo los talleres actuales al menos en mi caso requieren de conocimientos previos o de otros talleres (como por ejemplo el de PHP que requiere conocimientos básicos de HTML y el de pentesting que usa en el primer tuto C y Phyton), yo creo en mi opinión que deberían establecerse los talleres desde su base o al menos verse lo básico como una introducción para poder pasar al taller en sí, yo sé que muchos estarán en contra de esto porque desean aprender cosas complejas pronto pero no podemos hacerlo si no tenemos las bases de un conocimiento, llegará un momento en el que no podamos seguir avanzando o algo salga mal, así que yo creo que antes de seguir se debería establecer bien la conexión de un taller con otro y realizar primero uno y luego en base a ese taller ya hecho, realizar el otro que sería como "el siguiente nivel", si se lleva todo de esta manera creo que para los que no saben mucho sería mucho más sencillo además de que la comprensión sería mayor y todo estaría conectado haciéndolo mucho más interesante, espero me hayan comprendido, y bueno que tomen en cuenta mi opinión, ¡saludos!.   
#23
Hola! aaaammm una disculpa porque creo que estoy ciego pero no encontre los servidores que dices que facilitas jaja gracias de antemano

saludos!
#24
Hola! bueno estoy haciendo el metodo ANTRAX para dejar indetectable mi server pero no logro hacerlo ¿a que se debe? estoy probando con solo un offset que es el 0000002 que me sale infectado y le aumento 1 o 2 o disminuyo a todos los numeros por separado, probe todas las combinaciones posibles sumandole y restandole 1 o 2 y no funciona les agradesco su ayuda saludos!
#25
Hola! pues no se si ya han visto el tutorial que estoy seguro que si jaja pero surgio una duda y quisiera ver si me pueden ayudar en la parte 6 del tuto habla de los saltos pero no se como ejecutarlos disculpen mi ignorancia y gracias por ayudarme saludos a todos!!!! :)