Esta vez he decidido publicar unos de los programas que me dejaron como proyecto en la Universidad, en palabras comunes el programa lo que permite es jugar al Tic tac toe, tres en raya o el gato como lo conocemos por acá.., puedes jugar contra otra persona o contra la máquina, tiene una interfaz de usuario simple y sonidos para hacer más llamativo todo el juego en sí. =)
En tecnisismos, lo que nos pidieron para realizar este programa fue primeramente en la parte visual o de interfaz de usuario:
- Utilizar eventos para los componentes.
- Menús, botones, gráficos, etc.
En lo que respecta a la parte programática:
- Implementar el algoritmo Min-Max para simular la inteligencia artificial de la máquina.
- Lograrlo mediante el uso de árboles y recursión.
El algoritmo del MiniMax como lo llamabamos es el que nos permite ponerle la inteligencia a la máquina al momento de mover las piezas, entre más grande hagamos el árbol de posibles movimientos, más inteligente será la maquina. En mi caso utilicé el árbol completo entonces es imposible vencer a la máquina en este programa..
si no me crees intenta ganarle. xD
Captura de Pantalla:
Descarga el programa y el código fuente dando click aquí.
El programa está hecho usando el IDE Netbeans, pero dentro de la carpeta “dist” puedes encontrar el “ejecutable jar”(gato.jar) para correr el programa sin necesidad de tener Netbeans. =)
Espero que a alguien le llegue a servir de algo, cualquier duda o comentario es bien recibido. =)




Octubre 11th, 2006 a las 10:40
como puedo aplicar esta tecnica del minimax con el triqui en java, pues he tratado de bajar tu programa y no puedo. te agradeceria y me ayudes enviando el programa a mi correo.
Octubre 11th, 2006 a las 15:13
Hola, no es necesario que te envie a tu correo el programa, lo bajas directamente de la siguiente dirección:
http://www.panchosoft.com/archivos/gato.zip
Para abrirlo sólo tienes que descomprimir este archivo a cualquier carpeta, vas a esa carpeta y buscas dentro de ella la carpeta de nombre “dist” y entras ahí, verás un archivo con nombre “Gato.jar” y solamente tienes que dar doble click en él para ejecutarlo.
Para ver el código fuente y el uso del minimax puedes buscar en las carpetas “src” y “build” los archivos con extensión “.java”, pero te recomiendo que descargues el IDE Netbeans(www.netbeans.org) y abras el proyecto con él, ya que ahí fue creado.
Saludos.
Noviembre 13th, 2006 a las 10:38
gracias por la aplicacion que genial esta
Diciembre 1st, 2006 a las 8:41
esta buenismo,con que lo isite jbuilder?
me gustaria saber como aplicastes los arboles,
resp porfa a polanquito-1@hotmail.com
suerte xauu
Diciembre 4th, 2006 a las 19:25
Hola. me gustaria que me enviaras el diagrama de flujo y el algoritmo. si no es mucho pedir, ya que no se nada de esto y es para un trabajo final. gracias.
Diciembre 8th, 2006 a las 22:47
Hola, bueno diagrama de flujo no tengo, pero el algoritmo lo puedes encontrar fácilmente en Google, sólo poniendo como clave de búsqueda “Algoritmo Minimax”.
Encontrarás muchas explicaciones, ya que el algoritmo es el mismo en todos los programas que lo implementen.
En este programa se usa un árbol completo para hacer imposible que la computadora pierda.
Saludos. =)
Enero 19th, 2007 a las 16:46
Está muy bien todo eso que hablan, pero yo programé en un par de horas un tres en raya en el que la máquina era invencible sin tanta historia. Lo que quiero decir es que para que sirve realmente el algoritmo min max.
Enero 20th, 2007 a las 0:22
Oye me podria ayudar a hacer un gato para jugar en red con gui
ya tengo todo solo me falta la plantilla del juego como el tuyo para poder marcar los ganadores solo tengo la conexion y la vista, siquieres te mando el codigo a tu correo.Por favor
Enero 25th, 2007 a las 20:12
hola. conoces algun otro algoritmo para la simular la inteligencia artificial de la maquina?? alguno en el que no tenga q usar arboles!
Enero 25th, 2007 a las 20:20
esta bueno tu blog. espero tu respuesta. GRACIAS!!!
Marzo 12th, 2007 a las 14:22
hola, podrias orientarme acerca de el juego de numeros de acomodarlos en orden cuando tienes solo un espacio, del 1 al 5, es para IA. gracias
Marzo 19th, 2007 a las 3:32
Hola. En respuesta a quien programo un 3 en raya invencible en solo 2 horas, ¡enhorabuena, crack!, pero lo salgoritmos de busqueda (”tanta historia”, como tu dices) no solo son utiles sino IMPRESCINDIBLES a ciertos niveles. Piensa en esto: trata de implementar el Go-Moku (algo parecido al 5 en raya, pero en un tablero de 19 x 19) sin emplear un algoritmo de este tipo a ver cuantos años tardas… antes de cansarte y dejarlo.
Por favor, un respeto a la algoritmica que es lo que posibilita implementar problemas que de otra manera searia impensable.
Marzo 28th, 2007 a las 15:51
hola soy carlos y estoy buscando por la red algun programa de tres en raya para visual basic o similar. Para posteriormente realizar mediante un protocolo ethernet una conexion a un s7-300 (314 ifm)y hacer un tres en raya neumatico.
me gustaria si me pudieses dar mas imformación sobre el programa….gracias
un saludo!!!
Abril 19th, 2007 a las 17:11
Hola oye quisiera saber en que parte del codigo haces el calculo de la funcion estatica y donde le das la profundidad del arbol porfavor te agradeceria que me contestaras a mi correo… blessed_skate@hotmail.com
Abril 26th, 2007 a las 1:45
Alguien ha programado un ajedrez con minimax ?? Bueno, es que en nuestro proyecto final, nos enfermamos queriendo hacer un ajedrez, pero aun no podemos implementar este metodo, alguien podria enviarme alguna sugerencia por favor ?
Abril 27th, 2007 a las 21:06
Hola, lamento no haber respondido antes. =)
El juego del gato también podría programarse utilizando condiciones y no inteligencia artificial, el beneficio de la IA no es poder hacer a la máquina invencible en el Gato es resolver otro tipo de problemas y situaciones mucho más complejas ,como bien menciona Alberthoven. En la universidad me pidieron que usara ese algoritmo y por eso lo hice así. =)
Información sobre el algoritmo la pueden encontrar fácilmente en Google pero de preferencia en inglés. =)
El código del Gato está hecho para generar el árbol de posibilidades completo, por esa razón no se le puede asignar profundidad. De hecho hice al principio un con profundidad de 2 pero por esa misma razón no era perfecto y podías vencer a la máquina.
Un ajedrez sería super difícil de implementar con este algoritmo, imagina como sería el árbol de las posibilidades de movimiento. Y aunque puedas utilizar técnicas como la poda alfa beta (Google) para no hacer mejores elecciones creo que es algo muy difícil de hacer. x_x
Mira, encontré esta página donde explican bien como hacerlo, aunque a estas fechas seguramente ya la miraste:
http://www.dcc.uchile.cl/~jegger/memoria/node36.html
Saludos. =)
Mayo 2nd, 2007 a las 17:29
hola porfa necesito el codigo en java del tres en raya applet
Mayo 17th, 2007 a las 20:38
hola amigos quisiera que me hiciera llegar algoritmos para hacer juegos en netbeans ya que estoy aprendiendo se lo agraDECERIA INDEPENDENCIA620@HOTMAIL.COM
Mayo 31st, 2007 a las 23:36
hola!!! poes el programa esta muuuy bien hecho … gracias!!!
me sirvio mucho !!!!
Junio 2nd, 2007 a las 21:05
Hola, te cuento que tu implementación falla, de manera que si la maquina tiene posibilidad de ganar no lo hace, esto le sucede cuando se le presenta una oprtunidad de ganar en una diagonal.
ej: sigue esta jugada y te daras cuenta.
siendo el tableo asi:
012
345
678
juega estas posiciones. (no importa donde juega la maquina)
(*) son las posiciones a jugar
000
00*
000
000
*00
000
000
000
00*
aqui despues de la tercer jugada a la maquina se le presenta la oportunidad de ganar y no lo hace!!!!!
saludos!!!
Javier
Junio 3rd, 2007 a las 10:04
como implementar el juego de tres en raya o el gato con el metodo poda alfa-beta
Junio 5th, 2007 a las 12:34
hola todos el programa de verdad esta muy bueno pero tengo una pregunta, donde se genera el arbol, es que me mandaron hacer el ejercicio y no se como generar el arbol.
pues el ejercicio q me mandaron hacer no es tan complicado puesto que no tiene q ser con graficos ni nada solo necesito los metodos para poder hacerlo en java.
te agradezco tu colaboracion y si puedes mandamelo a este mail.
vegamaur@gmail.com
Junio 5th, 2007 a las 12:38
y si pudes lo mas pronto posible ya que es para el jueves en la noche
gracias y disculpa la molestia pero es que esto no lo entiendo muy bien
Junio 14th, 2007 a las 15:52
hola todos el programa de verdad esta muy bueno pero tengo una pregunta, como podria hacer el juego del tres en raya pero en codigo de java eclipse…..pues el ejercicio q me mandaron hacer..no tiene q ser con graficos ni nada solo necesito los metodos para poder hacerlo en java eclipse.
Te agradezco de antemano tu colaboracion…gracias
Junio 16th, 2007 a las 10:34
hola necesitamos de tu ayuda requerimos el codigo fuente del juego del gato en java que no sea grafico osea que fubciones desde simbolo del sistema lo mas sencilo pero que funciones no se si puedas ayudar,
Julio 31st, 2007 a las 0:41
Que tal todos =) , el código lo pueden tomar directamente del programa. Las clases importantes están separadas de lo visual, sólo hay que estudiar un poco el código.
Agosto 21st, 2007 a las 11:47
hola realmente este codigo esta demasiado chiva… buenisimo… mi consulta es que si no tienes uno un poco mas basico… aunque este es 100% comprendible.. creo que me seria de gran ayuda Gracias
Octubre 12th, 2007 a las 13:10
la implementacion esta interesante, me va ayudar mucho para crear un programa diferente, y felicitaciones por tu programa
Octubre 18th, 2007 a las 10:45
holaa me gusto tu programa solo q yo necesito hacere un gato con graficos mas sencillos , y que solo aparezca una x y una o, como podria hacerlo?
Octubre 23rd, 2007 a las 13:31
hola kisiera saber como se implementa el juego del gato en JGrasp pero sin utilzar applet y sin utilizar el arbol solo una matriz y ke lea un archivo .txt donde al estar en blanco se vera asi:
- - -
- - -
- - -
necesito ke lea el archivo ke tire luego se cierra el archivo y se abre otro y hace la sig. tirada y asi suscesivamente hay un programa ke ve kien gana pero ese no me interesa jajaja por fa ayudaaaa!!
Octubre 23rd, 2007 a las 16:22
Alguien por favor me podria ayudar a hacer el juego de tetris en java netbeans..?….. si tiene el codigo fuente mucho mejor .. gracias..
Octubre 27th, 2007 a las 8:23
Buenas , estoy haciendo un gato tridimensional , y bueno la clase ComputadoraIA me ha ayudado bastante , yo no quiero codigo ni mucho menos.
Solo si me podrias ayudar a empaquetar un .jar para hacer distribucion de mi proyecto , estoy manejando netbeans 5.5.1 y creo es muy parecido al 5.5 , he intentado en una maquina con arquitectura amd64 y lo creo , pero solo lo ejecuta en esa maquina , he leido que la JVM no es la misma para maquinas x86 y amd64, sabes algo de casualidad ?
Octubre 28th, 2007 a las 0:34
No me ha tocado compilar en máquinas de 64 bits pero la lógica de Java es que el bytecode (nuestro programa) corre en cualquier máquina virtual sea en Windows/Linux/Mac 32/64 Bits.
Da más detalles del error =)
Octubre 29th, 2007 a las 15:12
una pregunta, me ayudsa a hacer el ta te ti pero con el visual basic, tenes idea de como se hace?
Octubre 30th, 2007 a las 12:39
En realidad no me marca ningun error , solo que al hacer click en el .JAR no pasa nada.
Me podrias decir como empaqueste tu ?.
No escribi gracias en mi primer post asi que lo hago ahora .
GRACIAS !!
Noviembre 6th, 2007 a las 7:24
pasenme un juevo en java o eclipse y yo les pasare cono jakear tarejetas de celulares
lo necesito pronto para presentar como mi projet
Noviembre 6th, 2007 a las 7:26
tego de todo y para todos porfa mandemen el juego en java o esclipse co en codigo a mi correo
chau se cuidan
Noviembre 13th, 2007 a las 2:51
Buenas:
Yo, estoy intentando hacer un tres en raya donde se pueda ganar al ordenador, pero no siempre.
Estoy haciendo los arboles, y utilizando las simetrias, es decir, la primera ficha solo tiene 3 posiciones y asi…
La cosa es que me parece mucho trabajo, y tal vez halla una forma más fácil de hacerlo.
Mi arbol tiene una profundidad de 6, para llegar a colocar todas las fichas.
Con lo cual de colocar esa primera ficha, salen un montón de ociones.
Si me pudieras decir si voy por el buena camino, te lo agradeceria.
Muchas gracias.
Noviembre 13th, 2007 a las 6:32
Buenas, otra vez.
He estado mirando tu codigo, y bien, me he aclarado mucho.
Como yo queria hacer que no siempre gane ,estaba haciendo las opciones para decidir, pero veo que eso es mucho trabajo. y lo haré aleatoriamente o algo.
Muchas gracias. Me ha servido de mucho tu blog
Noviembre 15th, 2007 a las 20:08
Saludos: me gustaria saber como hiciste la funcion de evaluacion ,gracias
Noviembre 23rd, 2007 a las 23:22
felicidades por tu juego me parece muy interesante globalmente pero me gustaria pedirte el favor de explicarme como crear el .jar
te agradezco que me respondas al correo
de nuevo felicidades
Noviembre 25th, 2007 a las 20:14
Saludos, me hace falta con caracter urgente el codigo de este famoso programa(tic tac toe), si pudieran que sea en java, aunque en cualquier leguaje me gustaria, muchas gracias de antemano.
Noviembre 28th, 2007 a las 10:12
Como puedo ver el codigo del juego
Noviembre 28th, 2007 a las 10:14
hola me gustaria que el cogigo me lo dieras en c++
Noviembre 28th, 2007 a las 20:14
El código fuente está en el archivo .zip.
No dispongo del código en C++.
Diciembre 4th, 2007 a las 21:29
hola..
tienes disponible un modelo de clases para el juego??
Diciembre 27th, 2007 a las 5:02
Mil gracias, caballero.
A algunos nos has salvado la vida, y a otros estas a punto de salvársela.
Saludos desde España.
Diciembre 28th, 2007 a las 15:04
Hombre, es un orgullo saber que tanta gente ha descargado mi gato. =)
Ya me han tocado ver otros juegos que traen como base este juego y es muy muy satisfactorio sinceramente.
Saludos y gracias.
Enero 22nd, 2008 a las 20:28
buenas saludos al autor a todos los demas
me gustaria que me ayudaran a implementar este juego pero para usarlo en red
Enero 27th, 2008 a las 7:09
Hola, esta bueno el juego, pero me gustaría saber como puedo hacer para aplicarlo para J2ME. Estoy haciendo mi tesis en J2ME, y es un juego en red para celulares.
Febrero 24th, 2008 a las 14:48
Hola, te felicito por tu programa, es exactamente lo que necesito en este momento para mi proyecto, pero necesito ejecutarlo en JCreator, no en NetBeans (cosas de maestros) y compile todos los archivos .java de la carpeta src y algunos tiran errores y el main no encuntra la clase Gato. me puedes ayudar con este problema?
Febrero 29th, 2008 a las 19:53
ummm……lamentablemente no he podido descargar tu super juego…ni por una ni por otra dirección… si puedes arreglarlo te lo agradecería…
Marzo 29th, 2008 a las 8:48
Xvr haces bien amigo ahora solo tengo que estudiar los pasos que has hecho .
gracias brother
Abril 20th, 2008 a las 16:00
Está genial el prg, te felicito solo tiene la falla que te comentaron en unos comens atras, en el cual la maquina no gana.
Abril 25th, 2008 a las 21:09
hola francisco megustaria saber como puedo implementar tu codigo de gato en jess para q sea un super sistema experto en el juego d tres en raya
Abril 28th, 2008 a las 10:32
Hola que tal. Alguien podría ayudarme a conseguir el codigo en java con interfaces graficas El juego del Gato?
Abril 30th, 2008 a las 11:51
Hola:
Le escribo desde Cuba. Estoy haciendo mi tesis sobre el algoritmo minimax, (como aplicarlo a diferentes juegos que se desarrollan en mi universidad) me gustaría que me ayudaran con cualquier bibliografía sobre el tema, si alguien tiene el juego en c++ y me lo pudiera facilitar le estaría muy agradecido.
Abril 30th, 2008 a las 12:02
Hola Carolina:
Si pudiste conseguir el codigo en c++, me lo podrias facilitar.
Si no es mucha molestia, me lo podrias a mandar a esta direccion:
asardina@estudiantes.uci.cu
Mayo 5th, 2008 a las 15:32
xevere, causa muchas gracias por los cods
Mayo 12th, 2008 a las 13:48
hola francisco y todos los lectores
como bien dices en tu comentario sobre el programa, lo realizaste con el arbol completo…
yo tambien estoy haciendo un trabajo sobre algoritmos MiniMax pero necesito trabajar en una funcion de evaluacion que me permita no recorrer el arbol en toda su profundidad, saben algo de esto?
especialmente para el juego de los gatos y el raton.
Mayo 26th, 2008 a las 16:08
Yo también estoy trabajando en ese problema, pero ya el arbol de jugadas se hace “un poco” mas grande, pues el tablero es de 8 x 8 y se hace un tanto dificil buscar por todo el arbol de juegos, tal y como dice david, si pudieran darnos alguna idea de la función heuristica que pudieramos usar . . . .
Mayo 31st, 2008 a las 12:48
oy ya baje todo lo q tienes pero no lo puedo ejecutar o mas bien no se como hacerle. porfa ayudenme
Junio 3rd, 2008 a las 12:45
hola estoy programando un “Gatos y Raton” con minimax y Alfa - Beta too pero estoy atascado con la misma funcion heuristica, para evaluar las posiciones del juego.
SInceramente en la web no viene mucha informacion sobre esto, todo muy teorico y baba, pero mas nada,
agradeceria en el alma a quien me pueda ayudar,
David
Junio 6th, 2008 a las 17:43
weno hasta ahora yo lo ke me hice una funcion ke simplemente me contaba la cantidad de filas por las ke estaban repartidos los gatos, y la separacion de dichas filas, y mientras menos me de dicha función mas fuerte es la posicion en ese tablero, teniendo como resultado asi, ke la mejor posicion posible para los gatos es akella en la ke todos esten en una misma fila, haciendo imposible el paso del raton, pero esto es algo muy chapuzero, así que si se les ocurreo otra idea posteenla
Junio 27th, 2008 a las 9:16
oye quiero saber como se puede hacer en java un programa que reconozca un texto y lo haga en matriz y me diga cuantas filas y cuantas columans tiene el texto porfa es urgente gracias
Julio 27th, 2008 a las 18:10
me puedes dar el codigo de funcione con el compilador JCreator Pro
Agosto 6th, 2008 a las 19:44
copia las clases que estan en el src y pegalas en una nueva clase del IDE que estés usando.
Agosto 9th, 2008 a las 12:08
Necesito ayuda, nos dejaron en la universidad hacer un juego parecido al gato, pero mas dificil, entonces para ver si me podria ayudar, gracias
Agosto 19th, 2008 a las 5:14
Hola, me gustaria que me ayudases. Me baje el juego del gato que implementastes, y me gusta mucho, pero lo que quiero es el juego pero solo para dos jugadores. Quiero quitar la parte de jugar con la computadora, pero al hacerlo me salen muchos fallos.
Me puedes ayudar?
Es urgente.
Gracias
Agosto 19th, 2008 a las 5:18
mi correo es pedrocity@hotmail.com
Septiembre 30th, 2008 a las 10:45
gracias