(Extraida textualmente del enunciado de la práctica)
En esta práctica vamos a diseñar e implementar
una versión sencilla y reducida del billar, centrándonos
fundamentalmente el movimiento de las bolas por la mesa, el rebote de éstas
y la simulación de la entrada en los agujeros de la mesa. La mesa
de billar la vamos a representar como un rectángulo con agujeros
en sus cuatro esquinas y 6 bolas de color (distinto de blanco), una de
ellas negra, dispuestas en el centro del tablero formando un triángulo,
y una bola blanca situada en una posición inicial.
A la bola blanca le damos una cierta energía
que hará que se mueva por la mesa en la dirección indicada
(la dirección se indicará en radianes). El movimiento de
la bola blanca hace que choque con las bandas, y/o que entre en los agujeros,
y/o que choque con las otras bolas (lo cual hará que éstas
se muevan y posiblemente choquen con el resto de los elementos de la mesa).
Cuando una bola choca con otra bola hace que la mitad de la energía
que aquélla lleva pase a ésta y la dirección de ambas
cambia debido a la colisión. Si una bola entra en un agujero, deja
de estar visible en el tablero y ya no interviene más en la partida.
Si la bola negra entra en un agujero, la partida se termina. Si la bola
blanca entra en un agujero, se coloca en la posición inicial
La entrada de datos se realiza a través de la bola
blanca a la que hay que dar una dirección y una energía para
que se mueva por el tablero. La forma más sencilla es realizar esta
entrada a través de teclado, indicando numéricamente el valor
de estos parámetros. Otra forma es indicar numéricamente
el valor de la energía que se da a la bola, y con el ratón
indicar la dirección de ésta (esta forma se deja como opcional,
para aquellos alumnos que deseen mejorar la interfaz de su práctica).
Plan
de trabajo
Para realizar la práctica se seguirá el
siguiente método de trabajo:
- En primer lugar se leerá detenidamente el enunciado
de esta práctica
- A continuación hay que diseñar, utilizando
diseño orientado a objetos, los elementos necesarios para simular
el billar explicado en el apartado anterior, hacer uso de los mecanismos
de herencia siempre que sea posible. Se valorará un buen diseño.
- Implementar la unidad billar, donde se incluirán
las clases y métodos de éstas. Se pueden ir probando los
métodos colocando las llamadas a éstos en el programa partida.pas
ya que las unidades no se pueden ejecutar directamente. El código
estará debidamente comentado.
- Realizar las llamadas a los métodos de billar
e implementa los procedimientos/funciones extras necesarios para implementar
el programa pedido (debidamente comentados)
- Generar un ejecutable que se llamará partida.exe.
MATERIAL A ENTREGAR
Incluir en un disquete los dos ficheros billar.pas
y partida.pas (con este nombre) y el ejecutable.
El disquete estará libre de virus. No se corregirá ni
se tendrá en cuenta ninguna práctica cuyo disquete esté
infectado por un virus
Sacar un listado de los dos ficheros billar.pas
y partida.pas e incluirlos al final de una
memoria que contendrá:
- La portada con título "Práctica de
Lenguajes de Programación - Junio 1997" y los datos del alumno:
Nombre, Apellidos, dirección y teléfono
- Un texto en el que se indique para cada objeto qué
métodos se implementaron, justificando su existencia.