Paso 28: AI pala Demo - aplicación de AI
Ahora para la parte interesante: el algoritmo de AI. El enfoque obvio que el punto medio de la paleta siempre siga la bola ofrece un oponente extremadamente brutal y pocas posibilidades para el jugador anotar. Un algoritmo más indulgente sigue la bola si es en el correcto estado y más allá de una cierta sección de la pantalla. Puesto que la paleta controlada por AI es en el lado derecho de la pantalla, la bola debe estar en un estado de derecho se mueve por la colisión que se produzca. Cuando elegir una ubicación x para iniciar el control de la AI, el más cercano la opción 0, más difícil la AI, como la IA tendrá más tiempo para ponerse a la coordenada actual y de la bola. Un tercio de la pantalla como una zona muerta proporciona un oponente difícil.Así, si la bola está en un estado de derecho se mueve y el punto medio de la pantalla, debe tratar de AI para que coincida con el punto medio de la paleta con el punto medio de la bola para maximizar la posibilidad de una colisión. Por lo tanto, si la bola está sobre el punto medio de la paleta, la paleta debe moverse hacia arriba, o disminuir la coordenada y de la ubicación. Asimismo, si la bola está por debajo del punto medio de la paleta, la paleta debe mover hacia abajo o incrementar la coordenada y de la ubicación.
Una última consideración: paleta de la AI no debe rodar fuera de la pantalla. Esto puede ocurrir si la paleta es límite tangente a la parte superior de la pantalla y la bola sigue moviendo hacia arriba. Otro caso existe, simétricamente, si la bola se está moviendo hacia abajo. La solución más fácil es verificar la ubicación de la paleta antes de mover la paleta en la dirección respectiva. Una preocupación similar se presenta para la entrada del jugador en la siguiente fase. El algoritmo completo de AI se verá algo como:
if (state_x == BALL_RIGHT && ball_x >= SCREEN_WIDTH/3) if (ball_y+BALL/2 > p2_y+PADDLE_HEIGHT/2) { if (p2_y < SCREEN_HEIGHT-PADDLE_HEIGHT) p2_y++; } else if (p2_y > 0) p2_y--;