Pong es uno de los primeros videojuegos de arcade y el primero deportivo de la historia. Es un juego de tenis de mesa con gráficos bidimensionales, y aunque otros como Computer Space llegaron antes que él, Pong fue uno de los primeros que llegó a ser popular entre las masas.
Allan Alcorn creó Pong como un ejercicio de entrenamiento que le asignó el cofundador de Atari Nolan Bushnell. Bushnell basó la idea en un juego electrónico de ping-pong incluido en la Magnavox Odyssey, por lo que más tarde sus creadores interpusieron una demanda contra Atari. Sorprendido por la calidad de la obra de Alcorn, Bushnell decidió fabricar el juego en 1972.
Este es el aspecto del videojuego
Navegando por la red nos hemos encontrado con esta versión del juego creada por Dean Hystad para nuestros LEGO MINDSTORMS EV3, Pong EV3. En esta versión podremos jugar contra una pared, en vez de contra un contrincante automático controlado por la cpu, como si de un frontón se tratase. Para controlar la pala, conectaremos un motor L en el puerto C de nuestro robot, y al hacerlo girar, la pala se moverá arriba y abajo.
Este es el programa completo
Como se puede comprobar, y es habitual en los programas largos, está dividido en diferentes bloques personalizados MyBlock.
- Bloque Start :
Prepara para comenzar un nuevo juego, está dividido en tres bloques MyBlock : Score, Paddle y Ball
- Bloque Score :
Lleva el registro de la puntuación y la puntuación más alta, aquí tenéis el interior del bloque, y como se puede ver está compuesto de 4 modos :
1. “Add”
Aumenta la puntuación en 1 punto cada vez que es golpeada por la pala. Actualiza la visualización y la puntuación más alta.
2. “Reset”
Este modo es el encargado de restablecer la puntuación a cero cuando acaba la partida.
3. “Display”
Refleja en la pantalla la puntuación.
4. “HighScore”
Refleja en la pantalla la puntuación más alta.
- Bloque Paddle :
Es el encargado de mover la pala, Aquí tenéis el interior del bloque, y como se puede ver está compuesto de 3 modos :
1. “Move”
Este modo es el encargado de mover la pala, según cuanto gire el motor y para que sentido gire, la pala se moverá arriba o abajo. Los 20 píxeles inferiores de la pantalla son para la puntuación y como la paleta mide 20 píxeles de alto, y la pantalla tiene 127 píxeles de alto, el rango de movimiento de la paleta es de 0.87 píxeles.
2. “Reset”
Este modo vuelve a poner la paleta en su posición inicial cuando acaba la partida.
3. “Get”
Este es el caso por defecto del switch.
- Bloque Ball :
Mantiene un registro de la posición y la velocidad de la bola y calcula sus movimientos. Aquí tenéis el interior del bloque, y como se puede ver está compuesto de 7 modos :
1. “Set”
Este modo dibuja la pelota en la nueva ubicación de entrada X Y. Devuelve la ubicación de la nueva pelota.
2. “Reset”
Ajusta al azar la posición y la velocidad de la bola para un nuevo juego. Devuelve la posición inicial.
3. “Move”
Devuelve la posición proyectada para la pelota.
4. “Get”
Devuelve la posición actual de la pelota
5. “GetVel”
Devuelve la velocidad de la pelota
6. “SetVel”
Establece la velocidad de la pelota y su retorno.
7. “SpeedUp”
Aumenta la velocidad de la pelota.
- Bloque Strike :
Determina si la pala golpeó la bola o si la pelota salió fuera del area de juego.
- Bloque BounceXY :
Controla el rebote de la pelota en las paredes o la pala. Cuando la pelota golpea una pared o la pala, la velocidad y el movimiento retroceden en la dirección perpendicular al golpe.
La pelota tiene 6 píxeles de diámetro y la pala mide 2 píxeles. Como la pantalla tiene 177 píxeles de ancho por 127 píxeles de alto, los 20 píxeles inferiores se utilizan para mostrar la puntuación y el área de juego es :
X 8..171, Y 6..101
Podéis ver el programa corriendo en el EV3 en esta imagen
Aquí os dejamos el programa por si os animais a problarlo
Esperamos que os haya gustado el post y si lleváis a cabo el programa o simplemente jugáis una partidita, os animamos a que nos lo comentéis por nuestras redes sociales.
¡A DISFRUTAR!