
En el siguiente screencast vamos a programar un juego del tres en raya y lo realizaremos con una web JSP. Durante el podcast explicaremos como instalar las herramientas necesarias e inicialmente realizaremos un diseño sencillo.
Sin embargo, a medida que vayamos avanzando vamos a programar que podamos jugar contra la máquina utilizando un algoritmo que se emplea en Inteligencia Artificial llamado Minimax. Este algoritmo se parece bastante a los algoritmos de busqueda con heuristica ya que su representación es igualmente en forma de árbol pero con una particularidad. Al ser un juego con adversario la maquina no se puede saber que movimientos va a realizar el jugador ya que aún no has movido. Sin embargo, lo que si se puede hacer es limitar las opciones de victoria. Por ello, en el caso del algoritmo minimax evalua la heuristica del tablero según quien mueve la ficha y asimilando también los movimientos del contrario y busca el mejor valor en su turno (la máxima heurística) y el peor movimiento del contrincario (la minima heurística). De ahí que se llame minimax, de mínimo y máximo. Al pretender recorrer un árbol también hemos utilizado recursividad, al igual que hicimos con la resolución del Sudoku (aunque un árbol también es posible recorrerlo de forma iterativa).
Pues nada, espero que os guste el screencast y aprendais un algoritmo más que se imparte en la asignatura de inteligencia artificial.
Sin embargo, a medida que vayamos avanzando vamos a programar que podamos jugar contra la máquina utilizando un algoritmo que se emplea en Inteligencia Artificial llamado Minimax. Este algoritmo se parece bastante a los algoritmos de busqueda con heuristica ya que su representación es igualmente en forma de árbol pero con una particularidad. Al ser un juego con adversario la maquina no se puede saber que movimientos va a realizar el jugador ya que aún no has movido. Sin embargo, lo que si se puede hacer es limitar las opciones de victoria. Por ello, en el caso del algoritmo minimax evalua la heuristica del tablero según quien mueve la ficha y asimilando también los movimientos del contrario y busca el mejor valor en su turno (la máxima heurística) y el peor movimiento del contrincario (la minima heurística). De ahí que se llame minimax, de mínimo y máximo. Al pretender recorrer un árbol también hemos utilizado recursividad, al igual que hicimos con la resolución del Sudoku (aunque un árbol también es posible recorrerlo de forma iterativa).
Pues nada, espero que os guste el screencast y aprendais un algoritmo más que se imparte en la asignatura de inteligencia artificial.
Y después de minimax a mejorar con alfabeta :D . La verdad es que es increible lo sencillo que es el algoritmo. Yo estoy programando un motor de ajedrez y aún me sigo sorprendiendo de lo 'fácil' que es obtebener un buen resultado a un problema complejo con este método.
ResponderEliminarFelicidades por el blog
Muchas gracias :)
ResponderEliminarNo consigo descargar el codigo fuente,si puedes vuelvelo a subir.Gracias
ResponderEliminarcomo puedo hacer un juego como este con la misma interface pero que juegue jugador1 vs jugador2??? necesito ayuda por favor tu vídeo es muy bueno me sirvió de guía.
ResponderEliminarBuenas,
ResponderEliminarHacerlo a dos jugadores es más facil. Solo debes guardar en una variable el turno que vaya cambiando de 0 a 1 y viceversa. Entonces por cada pieza que se pone la variable alterna el valor. Para alternar utilizar turno = 1-turno;
Saludos, Jorge
Hola! Me gustaria que volvieras a subir tu video, no entra la paguina. Esta muy bueno, apenas llevo poco estudiando y el video incompleto me ha servido más para a prender que mi profesor :D por eso me gustaria terminarlo de ver
ResponderEliminaraPOYO LA IDEA. El video completo seria de gran ayuda. Por favor subelo y gracias XD.
ResponderEliminarPuedes volver a subir el codigo.
ResponderEliminarGracias
volvelo a montar loco
ResponderEliminarsi puedes acolitar el resto del video
ResponderEliminarpuedes volver a envir el codigo?? no se habre la paguina..sta interesante el video
ResponderEliminar