Pong en el PIC de XGS (8 / 36 paso)

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.

Artículos Relacionados

Medidor de LYT de LED: LED microcontrolador PIC y código promedio móvil

Medidor de LYT de LED: LED microcontrolador PIC y código promedio móvil

Hola a todos, gracias por sacar mi primer Instructable. Han disfrutado de ver sus creaciones en los años y me encanta lo que ustedes están contribuyendo. Este proyecto es una vuelta al lado de una que vi recientemente aquí y tengo que dar un grito ha
Flotante de Color lápiz titular

Flotante de Color lápiz titular

11 de enero fue mi cumpleaños y quería dibujar unos a otros para celebrar el día con mi novio.Porque no tenemos herramientas para colorear aquí en dormitorio, compramos algunos lápices de colores.Tengo un soporte de lápiz bastante grande poner extra
Fundido un anillo de Metal!

Fundido un anillo de Metal!

Este Instructable es acabado un anillo utilizando el arte de la fundición cera perdida y fundición. En fundición a la cera perdida, un positivo de cera del producto final es tallado y encajado en el yeso. El yeso se calienta entonces para que la cera
Consola 16 bits retra!

Consola 16 bits retra!

incorporé el PIC XGS 16 bits en una "consola" mediante la construcción de un caso, fuente de alimentación y breadboards para complementos. Trabajo se inició el lunes, 26. Sacó los planos de diseño, comprados piezas y lo creó. He incluido fotos d
S-GDSP: Mag K'nex alimentado disco Shooter pistola instrucciones

S-GDSP: Mag K'nex alimentado disco Shooter pistola instrucciones

aquí está y esperemos que un regreso de mi primer * ejem * mierda * ejem * pistola (que fue quitado - era una vergüenza.). Dispara pequeñas ruedas con muy buena energía y podría ser modificado para llevar ruedas medianas. El mag tiene 8 ruedas, sin e
Cómo hacer que una Variable cabeza lente de Zoom de lente telescópica de cámaras

Cómo hacer que una Variable cabeza lente de Zoom de lente telescópica de cámaras

Para todos los fanáticos de lupa, precisión arte trabajadores, investigadores, biólogos, micro electrotechnicians, reparadores de joya, Borg y muchos más, mejoran la vida y alegría, construir un Variable Zoom cabeza lente.Tener ambas manos libres par
Permite programar un microprocesador PIC

Permite programar un microprocesador PIC

OK ¿cómo difícil programar un microprocesador PIC se puede?Bueno depende, algunos son más difíciles que otras por varias razones, el lenguaje de programación, el tipo de microprocesador, la facilidad de uso de lo software de edición y lo más importan
Naranja, higo y salsa picante de salvia

Naranja, higo y salsa picante de salvia

en un cálido San Francisco el domingo decidimos era necesario conseguir algunos de nuestro bonito verano tardío frutas enlatadas para el otoño que viene. El chutney con que terminó es dulce y picante, con un agradable toque de sage, que es perfecto c
Tacos de pescado cítrico picante (tablón de cedro)

Tacos de pescado cítrico picante (tablón de cedro)

crear algunos tacos de pescado delicioso con un tablón de cedro en la parrilla.Paso 1: ingredientes Pescado ingredientes1 lb de Tilapia2 naranjas grandesralladura de naranjaFrotación de ChileSal kosher o sal marinaTablones de cedro (pendiente en dond
Maltratadas de crepe dulce y picante jalapeño Poppers

Maltratadas de crepe dulce y picante jalapeño Poppers

probar estos deliciosos Brunch estilo Poppers! Alimenta tu lado salvaje, parte dulce, una parte picante caliente. No sólo saben delicioso, pero también puede poner esa especia detrás en su brunch los domingos por la mañana.Paso 1: Crepes de suero de
Pizza de berenjena picante casera

Pizza de berenjena picante casera

Como el verano está a punto de su transición en los días más fríos del otoño, es el mejor momento para hacer algo un poco picante con sabores y vegetales estacionales. Este es uno de mis platos favoritos a hacer un frío por la tarde después de un via
Se arrastra (enredaderas de malvavisco picante)

Se arrastra (enredaderas de malvavisco picante)

justo a tiempo para ser tarde para la semana Santa es Creeps, el tratar de marshmallow con un bang!Como muchos de ustedes probablemente saben eran parte de la línea de productos 2013 abril tontos de ThinkGeek pero esto significa que, al menos en el m
Salsa de Mango picante con gambas plancha

Salsa de Mango picante con gambas plancha

¿Ha tenido camarones con mango antes? ¿Se trata de hacer una salsa picante de mango antes de? ¿Te gusta la comida picante? Si es así, esta receta es imprescindible probar para usted!Es un plato moderno con algunas influencias tailandesas, la dulzura
Programación de microcontroladores PIC

Programación de microcontroladores PIC

microcontroladores PIC están una herramienta muy útil y versátil para su uso en muchos proyectos electrónicos. Son muy baratas y fáciles de encontrar. También son muy potentes y muchos son capaces de velocidades de hasta 64 MIPS utilizando el bloque