Comunidad de diseño web y desarrollo en internet online

Ta-te-tí, triqui, tres en raya en Actionscript

Bien, luego de leer sobre el juego del ta-te-tí (o tres en raya) en Flash, me avoqué a la tarea de crear una IA incapaz de perder.

La verdad sea dicha, no hay juego más simple que el ta-te-tí y, por lo tanto, programar un algoritmo que no pierda no me resultó complicado e, incluso, me llevó solo 2 horas y media.

El juego es éste:



Creo que la mejor manera de programar una computadora que pueda considerarse un oponente digno es analizar cómo juega un humano. Por lo que antes de siquiera abrir Flash, jugué unas cuantas partidas (contra mí mismo) para tratar de entender el modo en el que elegía el casillero que me convenía.

Las reglas son algo simples y las enumero a continuación:

  1. Si el casillero central está libre ubicar una ficha ahí, caso contrario continuar
  2. Verificar si, ubicando una ficha, podemos ganar el juego, en ese caso lo hacemos, caso contrario, continua el algoritmo
  3. Verificar si, ubicando una ficha, el oponente puede ganar el partido, en ese caso, bloqueamos el casillero
  4. Buscamos una estrategia particular que puede ganarnos. En caso de que reconozcamos la estrategia, tomamos medidas para evitarla. La estrategia queda ilustrada en ésta imagen (si no ubicamos una ficha en la esquina superior izquierda, el juego está perdido, igualmente hay otras formas de vencer esta estrategia, ésta fue la que más me gustó):



  5. Si no ocurre ninguna de las anteriores, ubicamos una ficha en una posición más o menos aleatoria. Con la condición de que si la ficha central es nuestra, lo hacemos en un casillero diagonal.


Con sólo esas simples instrucciones, la computadora no puede perder.

Éste es el .zip

Como dijo una vez una computadora: "Curioso juego Dr. Falken, la única forma de ganar es no jugar"

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate