Juego pinball con C
Publicado por jesica pose (1 intervención) el 18/02/2014 12:07:14
Necesitamos implementar un juego de pinball en el que consideramos las lineas verticales horinzontales y diagonales como los obstaculos. la representacion de las lineas se hace con una matriz 50x50. en ella se usan 0 y 1. los 1 indican obstaculos y los 0 que no hay obstaculo.
A partir de esta matriz de obstáculos, vamos a simular la caída de 1 pelota o de una secuencia de 20 pelotas. Cada una de esas pelotas es soltada desde cualquier casilla de la primera fila e irá “bajando” hasta una casilla de la ultima fila.
Las reglas de movimiento de las pelotas:
 para cada paso la pelota se mueve una casilla
 si debajo de la pelota no hay un obstáculo, la pelota cae una casilla
 si en cambio sí hay un obstáculo, la pelota sigue su movimiento direccional
(izquierda o derecha) indicado inicialmente en dir, excepto cuando el
obstáculo es una línea diagonal, en cuyo caso ‘rebota’ desplazándose
primero una posición horizontal (de acuerdo con la dirección indicada por el
obstáculo) y después continua bajando, habiendo cambiado también su
dirección de impulso.
El programa deberá incluir un menú que permita hacer las siguientes acciones:
1) Visualizar el contenido de la tabla de obstáculos por pantalla.
2) Simular la caída de una pelota. En este caso el programa deberá pedir al
usuario una posición (entre el 0 y el 49) que represente la columna por la
que deberá caer la pelota y la dirección de disparo (‘L o ‘R’). Al final se
deberá visualizar la tabla de simulación de la caída, con un número
incremental indicando el orden de paso por las casillas (como las tablas
mostradas anteriormente en los ejemplos 1 y 2.
3) Simular la caída de 20 pelotas. En este caso el usuario tendrá una opción de
menú adicional, para poder elegir entre (a) utilizar el array predefinido
struct disparos disp[20] o (b) generar un conjunto de 20 disparos
aleatorios
4) Modificar esta tabla de obstáculos (mediante un nuevo submenú). En este
caso, el programa comprobará que la tabla modificada cumple
correctamente las restricciones indicadas en el enunciado. Si ésta fuera
correcta visualizará el nuevo contenido de obstáculos por pantalla. Si fuera
incorrecta, indicará por pantalla las posiciones conflictivas.
5) Salir/acabar del programa.
A partir de esta matriz de obstáculos, vamos a simular la caída de 1 pelota o de una secuencia de 20 pelotas. Cada una de esas pelotas es soltada desde cualquier casilla de la primera fila e irá “bajando” hasta una casilla de la ultima fila.
Las reglas de movimiento de las pelotas:
 para cada paso la pelota se mueve una casilla
 si debajo de la pelota no hay un obstáculo, la pelota cae una casilla
 si en cambio sí hay un obstáculo, la pelota sigue su movimiento direccional
(izquierda o derecha) indicado inicialmente en dir, excepto cuando el
obstáculo es una línea diagonal, en cuyo caso ‘rebota’ desplazándose
primero una posición horizontal (de acuerdo con la dirección indicada por el
obstáculo) y después continua bajando, habiendo cambiado también su
dirección de impulso.
El programa deberá incluir un menú que permita hacer las siguientes acciones:
1) Visualizar el contenido de la tabla de obstáculos por pantalla.
2) Simular la caída de una pelota. En este caso el programa deberá pedir al
usuario una posición (entre el 0 y el 49) que represente la columna por la
que deberá caer la pelota y la dirección de disparo (‘L o ‘R’). Al final se
deberá visualizar la tabla de simulación de la caída, con un número
incremental indicando el orden de paso por las casillas (como las tablas
mostradas anteriormente en los ejemplos 1 y 2.
3) Simular la caída de 20 pelotas. En este caso el usuario tendrá una opción de
menú adicional, para poder elegir entre (a) utilizar el array predefinido
struct disparos disp[20] o (b) generar un conjunto de 20 disparos
aleatorios
4) Modificar esta tabla de obstáculos (mediante un nuevo submenú). En este
caso, el programa comprobará que la tabla modificada cumple
correctamente las restricciones indicadas en el enunciado. Si ésta fuera
correcta visualizará el nuevo contenido de obstáculos por pantalla. Si fuera
incorrecta, indicará por pantalla las posiciones conflictivas.
5) Salir/acabar del programa.
Valora esta pregunta


0