Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (java) [Seleccionar]

       // Poda Alfa-Beta con profundidad
       private Movement MiniMaxAlphaBetaDepth(Board board,int player,int depth,int alpha,int beta)
           { if (board.GameEnded() || depth==6)
               { Movement mov = new Movement();
                 //mov.Value = board.Winner();
                 mov.Value = Utilidad(board.iTablero);                  
                 return mov;
               }
             else
               { Vector successors = board.GetAllowedMovements(true);
                 Movement best = null;
                 for ( Iterator ite = successors.iterator(); ite.hasNext(); )
                   { int successor = (Integer)(ite.next());
                     Board successorBoard = (Board)board.Clone();
                     successorBoard.ApplyMovement(successor);                      
                     Movement tmp = MiniMaxAlphaBetaDepth(successorBoard, -player, depth+1, alpha, beta);
                     
                     if (best == null || (player == -1 && tmp.Value < best.Value) ||
                                         (player == 1 && tmp.Value > best.Value))                          
                        { tmp.Position = successor;
                          best = tmp;                          
                        }                      
                     if (player == -1 && best.Value < beta)
                        { beta = best.Value; }
                     if (player == 1 && best.Value > alpha) alpha = best.Value;
                     if (alpha > beta) return best;                    
                   }
                 return best;
               }
           }  



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: .rn3w. 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: .rn3w. 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
Cita de: 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?

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.