lunes, 17 de enero de 2011

Tres en Raya






TRES EN RAYA

El tres en línea, también conocido como tres en raya, juego del gato, tatetí, triqui, tres en gallo, michi o la vieja, es un juego de lápiz y papel entre dos jugadores: O y X, que marcan los espacios de un tablero de 3×3 alternadamente. Un jugador gana si consigue tener una línea de tres de sus símbolos: la línea puede ser horizontal, vertical o diagonal. Además en este juego podemos competir con la computadora.

Para la realización de la interfaz utilizamos lo siguiente:
  • 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
  • Lenguaje de programación: Java.
  • Uso del algoritmo Min-Mac de teoría de juegos.
  • Árboles y recursión.
Algoritmo Min – Max

En teoría de juegos, Minimax es un método de decisión para minimizar la pérdida máxima esperada en juegos con adversario y con información perfecta. Minimax es un algoritmo recursivo.
El funcionamiento de Minimax puede resumirse como elegir el mejor movimiento para ti mismo suponiendo que tu contrincante escogerá el peor para ti.
Pasos del algoritmo Minimax:
1. Generación del árbol de juego. Se generarán todos los nodos hasta llegar a un estado terminal.

2. Cálculo de los valores de la función de utilidad para cada nodo terminal.

3. Calcular el valor de los nodos superiores a partir del valor de los inferiores. Alternativamente se elegirán los valores mínimos y máximos representando los movimientos del jugador y del oponente, de ahí el nombre de Minimax.

4. Elegir la jugada valorando los valores que han llegado al nivel superior.
El algoritmo explorará los nodos del árbol asignándoles un valor numérico mediante una función de evaluación, empezando por los nodos terminales y subiendo hacia la raíz. La función de utilidad definirá lo buena que es la posición para un jugador cuando la alcanza. En el caso del ajedrez los posibles valores son (+1,0,-1) que se corresponden con ganar, empatar y perder respectivamente. En el caso del backgammon los posibles valores tendrán un rango de [+192,-192], correspondiéndose con el valor de las fichas. Para cada juego pueden ser diferentes.
Si Minimax se enfrenta con el dilema del prisionero escogerá siempre la opción con la cual maximiza su resultado suponiendo que el contrincante intenta minimizarlo y hacernos perder.

El algoritmo MINIMAX sirve para determinar la estrategia óptima para MAX, y decidir, de este modo, la mejor jugada. El algoritmo se compone de cinco pasos:

1. Generación de todo el árbol de juego, completamente hasta llegar a los estados terminales. En la mayoría de los casos, esto resulta prohibitivo.

2. Aplicación de la función de utilidad a cada estado terminal y obtención de su valor respectivo.

3. Uso de la utilidad de los estados terminales para calcular la utilidad de los nodos de nivel superior en el árbol de búsqueda.

4. Continuación del respaldo a los valores de los nodos hojas, en dirección a la raíz, una capa a la vez.

5. Finalmente, los valores respaldados llegan a la parte superior del árbol; aquí, MAX selecciona la jugada que le permite obtener el valor más alto.


INTERFAZ DEL JUEGO

Esta es la pantalla que aparece cuando el programa se carga.


Para iniciar el juego


Para escoger la forma de jugar


Ingresar los nombres de los jugadores


Persona Computadora


Escoger tipo de fichas

Video en YouTube:



Programa en Megaupload:


66 comentarios:

  1. Un favor me parecio interesante tu juego quisiera ver si m facilitas el codigo ya que megaupload fue cerra ya no lo pude conseguir mi correo es raulmsd_592@hotmail.com t lo agradeceria mucho es q quiero ver la interaccion entre ventanas ps

    ResponderEliminar
  2. mas de lo mismo, megaupload cerró pasameló, por mi correo asaezma@gmail.com

    ResponderEliminar
  3. muy buen programa haber si me puesde pasar el codigo mi correo es godsend_kensei@hotmail.com

    ResponderEliminar
  4. hola compañero, un favorsote me podrias pasar el proyecto mi correo es distorsionadoo@gmail.com

    ResponderEliminar
  5. muy interesante, si se puede pasame el algoritmo o el programa a mi correo tambien, y gracias por la selecta informacion de tu blog.

    saludos

    Juan Manuel Zorrilla
    Lima- Peru
    jzorrilla26@hotmail.com

    ResponderEliminar
  6. esta chevere ese juego, aver si me lo pasas el juego a mi bandeja de entrada o en gmail, por favor me gusta esos tipos de juego y quiero ver como lo codificaste, y poder aprender un poco mas de juegos.

    saludos

    niedlich_junior@hotmail.com
    sjunior.fr@gmail.com

    ResponderEliminar
  7. Hola
    esta muy bueno el programa, por favor me enviarías el código?
    resien estoy aprendiendo en netbeans

    rasacamo@gmail.com
    santiago9425@hotmail.com

    ResponderEliminar
  8. Hola me gusto mucho tu programa puedes pasarme el codigo gracias..
    micky_34_96@hotmail.com

    ResponderEliminar
  9. buenas amigo me gustaria ver el codiggo del programa para ver si me lo puedes enviar a mi gmail brayanpop@gmail.com

    ResponderEliminar
  10. Podrias pasarme el programa porfavor? mi correo allan__2794@hotmail.com
    te lo agradeceria

    ResponderEliminar
  11. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  12. hey amigo porfa me gustaria probar tu juego, es muy bueno please pasa el codigo a danyssbeyeah@gmail.com
    Gracias xD!!

    ResponderEliminar
  13. Amigo, pasame tu codigo, es genial, me gustaria verlo para aprender, soy principiante aun en programacion, te dejo mi correo para que me lo envies, Muchas Gracias de antemano!, moya_rm@hotmail.com

    ResponderEliminar
  14. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  15. buenas amigo me gustaria probarel juego, el inconveniente es q megaupload se cerro te agradeceria si me podriar otorgar el juego aki mi correo skyjean14@outlook.com ...
    gracias

    ResponderEliminar
  16. Por favor, amigo yo tengo el juego hecho pero a modo consola y se ve muy mal, quisiera ver como haces esa interfaces, están muy buenas, te agradecería mucho si me lo mandas al correo: gbr153@gmail.com. Te agradezco de antemano!!

    ResponderEliminar
  17. Que tal davicho el juego esta muy bueno estoy incursionando en Netbeans y me gustaria mucho ver como haces las interfaces por fa si me puedes mandar el codigo me seria de mucha ayuda gracias edison_pol@hotmail.com

    ResponderEliminar
  18. Hola.
    Muy interesante el juego. Me puedes hacer el favor de enviarme el codigo funete, mi correo es roinujacob@gmail.com

    Muchas gracias

    ResponderEliminar
  19. Hola Me gusto mucho tu juego, me harías un gran favor si me envías el código a mi correo the_roseblue@hotmail.com Gracias !!!

    ResponderEliminar
  20. Hola como estas me puedes enviar el codigo kjarrekida@gmail.com....te lo agradeceria...de paso muy interesante los articulos del blog....

    ResponderEliminar
  21. holaa estaa muy weno el programa me podrias pasar el codigo porfa amigo te lo agradeceriaaa muchoo .. xcvx15@hotmail.com aaa iwal me gusta la info ke pones en tu blog muy wenaaa ehh weno saludos y gracias :)

    ResponderEliminar
  22. me puedes facilitar el código por favooorr, mi correo es aylin.corrales@gmail.com, es urgente :( .... Muy bueno el blog, Felicitaciones!!!

    ResponderEliminar
  23. como vas hermano, gracias por el tuto...me podrias regalar el codigo..gracias !!

    cesarurquizag@outlook.com

    ResponderEliminar
  24. Mae esta App esta de lujo!!! Mae excelente!!!! Viejo usted seria tan amable de enviar el codigo por favor....

    costarica1891@gmail.com

    Mae de antemano Pura Vida!!!

    ResponderEliminar
  25. Hola! Te cuento que tenemos que desarrollar un juego diferente a este pero queremos saber que herramientas utilizaste con el tuyo! Esta muy chevere! Te agradeceriamos mucho nos ayudes enviandonos tu codigo para analizarlo! Millon gracias! Espero tu respuesta! Mi correo es gemita_mel_21@hotmail.com!

    ResponderEliminar
  26. hola, que bien se ve tu programa me gustaria saber como lo desarrollaste podrias pasarme el codigo a mi correo. por favor edkari19@gmail.com lo mas pronto posible, te lo agradeceria muchisimo. Gracias

    ResponderEliminar
  27. hola amigo me parecio muy interesante tu programa, podrias facilitarme el codigo para poder hacerlo tambien, ya que megaupload quedo cerrada, porfss! mi correo es vany_choki5@hotmail.com

    ResponderEliminar
  28. el programa esta muy bueno la verdd nose si sigues viendo este blog pero me podrias pasar el codigo a mi correo luisaparicio_j316@hotmail.com te lo agradeceria mucho gracias

    ResponderEliminar
  29. VIEJO EL PROGRAMA ESTA CREVERE ISE UNO TAMBIÉN PERO EL TULLO ME A IMPRESIONADO ME PODRÍAS MANDAR EL CÓDIGO YA QUE NO LO PUEDO DESCARGAR DESDE EL LINK QUE DEJASTE AL FINAL juan_alberto_27@hotmail.com este es mi correo TE LO AGRADESERIA DEMACIADO......GRACIAS

    ResponderEliminar
  30. hola me podrias enviar el juego a mi correo es:
    edd_buster41@hotmail.es
    te lo agradeceria

    ResponderEliminar
  31. hola Buenos dias:

    Tu juego esta increible, me podrias enviar el código a mi correo por favor, muchas gracias..

    girlalma@gmail.com

    ResponderEliminar
  32. porfa me podrias pasarel codigo me parese super interesante mi correo es hernanchotavo@hotmail.com

    ResponderEliminar
  33. hola me podrias pasar tu codigo esta muy interezante tu juego mandy_picis@hotmail.com

    ResponderEliminar
  34. quisiera v er el codigo me lo podrias pasar? brayan.p21@hotmail.com

    ResponderEliminar
  35. Buenas noches, me pregunto si me podría facilitar el programa, me pareció muy completo, pero megaupload ya lo cerraron, si lo puede compartir le agradecería mi correo es jovisgal@hotmail.com. Gracias

    ResponderEliminar
  36. Hola, me podrias pasar el proyecto por fa , necesito estudiarlo, ya que tal vez haga uno pero no copiando quiero estudiarlo mi correo es : trex.master5.om@gmail.com

    ResponderEliminar
  37. Muy buenas, me podrías pasar el código por favor? está muy currado y me iría muy bien aprender desde tu código, puesto que tiene una interfaz y funcionamiento perfecto!
    Correo: jjcrespi@hotmail.com Muchas gracias!

    ResponderEliminar
  38. Buenas noches, me podrías mandar a mi correo el código por favor, está muy interesante tu programa, te lo agradezco de antemano. guesoslim@gmail.com

    ResponderEliminar
  39. Hola, queria saber si me puedes de favor enviar el codigo para aprender mas sobre como funsiona el programa, gracias de antemano
    nicolas11794@gmail.com

    ResponderEliminar
  40. hola, una pregunta es posible que me regales el codigo del juego.... gracias!!!

    liz_8102@hotmail.com

    ResponderEliminar
  41. hola.. por favor me puedes enviar el codigo del juego...
    mi correo es: rafa_tu_174@hotmail.com gracias....

    ResponderEliminar
  42. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  43. Me gusto mucho el video y la forma en como realizaste el proyecto. Me podrias mandar el codigo a mi correo? Porfavor !!!
    Mi correo es munest_zone_ely_@hotmail.com
    Graciasss :D

    ResponderEliminar
  44. podrias pasar el codifgo?

    god_thelord@hotmail.com

    ResponderEliminar
  45. Hola, esta excelente tu programa, podrias pasarme el código por favor? letiziavzz@hotmail.com

    ResponderEliminar
  46. Hola.
    eMuy bueno tu programa, por favor me enviarías el código?
    Estoy comenzando en netbeans y me ayudarías mucho

    manuelipb@gmail.com desde Chile

    ResponderEliminar
  47. Hola, esta muy interesante tu proyecto, me podrias enviar el proyecto o codigo fuente por favor a jalirbasan@gmail.com

    ResponderEliminar
  48. Hola, que excelente que esta el programa. Me podría regalar el código.
    mrlnchaves@gmail.com

    ResponderEliminar
  49. HOLA DISCULPE, POR FAVOR ME LO PODRIA ENVIAR A MI CORREO : john_08_95@hotmail.com LO NECESITO PARA UN PROYECT

    ResponderEliminar
  50. hola que tal amigo me gusto tu juego me gustaría que me podrias mandar tu programa mi correo:nelly_zero@hotmail.com

    ResponderEliminar
  51. hola, me gusto mucho tu juego/programa y me gustaría que si me lo podrias mandar a mi correo el codigo integro, estoy aprendiendo java y esto me audaria: franklin57art@gmail.com

    ResponderEliminar
  52. Amigo muy buen programa, muy completo, serias tan amable de por favor de enviarme el codigo a mi correo aarodrigueznolasco@gmail.com

    Saludos desde Honduras.

    ResponderEliminar
  53. hola, me gustaría que me mandaras el codigo del programa a mi correo por favor es una excelente aplicación rodolfo_zl@outlook.com

    ResponderEliminar
  54. hola me gustaría que me pasaras tu código me pareció muy interesante y actualmente estoy empezando a programar te lo agradecería mucho si me lo envías al siguiente correo adriana.glezcontreras@gmail.com

    ResponderEliminar
  55. Podrias volver a subir el link por favor todos lo estamos necesitando

    ResponderEliminar
  56. Hola excelente video, ya estamos 2018 y es el mas completo que he visto. Por favor pasa el código es para un proyecto. Mi correo es edsonbamaca@gmail.com saludos.

    ResponderEliminar
  57. porfa pásame el juego pls... esta muy bien hecho y me gustaría tomarlo como modelo para un proyecto plss... mi correro es, davidjimbo1223@gmail.com

    ResponderEliminar
  58. Hola. lo mismo de lo anterior, si me pudieras pasar el código estaría muy agradecida. Mi correo es lkaroldaniela10@gmail.com

    ResponderEliminar
  59. Hola, no se puede descargar. Por favor ayúdame!...ramazotti901@hotmail.com

    ResponderEliminar
  60. Hola, me podrías compartir tu código por favor, Yo ya realice uno muy parecido pero tu táctica es muy productiva mi correo es kelly@outlook.com ó kjvalencia967@misena.edu.co
    Muchas Gracias

    ResponderEliminar
  61. muy bueno muchas felicidades
    sera que me podrias colaborar pasandome el codigo
    luis10felipe11@gmail.com

    ResponderEliminar
  62. hola me podrias pasar el códio porfa mi correo es: claudiayaribethganzolara@gmail.com

    ResponderEliminar
  63. Podrias enviar a mi correo please. zwilfredo0@gmail.com

    ResponderEliminar
  64. Hola, esta muy interesante tu proyecto, me podrias enviar el proyecto o codigo fuente por favor a jalirbasan@gmail.com

    ResponderEliminar