Paso 8: Construcciones juego - juego de lógica - Inteligencia Artificial (AI)
En este punto, toda la lógica hasta ahora es posible en un juego completo de dos jugadores. Sin embargo, sería bueno que permiten un modo de un jugador (y ser un interesante ejercicio de programación). La inteligencia artificial no necesita ser infalible pero actuar lo suficientemente inteligente como para dar al jugador un reto mantenerse entretenido. El problema actual se basa en la definición de actuar inteligentemente.Refiriéndose a los definidos anteriormente, que (bx, by) ser la bola de la ubicación actual y (px, py) denotan la ubicación de la paleta del jugador de equipo. El código de detección de colisión encargará del cómputo de las colisiones, pero la IA necesita para mover la paleta de tal manera que la pala va a generar un choque con la bola. Por lo tanto, preocuparse por bx y px sería superflua. Debido a la simplicidad de Pong, hay pocos casos para analizar.
Supongamos que py > by. ¿Qué significa esto en la actualidad con respecto a la pantalla de juego? La esquina superior izquierda de la paleta es inferior a la esquina superior izquierda de la bola en la pantalla. El siguiente problema es definir la estrategia óptima para el jugador de equipo. Por lo general, la mejor estrategia para el jugador de equipo es análoga a la estrategia de un jugador humano. La mejor manera de cerrar la distancia vertical entre la pelota y la paleta es mover la paleta, o disminuir la py.
Lógicamente, hay una caja izquierda para manejar: cuando py < = by. En la pantalla de juego, este caso va a pasar si y sólo si la ubicación de la paleta es superior o nivel con ubicación de la bola. Estos dos casos para el AI mutuamente reflejan no sólo las cualidades geométricas, sino también su solución. Como jugador, la estrategia óptima en esta situación es mover la paleta hacia abajo o incrementar py.
El algoritmo más intuitivo ahora puede ser descrito. Con respecto a las coordenadas y de la ubicación, si el balón está por encima de la paleta, después la paleta se mueve hacia arriba. El inverso sostiene así. ¿Pero esta es la estrategia óptima? Algo oculto se encuentra basado en definiciones arbitrarias creadas anteriores para permitir la fácil algoritmos gráficos. Todos los lugares se definieron para ser la esquina superior izquierda del objeto. Por lo tanto, el algoritmo actual hace el intento de alinear las esquinas superiores de la izquierda de la paleta y la pelota. No necesariamente una mala estrategia, pero podría no dar al jugador un aspecto de la inteligencia.
La lógica es el sonido, pero los puntos de comparación no son la mejor opción. Cualquier jugador humano implícitamente intenta maximizar la cantidad de puntos que chocan entre la pelota y paleta. La mejor ubicación en la paleta de la bola al chocar con es realmente bastante intuitiva: el centro. Dejando la cantidad máxima de espacio de paleta en ambos lados de una bola de colisión permite una tolerancia de error muy buena cuando se reproduce. Para ajustar el algoritmo, simplemente comparar los puntos medios de la pelota y la paleta para dar a la AI la aparición de un jugador más inteligente. Dejando h ser la altura de la paleta, entonces (px, py + h/2) cede el centro de la pala. Este cálculo funciona de forma similar a la bola.