Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



sábado, 1 de diciembre de 2012

Inteligencia Artifical: Prever el movimiento del contrario


Inteligencia Artificial:
Prever el movimiento del contrario
Juego de Karate


Este es un ejemplo que encontré en el libro IA FOR GAMEDEVOLOPERS, (en la página 301), 


que lo podeis encontrar aqui.


Trata del siguiente problema:
En un juego de lucha, tenemos varios movimientos o golpes (por ejemplo: puñetazo, patada baja, patada alta, etc..) y queremos hacer un algoritmo que "prevea" el movimiento del jugador humano, así nuestra inteligencia artificial, podrá tomar las medidas oportunas, por ejemplo movimientos de defensa (paso atrás) o de contraataque.


La primera forma de hacerlo que se me ocurre,  sería usar probabilidades. Si tuviésemos 3 opciones, las probabilidades que salgan sería de 1/3 (33%)


Pero se puede aplicar un método para que mientras se juegue, el programa aprenda que tipos de "patrones" de movimiento usa el jugador humano y así poder tomar las decisiones oportunas para rechazar el ataque.


El ejemplo se centra en el estudio de las jugadas y predecir cual será el próximo movimiento del jugador humano.


¿como lo hace?

Usando reglas del tipo: If  A y B then C

Se crea una tabla de reglas con las combinaciones de dos movimientos (antecedentes A y B) y el tercero como resultado (consecuente C).

El jugador humano va realizando movimientos, el programa compara lo realizado con las reglas que tiene almacenada, y las que se cumple, las pondera (peso) de manera positiva. De esta manera "aprende" de los patrones de movimientos que hace el jugador humano y cuales son los que usa, según la ponderación o peso de la regla, puede prever el próximo movimiento del jugador humano.


Aqui podeis ver una captura del programa:



Descarga del código fuente en gambas: descarga tar.gz