elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta  (Leído 12,557 veces)
Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
[SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« en: 14 Mayo 2012, 23:14 pm »

Encontre hace tiempo el juego del 3 en raya o Gato implementado con el algoritmo MiniMAx.

Aqui sus créditos del autor del Gato con Minimax
 * Autor: Francisco I. Leyva
 * Página web: http://www.panchosoft.com

Indagando con google logré implementar la Poda Alfa-Beta a este juego, y
la opción de cambiar la apariencia con LookAndFeel dejo los créditos
del autor inicial por supuesto.

Sobre Poda Alfa-Beta hay mucho material en la web, pero no muchos ejemplos concretos dejo el proyecto completo =).

Capturas:



Código
  1.        // Poda Alfa-Beta con profundidad
  2.        private Movement MiniMaxAlphaBetaDepth(Board board,int player,int depth,int alpha,int beta)
  3.            { if (board.GameEnded() || depth==6)
  4.                { Movement mov = new Movement();
  5.                  //mov.Value = board.Winner();
  6.                  mov.Value = Utilidad(board.iTablero);                  
  7.                  return mov;
  8.                }
  9.              else
  10.                { Vector successors = board.GetAllowedMovements(true);
  11.                  Movement best = null;
  12.                  for ( Iterator ite = successors.iterator(); ite.hasNext(); )
  13.                    { int successor = (Integer)(ite.next());
  14.                      Board successorBoard = (Board)board.Clone();
  15.                      successorBoard.ApplyMovement(successor);                      
  16.                      Movement tmp = MiniMaxAlphaBetaDepth(successorBoard, -player, depth+1, alpha, beta);
  17.  
  18.                      if (best == null || (player == -1 && tmp.Value < best.Value) ||
  19.                                          (player == 1 && tmp.Value > best.Value))                          
  20.                         { tmp.Position = successor;
  21.                           best = tmp;                          
  22.                         }                      
  23.                      if (player == -1 && best.Value < beta)
  24.                         { beta = best.Value; }
  25.                      if (player == 1 && best.Value > alpha) alpha = best.Value;
  26.                      if (alpha > beta) return best;                    
  27.                    }
  28.                  return best;
  29.                }
  30.            }  
  31.  
  32.  

Proyecto en google docs


« Última modificación: 28 Septiembre 2012, 16:34 pm por Maurice_Lupin » En línea

Un error se comete al equivocarse.
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #1 en: 18 Mayo 2012, 09:16 am »

Gracias!
Lo revisaré a ver qué tal.

Saludos.


En línea

abc
Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #2 en: 25 Septiembre 2012, 04:06 am »

Me parece un tema interesante, asi q lo revivo.

 ;D
En línea

Un error se comete al equivocarse.
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #3 en: 27 Septiembre 2012, 06:22 am »

son muchas clases para descargar... sera k lo puedes subir lo k ya descargaste tu_? porfaaaa
En línea

Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #4 en: 28 Septiembre 2012, 16:33 pm »

Hola bjpenn no pesa nada, sólo haz click Aquí y en la parte superior izquierda esta: Archivo -> Descargar

Y listo se descargará el comprimido.

Saludos.
En línea

Un error se comete al equivocarse.
bengy


Desconectado Desconectado

Mensajes: 501


mis virtudes y defectos son inseparables


Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #5 en: 29 Septiembre 2012, 03:35 am »

gracias por todo lo revisare... ;D
En línea

Proteus1989

Desconectado Desconectado

Mensajes: 184



Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #6 en: 4 Octubre 2012, 22:01 pm »

He echado un ojo al proyecto pero depende de una librería gráfica que no logro encontrar por internet.
Sabéis algo?
En línea

Maurice_Lupin


Desconectado Desconectado

Mensajes: 356

GPS


Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #7 en: 5 Octubre 2012, 00:17 am »

He echado un ojo al proyecto pero depende de una librería gráfica que no logro encontrar por internet.
Sabéis algo?

El proyecto es de Netbeans, requiere tenerlo bien instalado y el jdk obviamente.
Aqui el link de Netbeans incluido el jdk: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7-netbeans-download-432126.html
En línea

Un error se comete al equivocarse.
Proteus1989

Desconectado Desconectado

Mensajes: 184



Ver Perfil WWW
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #8 en: 5 Octubre 2012, 11:31 am »

Amiiiiiiiiiigo. Yo estaba abriendolo desde eclipse y no encontraba librerías que supongo ya vendrán por defecto solo en el Netbean.
Gracias por la aclaración, voy a testearlo un rato porque este año doy IA y tengo que hacer un 4 en linea para la carrera y este puede ser un buen apoyo en mi tarea.
En línea

oriaj3

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
« Respuesta #9 en: 23 Mayo 2013, 18:05 pm »

Buenas alguien me puede ayudar con la explicación de todas las funciones, necesito portar la poda alfa beta a un proyecto propio y no entiendo un par de cosillas del código posteado.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
juego tres en raya
Java
bengy 2 14,655 Último mensaje 31 Octubre 2011, 08:17 am
por Debci
Juego de Tres en raya C#
.NET (C#, VB.NET, ASP)
AlexPro 4 16,293 Último mensaje 4 Julio 2012, 17:31 pm
por AlexPro
Soy nueva ¿Como se si el programa que instale es alfa o beta?
Dudas Generales
tsitsi 3 2,179 Último mensaje 21 Enero 2014, 00:45 am
por Eleкtro
Juego 4 en raya
Programación C/C++
alvarogt91 4 8,838 Último mensaje 6 Junio 2014, 13:35 pm
por alvarogt91
Ramificación y poda BranchAndBound
Java
erikcdlm 0 2,453 Último mensaje 26 Noviembre 2014, 00:59 am
por erikcdlm
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines