Pinball en pascal.
Tengo que hacer otro programa en Turbo Pascal:
Un videojuego de pinball tiene una bola que se mueve por una matriz de N por M casillas, numeradas
de 1.. N filas por 1.. M columnas. La matriz está formada por casillas en blanco (representada por una
carácter blanco, ' ') ¿Por las que se puede mover la pelota y casillas obstáculo (representada por una
carácter? ) En las que rebota la bola, los extremos de la matriz también hacen rebotar la bola.
El movimiento de la bola sólo se realiza según alguna de las 8 direcciones cardinales, N, ES, E, O,
NE, NO, SE, SO, manteniendo dicha dirección de movimiento hasta encontrar un obstáculo o el
borde de la matriz.
¿Cuándo el movimiento de la bola se ve interrumpido por un obstáculo (?) O el borde de la matriz,
ésta rebota aleatoriamente en cualquiera de las 8 direcciones cardinales indicadas anteriormente,
siempre y cuando pueda hacerlo.
Se pide implementar un programa que simule el movimiento de la bola en un pinball de 8 filas y 5
columnas. La bola sale aleatoriamente por la parte superior del pinball (la dirección que trae la bola
puede ser SE, SO, S).. El programa mostrará por pantalla todo el recorrido de la bola por la tabla.
El juego finaliza cuando la bola sale por una de las casillas centrales de la fila inferior. El usuario
puede seleccionar el número de obstáculos que se colocarán aleatoriamente.
Para calcular aleatoriamente una nueva dirección cardinal de movimiento en caso de encontrar un
obstáculo se calculará una dirección aleatoria correcta en la que se podrá continuar moviendo la
bola. Es importante que la situación refleje la dirección que trae la bola, para seguirla en caso de
que no haya rebote.
Funciones y procedimientos de Turbo Pascal: en esta práctica pueden utilizarse, entre otros, los
siguientes subprogramas estándar de Turbo Pascal: clrscr, gotoXY, delay, keyPressed y readKey,
todos ellos de la unidad CRT.
Como en el otro programa, me gustaría que me dieras unas pistas para saber por dónde empezar.
Un videojuego de pinball tiene una bola que se mueve por una matriz de N por M casillas, numeradas
de 1.. N filas por 1.. M columnas. La matriz está formada por casillas en blanco (representada por una
carácter blanco, ' ') ¿Por las que se puede mover la pelota y casillas obstáculo (representada por una
carácter? ) En las que rebota la bola, los extremos de la matriz también hacen rebotar la bola.
El movimiento de la bola sólo se realiza según alguna de las 8 direcciones cardinales, N, ES, E, O,
NE, NO, SE, SO, manteniendo dicha dirección de movimiento hasta encontrar un obstáculo o el
borde de la matriz.
¿Cuándo el movimiento de la bola se ve interrumpido por un obstáculo (?) O el borde de la matriz,
ésta rebota aleatoriamente en cualquiera de las 8 direcciones cardinales indicadas anteriormente,
siempre y cuando pueda hacerlo.
Se pide implementar un programa que simule el movimiento de la bola en un pinball de 8 filas y 5
columnas. La bola sale aleatoriamente por la parte superior del pinball (la dirección que trae la bola
puede ser SE, SO, S).. El programa mostrará por pantalla todo el recorrido de la bola por la tabla.
El juego finaliza cuando la bola sale por una de las casillas centrales de la fila inferior. El usuario
puede seleccionar el número de obstáculos que se colocarán aleatoriamente.
Para calcular aleatoriamente una nueva dirección cardinal de movimiento en caso de encontrar un
obstáculo se calculará una dirección aleatoria correcta en la que se podrá continuar moviendo la
bola. Es importante que la situación refleje la dirección que trae la bola, para seguirla en caso de
que no haya rebote.
Funciones y procedimientos de Turbo Pascal: en esta práctica pueden utilizarse, entre otros, los
siguientes subprogramas estándar de Turbo Pascal: clrscr, gotoXY, delay, keyPressed y readKey,
todos ellos de la unidad CRT.
Como en el otro programa, me gustaría que me dieras unas pistas para saber por dónde empezar.
1 Respuesta
Respuesta
1