Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Alex7227 en Febrero 18, 2016, 10:08:27 AM

Título: Ayuda con IA
Publicado por: Alex7227 en Febrero 18, 2016, 10:08:27 AM
Hola a todosEstoy 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.
Título: Ayuda con IA
Publicado por: Arthure en Febrero 18, 2016, 11:04:16 AM
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 com***dora. 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 com***dora 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 movimientosAhora 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 xDDDQuiere 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