Jump to content

Recommended Posts

Hola a todos

Estoy haciendo un juego de ajedrez para Android y me gustaría saber como puedo crear y configurar una Inteligencia Artificial para que simule el comportamiento del rival.

Un saludo y gracias de antemano.

Share this post


Link to post
Share on other sites

La Inteligencia Artificial que quieres es de las mas sencilla y al mismo tiempo de las mas complicadas que hay, muchas veces se pone como ejemplo de IA por esta misma razon. Es de las mas sencillas porque tienes la mecanica bien establecida, y de las mas complicadas por la enorme cantidad de calculos necesarios (millones para una partida entera de ajedrez) ... eso teniendo lo mas basico pero que luego puedes mejorar tanto como quieras, aunque tambien significa complicar mas, teniendo en cuenta distintos factores del juego como es obertura, ataque, defensa, valor de las piezas, etc. (el juego de la ajedrez no deja de ser un juego de guerra). Dicho eso, la Inteligencia Artificial mas basica para un juego de ajedrez consiste en :

Calcular todos los movimientos posibles de cada pieza, dandole un valor dependiendo de si podras matar alguna pieza del rival o si tras realizar un cierto movimiento el oponente podra matarte esa pieza, y despues escoger entre todos la opcion que tenga un valor mas favorable. Con esto ya tendrias una IA de ajedrez "tonta", que para hacer mas inteligente deberias tambien calcular todos los movimientos posibles del rival y para cada uno de sus posibles movimientos volver a calcular las posibilidades de la computadora. Cuantos mas saltos (intentar predecir la situacion en futuros movimientos, que es de lo que se trata este juego), mas inteligente sera la IA pero tambien muchos mas calculos.

Suponiendo que la ajedrez solo tuviera 10 piezas, que cada pieza solo tuviera 2 posibles movimientos, y que tanto el jugador como la computadora tuvieran todas las piezas "vivas" ... el numero de calculos serian el siguiente (solo para realizar un movimiento) :

(10 * 2) * (10 * 2) = 20 * 20 = 400 --> para el sistema mas basico, sin predecir futuras situaciones.

((10 * 2) * (10 * 2)) ^ 2 = 400 ^ 2 = 160.000 --> intentando predecir la situacion en el movimiento siguiente.

((10 * 2) * (10 * 2)) ^ 3 = 400 ^ 3 = 64.000.000 --> intentando predecir la situacion tras dos movimientos

Ahora ten en cuenta que el juego de ajedrez tiene mas de 10 piezas y que cada pieza tiene mas de 2 movimientos ... algunas piezas muchos mas; por ejemplo el alfil si no recuerdo mal tiene hasta 12 posibles movimientos. Asi que imaginate la cantidad de calculos xDDD

Quiere un consejo ? empieza por hacer un juego de las damas, es mucho mas sencillo en calculos aunque la base es identica (ademas del tablero) por lo que luego tendras mucho trabajo adelantado, ademas de que te sera mas facil de comprender. Suerte

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...