Lo fundamental es que el autor (desafortunadamente no recuerdo la página donde lo conseguí, ni el nombre del autor), ha dejado el código fuente para que podamos estudiarlo.
Para la "inteligencia de la máquina" dice el autor en unos de los comentarios:
Negamax con poda alfabeta:. Aqui se incluye solo el algoritmo a partir del segundo nivel, para asi ocultar su funcionamiento interno a la clase externa y no tener ifs por todos lados debido a que, mientras normalmente el negamax debe devolver la maxima puntuacion obtenida, el nodo raiz debe devolver el numero del nodo que le da la maxima puntuacion.
A cada nodo que genera lo primero que comprueba es si corresponde a un final de la partida, devolviendo el valor que corresponda (-100.000 en caso de que gane el jugador, 100.000 en caso que gane la maquina y 0 en caso de empate). Para averiguarlo llama al metodo ExaminarJuego.
A cada nodo que genera lo primero que comprueba es si corresponde a un final de la partida, devolviendo el valor que corresponda (-100.000 en caso de que gane el jugador, 100.000 en caso que gane la maquina y 0 en caso de empate). Para averiguarlo llama al metodo ExaminarJuego.
Código fuente:codigo/cuatro_en_raya_3
Nota:
Veras durante 10 segundos un anuncio y luego tienes que pulsar en la esquina superior derecha para acceder a la descarga.
Para compilarlo:
$javac CuatroEnRaya.java
Y ejecutarlo:
$ appletviewer CuatroEnRaya.java
Saludos