Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Maurice_Lupin en 14 Mayo 2012, 23:14 pm



Título: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Maurice_Lupin 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:
(http://i1093.photobucket.com/albums/i439/maurice_lupin/cap11.png)

(http://i1093.photobucket.com/albums/i439/maurice_lupin/cap22.png)
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 (https://docs.google.com/file/d/0B_IPc-jU-prBYzNEOU9GM25pYm8/edit)


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: 1mpuls0 en 18 Mayo 2012, 09:16 am
Gracias!
Lo revisaré a ver qué tal.

Saludos.


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Maurice_Lupin en 25 Septiembre 2012, 04:06 am
Me parece un tema interesante, asi q lo revivo.

 ;D


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: bengy en 27 Septiembre 2012, 06:22 am
son muchas clases para descargar... sera k lo puedes subir lo k ya descargaste tu_? porfaaaa


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Maurice_Lupin en 28 Septiembre 2012, 16:33 pm
Hola bjpenn no pesa nada, sólo haz click Aquí (https://docs.google.com/file/d/0B_IPc-jU-prBYzNEOU9GM25pYm8/edit?pli=1) y en la parte superior izquierda esta: Archivo -> Descargar

Y listo se descargará el comprimido.

Saludos.


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: bengy en 29 Septiembre 2012, 03:35 am
gracias por todo lo revisare... ;D


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Proteus1989 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?


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Maurice_Lupin 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


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: Proteus1989 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.


Título: Re: [SRC] IA - Juego 3 en Raya con Poda Alfa-Beta
Publicado por: oriaj3 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.