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ú

Mensajes - AlbertoBSD

#1041
Muy buen dia como saben en mi canal de youtube tengo tutoriales de programación en C el ultimo que hice es el juego de Piedra Pepel y Tijera algo sencillo pero usando una Tabla de Estados simulando la forma mas básica de un autómata.

Dejo el codigo no sin antes proponerles un reto y es el siguiente: Dado el código siguiente modificarlo para que el programa sea capaz de "aprender" del histórico de jugadas del usuario y asi sea capas de predecir la próxima jugada.

Este aprendizaje no debe de perderse (Por lo tanto se debe de poder guardar para ser cargados en Futuros juegos)

/*
Realizado por Luis Alberto

Contacto
Twitter: @albertobsd

*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<stdbool.h>

//Constantes para las jugadas
#define PIEDRA 0
#define PAPEL 1
#define TIJERA 2


int main() {
int jugador = 0, computadora = 0; // Variables para la seleccion de los Jugadores (Usuario - Computadora)
char *jugadas[3] = {"Piedra","Papel","Tijera"}; //Cadenas para imprimir segun lo seleccionado por las variables Anteriores

/*
Exclusivamente para el resultado (Matriz bidimencional)

Columnas para la Computadora
Filas para el Jugador

Valores:
- 1 si el jugador Gana
- 0 si el jugador Empata
- 2 si el jugador Pierde
[0][P][G]
[G][0][P]
[P][G][0]

*/
int resultados[3][3] = {{0,2,1},
{1,0,2},
{2,1,0}};
char *resultados_str[3] = {"El jugador Empata","El Jugador Gana","El jugador Pierde"}; // Cadenas con los resultados
bool entrar = true; //Variable para detener el ciclo
int opcion; //Opcion seleccionada
char temp[10]; //Variable temporal para guardar la entrada desde el teclado
char *valor = NULL; //Puntero adicional usado por strtol
srand(time(NULL)); // inicializar la semilla Pseudo-Aleatoria
do {
computadora = rand() % 3; //Valor seleccionado por la computadora al azar
//Menu para el usuario
printf("1) %s\n",jugadas[PIEDRA]);
printf("2) %s\n",jugadas[PAPEL]);
printf("3) %s\n",jugadas[TIJERA]);
printf("S) Salir\n");
printf("Ingrese su opcion: ");
fgets(temp,10,stdin); // Capturamos texto
opcion = strtol(temp,&valor,10); //Convertimos el texto a Entero
if(valor[0] == '\0' || valor[0] == 0x0a) { //Si es un valor valido continuas
switch(opcion) { //switch para las opciones pero se pudo usar un IF
case 1:
case 2:
case 3:
jugador = opcion - 1; //Seleccion del Jugador
//resultados:
printf("La computadora elijio %s\n",jugadas[computadora]);
printf("El jugador elijio %s\n",jugadas[jugador]);
printf("Resultado: %s\n",resultados_str[resultados[jugador][computadora]]);
break;
default:
printf("Aprende a leer solo valores del 1 al 3 o la letra S mayuscula\n");
break;
}
}
else { //Si no es valor valido posiblemente sea una S
//printf("Elijio %.2x\n",valor[0]);
if(temp[0] == 'S') { //Si es S establecemos la variable para salir del ciclo
entrar = false;
}
}
}while(entrar);
return 0;
}


Aqui les dejo el vídeo mencionado:

[youtube=640,360]https://www.youtube.com/watch?v=OPP5fua87ew[/youtube]

Saludos!


He creado una estructura para guardar los resultados y posteriormente guardar la estructura en un archivo

De hecho son 2 estrucuturas:

struct nodo_ppt {
int count;
int respuesta[3];
};


La estrucutura anterior guarda un contador para indicar cuantas veces se a entrado a ese nodo y posteriormente cual fue la respuesta a esto.

Por ejemplo tenemos un arreglo de  9 nodos
struct nodo_ppt nodos[9];

Y por ejemplo se juega Piedra(Jugador) vs Tijera(Computadora) entonces al igual que en la matriz de resultados:

int resultados[3][3] = {{0,2,1},{1,0,2},{2,1,0}};

Entonces guardamos como nodos "previo" la posicion de nodos [(Jugador*3) +computadora]  y en el proximo juego incrementamos la seleccion del jugador en el nodo previo y nuevamente ajustamos el nodo previo a la seleccion actual y repetimos.

Con esto tendremos un histórico de (Si en el juego anterior se juego X entonces en el juego siguiente Jugara Y (con mas probabilidad)) donde Y es el mayor numero seleccionado en el contador de respuesta
#1042
Android / Re: Refresco de los navegadores
7 Julio 2016, 13:08 PM
Citarcuando uno los minimiza o utiliza otra aplicación,

A de ser problema de tu Android.
Yo tengo android 4.4.2 en un ZTE blede L3 Plus y... constantemente cambio de ventana para copiar y pegar informacion de otras aplicaciones y nunca se me a regrescado la pagina del foro, o el form para postear temas y/o respuestas

Acabo de probar otras paginas y tampoco pasa eso

Y si uso chrome.

Saludos
#1043
xD lo interesante seria que hackearan los servidores donde tienen todo lo relevantea las misiones Apolo.

#LosExtraterrestesExistenNASADiganLaVerdadYa
  :xD :xD :xD

Saludos
#1044
Acabo de leer la nota que Avast compro AVG...

https://techcrunch.com/2016/07/07/avast-acquires-antivirus-maker-avg-for-1-3bn-to-gain-scale-and-dive-into-iot-security/

Aver que nos trae de nuevo, yo use AVG free por un tiempo y me gusto bastante.

Saludos
#1045
He visto el codigo y no me queda claro que algoritmo de ordenamientl estas usando.

Saludos
#1046
Java / Re: Duda con un Problema en Java
7 Julio 2016, 02:10 AM
Por que no caturas mejor la cadena y luego le haces parse a float?

Saludos
#1047
El primero solo es para web, el segundo no lo conozco pero segun veo parece ser lo mismo.

Lo que este usuario busca es acceso de completo a la api de cada sistema para manipular el wifi.

Saludos
#1048
De hecho cuando se instalo el Google Chrome ya lo habia elegido, acabo de ver en la configuracion que comentaste y esta como predeterminado el Google Crome.

Y aun asi cuda que abro Google Crome me aparece el aviso de que si ya probe el Edge y todo eso. Pero no viene la opcion de olvidar y no recordar  >:( >:( >:( >:(

Saludos!
#1049
En windos 10 cada que ejecuto chrome me sale un aviso de que el Edge esto o el otro (Por parte de M$) Claro... Como se deshabilita ese molesto aviso?

Saludos
#1050
CitarNo external link allowed OR use h**p: instead of http

No pongas links a otros sitios entonces...

Muchos foros tienen administradores con poco cerebro, los cuales NO quieren que sus usuarios peguen links externos, esto con el fin de mantener a sus usuarios "Semi-Cautivos"

Muchas veces me a pasado que tratando de aportar en algunas paginas, pego algún link diciendo donde esta tal o cual solucion o algun enlace de interes y pooc despues me encuentro con que el tema fue borrado he incluso he sido baneado y no vuelvo a entrar a esas comunidades

Odio esas paginas!!

Saludos.