Laboratorio 4: "The Pong Game"
Post date: Feb 8, 2013 8:34:07 AM
El objetivo de este laboratorio es repasar algunas de las características del lenguaje de programación Python y aprender sobre librerias del lenguaje disponibles a través de CodeSkulptor. Para ello, el estudiante deberá modificar una versión del juego "Pong" en CodeSkulptor y entregar una versión "más interesante" de este juego.
"The Pong Game" es uno de los juegos clásicos de Atari. Puede revisar parte de su historia y también jugar en linea visitando http://www.ponggame.org/.
El taller se desarrollará en CodeSkulptor utilizando esta plantilla. Es importante que siga las convenciones e instrucciones allí expuestas.
Siguiendo la plantilla, identifique:
- Las constantes y variables globales que allí se encuentran definidas.
- La función
init()
; esta función se invoca cada vez que se inicia una partida del juego. - La función
draw(c)
; esta función se invoca aproximadamente 60 veces por segundo y su objetivo es actualizar el estado del juego y de la interfaz gráfica. La mayoría de cambios se harán en el cuerpo de esta función. - Las funciones
keydown(key)
ykeyup(key)
; estas funciones se encargan de registrar los eventos asociados al teclado. En la versión actual del juego las teclas 'w' y 's' controlan la paleta izquierda, mientras que las teclas 'arriba' y 'abajo' la paleta derecha.
Una vez familiarizados con el código de la plantilla, lleve a cabo las siguientes tareas sobre el código en la plantilla:
- Cambiar el color de la 'bola' de blanco a amarillo.
- Aumentar el tamaño del texto que muestra el marcador del juego a 28 unidades; actualmente el tamaño es 18.
- Cada vez que la 'bola' rebota en una pared o en una paleta, su velocidad aumenta un 10%; modifique esta proporción para que aumente 15% en lugar de 10%.
- Cambiar los controles de la paleta izquierda para que usen las teclas 'a' (arriba) y 'z' (abajo).
- Aumentar la velocidad de las paletas, al menos en un 100%; actualmente son lentas y esto hace el juego algo aburridor.
- Actualmente cada vez que se inicia un punto, la bola inicia hacia arriba y en contra de quien ganó el último punto. Cambie esto para que la bola aleatoreamente inicie hacie arriba o hacia abajo, pero manteniendo la regla de que se moverá en contra de quien ganó el último punto.
- (Bono) Las paletas no tienen ningún color de relleno. Modifique el código de tal manera que el borde de las paletas sea gris y su relleno blanco.
El laboratorio es individual y cada estudiante debe entregar:
- El código impreso del laboratorio
- El código debe ser ejecutable en CodeSkulptor
- El encabezado del archivo debe indicar, usando comentarios de Python,
- Su nombre en la primera línea
- Su código de estudiante en la segunda línea
- Suministrar, junto con el código impreso, un vínculo a su solución del laboratorio