Programación Orientada a Objetos 1º de Ingeniería de Telecomunicación Curso 2004-2005

Anuncio
Programación Orientada a Objetos
1º de Ingeniería de Telecomunicación
Universidad Autónoma de Madrid
Curso 2004-2005
Segunda Práctica:
(80%) El propósito de esta práctica es el implementar el juego de Batalla naval pero de manera
simplificada, al que se denominaremos “Cazasubmarinos”.
El juego se desarrolla en una rejilla de N x N donde existen dos jugadores, (el ordenador y el
usuario). El ordenador que es nuestro enemigo, ubica de manera aleatoria su flota (un grupo de
submarinos) horizontal o verticalmente en cualquier parte de la rejilla.
El ordenador no tiene armas y por ello no podrá disparar contra el usuario. El juego se
simplifica haciendo que solo el usuario pueda disparar contra su enemigo cuantas veces sea
necesario para destruir todos los submarinos.
Para hacer las cosas más sencillas, imagine que el tablero es de forma toroidal (cerrado
circularmente en sus dos direcciones).
Adicionalmente podrán compartir una o mas posiciones un submarino con otro (superposición)
Para iniciar el juego, se deben dar un conjunto de opciones (menú) al usuario para interactuar
con el programa:
1. Configuración de la partida
a. Dimensión de la rejilla,
b. Número de submarinos
c. longitud máxima de los navíos
2. Iniciar partida
a. Disparar (coordenadas x,y)

Informar si se hecho blanco a uno o varios navíos

Informar si se ha hundido a uno o varios navíos
 Informar cuantos navíos quedan por derribar
b. Terminar partida
3. Salir
Se pide:
1. Escribir el juego descrito anteriormente en código Java donde se utilice en su
implementación las siguientes cuatro clases así:

Clase Rejilla

Clase Casillas

Clase Submarino

Clase Cazasubmarinos, el cual contendrá el método main()
(10%) Modificar el programa anterior para que se exista un proceso que puntué al jugador de
acuerdo al número de aciertos en el menor número de intentos
(10%) Modificar el programa anterior para que se exista un proceso para almacenar y
recuperar los mejores puntajes con el nombre del jugador y sean mostrados al iniciar la
partida.
AYUDA:
1. Utilizar la clase “ArrayList”, en lugar de los clásicos “arrays”, para almacenar
colecciones de objetos:
2. Utilizar del paquete java.lang.Math el método random para generar un número
aleatorio.
*************************************************************************************************************
Las calificaciones se realizarán de acuerdo a los porcentajes especificados en cada apartado.
*************************************************************************************************************
Para cada problema se deberán construir los ficheros “.java” correspondientes y un fichero
“.bat” de compilación y ejecución. Todos estos ficheros, se deberán introducir en un fichero
comprimido
zip.
La
entrega
se
realizará
en
http://www.ii.uam.es/esp/alumnos/practicas/envio_practicas.php3 (asignatura POO de 1º de
Telecomunicación) antes de las 20:00 horas día 21 de abril de 2005. El nombre del fichero zip
deberá comenzar por p1- seguido de los dos apellidos de cada uno de los miembros del grupo
según el orden alfabético del primer apellido, por ejemplo:
p1-lopez-sanchez&martinez-fernandez.zip
Cada grupo deberá entregar una memoria de la práctica incluyendo el diseño del gráfico de
diagrama de clases - UML . Las características que debe tener la memoria están publicadas en
la página Web. No se aceptarán como entregada la práctica sin su respectivo informe o su
respectivo código.
Los alumnos deberán mostrar durante la primera sesión de la práctica siguiente el
funcionamiento de los programas (descomprimiendo el fichero zip enviado y ejecutando los
correspondientes ficheros bat en el explorador de Windows, es decir haciendo “doble clic”
sobre los ficheros bat).
Las notas serán publicadas durante las próximas dos semanas después de la entrega de la
práctica por parte de los alumnos.
Descargar