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:
Si el casillero central está libre ubicar una ficha ahí, caso contrario continuar
Verificar si, ubicando una ficha, podemos ganar el juego, en ese caso lo hacemos, caso contrario, continua el algoritmo
Verificar si, ubicando una ficha, el oponente puede ganar el partido, en ese caso, bloqueamos el casillero
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ó):
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.
mmmm un juego demasiado bien hecho. Pero nunca ganaria ... tal vez si pones 2 niveles de dificultad, normal e Imposible seria muy bueno para practicar. Por:Otaku RzO
gomita :
caraho, buen trabajo, ya no se me ocurre nada
Gomita: II Hernán: I
renzo_xp: El que posteé en mi primer comentario tiene un error y es posible ganarle. Gomita lo logró. Por:HernanRivas
El zip, ya tiene la ultima version?? Por:NIF2
No, la última es la que pongo en el último comentario. Por las dudas, es ésta.
Igual, lo único que cambié es la referencia a un Array y le agregué una comprobación más en un condicional (en total, agregué 5 palabras) Por:hernanrivas(sin loguearse
porqué no mejor haces un edit en el post principal? oh no me digas ya lo sé, es muy de azar que te salga el botón Por:gomita
Excelente Hernan, llevo mas de 10 juegos y no puedo ganar Por:flashreloco
gomita
Hola Man !!!. Felicitaciones por ser el primer ganador Por:esutoraiki
Take that Bleend!
Muy bueno Hernan Por:Lunatic_blog
Me diverti un buen rato; pero despues de 15 empates seguidos, me dejo un solo pensamiento en la cabeza:... No le puedo ganar a la IA !!!... Muy bueno la vdd Hernan... Por:M@U
Hernan, tengo que felicitarte, porque la verdad esta muy bueno, pero sinceramente mi aplauso esta vez se lo va a llevar gomitas, porque me hizo reir mucho al principio! La verdad Hernan tenes que agradecerle a gomitas, porque si no fuera por el, no podrias haber mejorado el codigo. Un saludo cordial a los dos!
devc Por:devc_blog
devc_blog :
La verdad Hernan tenes que agradecerle a gomitas, porque si no fuera por el, no podrias haber mejorado el codigo.
Es ella
Y si, los beta testers siempre mejoran la calidad del producto... (aunque eso no significa que no lamente haberme equivocado) Por:HernanRivas
Cruz en la parte superior izquierda Cruz en la parte inferior derecha Cruz en la parte inferior izquierda
Listo... Por:crystalsys_blog
OYE, MIRA ES QUE NECESITO HACER ESTE JUEGO DE TAREA, ME PODRIAS FACILITAR UNA AYUDA, MI CORREO ES esepulveda90@hotmail.com
espero tu ayuda, recuerda que el compartir conocimientos te hace ser mas importante Por:EGIST_blog
EGIST :
recuerda que el compartir conocimientos te hace ser mas importante
Lee el post con la explicación y bajá los archivos.
El duque ha hablado. Por:Duque de Rivas (logout)
............Es curioso, pero un programa de 3 en raya que nunca pierda se puede hacer en no más de 15 lineas. Algo extenso ese programa para un problema tan sencillo. Pistas para crearlo: Un array triple de 35 elementos con nº jugada-respuesta(flag binario), un algoritmo de secuencias simétricas G2-G9, leer (entrar) la jugada, calcular el grupo y un return( salida) con el siguiente mejor movimiento. Es un algoritmo exhaustivo pues contiene todos los posibles movimientos y sus respuestas. Se le puede añadir aleatoriedad de la simetría para que no parezca siempre la misma respuesta ( aunque realmente si lo sea). En definitiva: Entender que, descontando simetrías, hay 1+1+1 primeros movimientos, 5+5+2 segundos, 5+5+3 terceros...etc. Crear un flag que valga 511 (2^9-1) e ir anulando valores para respuestas creando el array de soluciones y buscar la reducción simétrica. Cualquier posición se reduce a un número entre 0 y 255. Los primeros 256 para las "x" y los restantes para los "o".(añadidos)
Ejemplo: Esta posición del cuarto movimiento(y todas sus simétricas): |x |o| | | | x| | | | | | es 17-2 o también en un solo número: 1041 (20-2, 20-32, 80-8, 80-128, 272-32 y 272-128 son sus simétricas reducibles -hay que encontrar el algoritmo que da 1041 como respuesta a todos ellos- ) y su respuesta es 256 ( una o en la casilla 2^8 pero como la respuesta es siempre una potencia de 2 basta usar dicha potencia, luego almacenaríamos 8 en el array.
Esperaré un tiempo para ver si alguien le coge el tranquillo y lo realiza.....
Curiosidad: El primer programa que hice del ta-te-ti y que no perdía nunca (gana o tablas), lo realicé en tarjetas perforadas.......y usaba, creo recordar, 122 tarjetas. Era el año 1973. Por:Teseo
me encanta jugar a el tateti Por:camila_blog
Teseo
Guauh Teseo eres re viejo, si trabajaste con tarjetas perforadas y toda la vaina. Yo naci en el 81, nos llevas mucha delantera. Por:esutoraiki
E CONSEGUIDO GANAR Por:MUERTE _blog
es muy copa este juego meencanta el juego tateti Por:belen_blog
la verdad que esta pagina me ayudo muchisimo. se que el ta te ti es un juego puro y exclusivamente de estrategia. es impresionante que con unos simples movimientos puedas vencer a tu contrincante. Por:vago_ju@hotmail.com_blog
muy bueno Por:julin_blog
gomita sos un genio no puedo ganarle..te felecito..! Por:julian_blog
Hola, tengo un torneo en la Universidad el Viernes a las 7 am y consiste en jugar triqui con todos los compañeros hasta que nos lleguen a la final. El ganador del concurso se gana un cinco y necesito ganar! Debo llevar una estrategia escrita que contenga el menor numero de palabras para poder realizar mis movimientos, por ejemplo: Si el oponente marca la casilla superior izquierda, debo marcar la casilla central. Agradezco la colaboracion de todos Uds. Por:alumna_blog
Llevo varios años jugando a esto y me he dedicado a jugar contra mí mismo durante mucho tiempo hasta que llegué al punto de conocer las combinaciones posibles y de ya no perder contra las demás personas...Ya van varios años de invicto que tengo y también me puse a prueba contra algunos softs y he encontrado algunos que según mi opinión son perfectos, por eso me la pasaba no logrando más que tablas...Ahora voy a probar las versiones que publicaste y voy a dar mi diagnóstico de si es perfecto el último que diseñaste o no...Saludos! Por:Federico (Bs As)_blog
Bueno parece ser que efectivamente diseñaste el juego perfecto ya que lo probé varias decenas de veces y evidentemente no presenta fallas...Te felicito por el trabajo...Todo un logro! Por:Federico (Bs As)_blog
Aclaro que sólo es imbatible el último, ya que efectivamente los anteriores presentan sus fallas (y justamente esa falla es en donde veo que la mayoría suele perder, a pesar de que no tiene nada de complejo)...Una vez más felicitaciones! Por:Federico (Bs As)_blog
La falla a la que me refería es a la de tu segundo intento...Entendí por qué decías que arreglaste una cosa para descomponer otra, aunque el error o falla del segundo es más común a eso me refiero...La falla del primero no sería tan perceptible (a pesar de que aquí el amigo "GOMITA" dice haberlo vencido en el primer intento, muy bien por él)...Todo es cuestión de probar con qué estrategia jugarle a cada una de los dos primeros hasta dar con la acertada, pero como antes mencione la última ya no presenta margen de error...Esto me recuerda al Chinook, el programa que resolvió el juego de damas y por lo tanto es invencible y también en algún sentido me recuerda al Deep Fritz con el ajedrez que si bien no se considera perfecto es mucho más avanzado que el temible Deep Blue que tan horrible recuerdo habrá dejado a Kasparov en su histórica contienda...Bueno ya me cansé de enviar comentarios Saludos! Por:Federico (Bs As)_blog
Muy, buen trabajo, sigue así... Por:Jess_blog
esto de IA no tiene nada Por:pepe_blog
me diberti bastante pero es imposible ganar ala tersera Por:gustavo _blog
noo no le puedo ganarr:@ lo odioooo Por:gg-blog
ke t pasa con mi-go Por:lucas-blog
que juego tan diertido Por:jefferson-blog
q vivos la concha de tu madre dp utossss de mierdaa pajerosss
no tienen imaginacion Por:fede-blog
hola esta muy bueno y funciona aun mejor
aunque me gustaria editar la interfaz un pokito, editar el circulo, las rayas, el color de fondo, textos, pero, la equis como la edito?
Por:krlitos
Anonymous :
hola esta muy bueno y funciona aun mejor
aunque me gustaria editar la interfaz un pokito, editar el circulo, las rayas, el color de fondo, textos, pero, la equis como la edito?
ya cache como
...olvidenlo
plop! Por:krlitos
ESTE JUEGO ES MUI DIVERTIDO
ES EL MEJOR JUEGO Por:JULIAN-blog
me encaaaanttto mucccccchhhhhisimooooo Por:julieta aleman -blog
dime como se creo el yriqui Por:valentina-blog
que nota ese juego nunca se gana Por:dangon<aling top>-b
pon la Por:carlos-blog
estubo buena Por:carlos m-blog
k pasa troncos soy nuevo y no se como es esto y necesito unos amigos :d:d Por:airam-blog
yo juego re bien al te te ti nadie me gana. Por:german-blog
estan re buenas
germanpastelero.com.ar
counte-rip.com.ar
cyberhoroscopo.com.ar
cybernumerologia.com.ar
y etc Por:german-blog
es re bueno el juego del ta te ti Por:jaji-blog
Que aburribo que es esta boludes Por:Anto-blog
Tengo que admitir que este juego está perfectamente hecho, es completamente imposible de ganar y eso ya me está sacando de quicio haha, bueno felicitaciones, sos todo un genio del ta-te-ti. Por:lourdes-blog
Ese ultimo tateti si q es imposible
probe todas las posibilidades y no gane una, encambio en los otros si Por:Tom-blog
Yo creo que la gracia de este juego está en jugarlo de a dos. Creo que es más posible de ganar y conserva ese no sé que de una competencia por algo tan simple.
Además creo que te saca las ganas de jugar algo que es completa y perfectamente imposible. No tiene onda eso.
Pero ahí va tu tiempo. Por:Clara-blog
que se vallan bien a ca........ Por:xlr2-blog
hola queria saber como se puede habrir el archivo .fla del tateti Por:newbe-blog
como se juega lastima q no se pueda jugar x q tanta parla a uno lo aburre pongan triqui en 3D Por:carlos mario-blog
nombe este juego nuca se le puede ganar ni se para que perdemos tiempo jugandolo besos bye Por:una persona que no conoce
ya le gane!...
1. x en la casilla 7
2. x en la casilla 6
si la maquina da O en la en la casilla 2, entonces pierde en las siguientes jugadas(hay que jugarlo bien) Por:abc-blog
aii es muii cursii esteee juegoo ¿¿¿porq no se hcen un flaag i se dejan de joderr ??
oseaaa es muii crazy jaja buee muaaass ma fuii kisss Por:flaaaaaaaarr la flogger m
kiss Por:flaaaaaaaarr la flogger -
???bsoss Por:lindaa hermosa-blog
yo le gane O: Por:alan-blog
podrías poner para descargar el código orignal para que la computadora pierda? gracias Por:elvio921
bastante fasil el juegoo Por:soy asii -blog
i`m sorry x lo qq voy a decir , pero este juego es muy bludo
pierden tiempo al re pedo
hagan kosas mas productivas
yo no pierdo tiempo en eso ni enn pedo
bye-bye Por:muy cheetaa -blog
HOLA ESTE JUEGO ESTA MUY RE CHOTO
QQ ME LA CHUPEN
SABES XQ ESTA RE CHOTO ??
X QQ EL JUEO DE X SI ES UNA MIERDA Por:ceci_vl-blog
Hola a mi me gusta este juego , es mas me parece que esta genial , siempre lo juego , pero a veces me enojo por que no gano jaja Por:somos_lasgatas-blog
creo q hacer un programa como este es muy facil pero intenta hacer uno de 15 casilas y ya veras amigo haber en cuanto lo haces jeje. Por:triton-blog