Está en la página 1de 8

CFGS DESARROLLO DE APLICACIONES

MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 1 de 8

JUEGO HUNDIR LA FLOTA

El objetivo de la práctica es programar en Android un videojuego parecido al clásico juego de “Hundir la Flota”.
Los requisitos que deberá tener tu App serán los siguientes:
1. Debe contener un menú en la ActionBar con las siguientes opciones:
 Instrucciones (Opción de Menú): Sacará un Diálogo
con las instrucciones del juego.
 Comenzar juego (Opción de Menú): Comenzará un
nuevo juego, rellenando el tablero de barcos y
presentando la pantalla en blanco dispuesta para que el
jugador comience a hundir barcos.
 Configura el juego (Opción de Menú): Mostrará un
diálogo con RadioButton para poder seleccionar entre
varios niveles de dificultad (Principiante, Amateur,
Avanzado).
 Elije barco (Opción de Menú, con icono visible en la
ActionBar): Permitirá seleccionar el tipo de barco a
buscar a través de un diálogo con un Spinner que te
permita seleccionar el gráfico a utilizar. Se deberá
mostrar el icono seleccionado en la barra de menú

2. Los diálogos que lanzan los menús son los siguientes:


Cuadro de instrucciones Selección de barco Configura el juego
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 2 de 8

FUNCIONAMIENTO DEL JUEGO

El juego estará formado por un tablero, en el que cada celda corresponderá a un widget Button o ImageButton. Para
construir el tablero puedes utilizar un Layout de tipo GridView.
Existirán 3 tipos de barcos (cada barco tendrá asociado un icono):
 Pequeños. Estos barcos únicamente ocuparán una celda.
 Medianos. Ocupan dos celdas consecutivas (incluidas las celdas diagonales). Ejemplos:

X
X X
X X X

 Grandes. Formados por tres celdas consecutivas (incluidas las celdas diagonales). Ejemplos:

X X X X
X X
X X
X

La posición de cada uno de los barcos se generará de manera aleatoria.


CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 3 de 8

Por otro lado, el juego dispone de 3 niveles de dificultad con las siguientes características:

 Tablero de 5 filas x 5 columnas


 3 barcos pequeños
Principiante  2 barcos medianos
 1 barco grande
 Hasta 10 intentos permitidos
 Tablero de 8 filas x 8 columnas
 5 barcos pequeños
Amateur  3 barcos medianos
 2 barcos grandes.
 Hasta 20 intentos permitidos
 Tablero de 10 filas x 10 columnas
 7 barcos pequeños
Avanzado  5 barcos medianos
 3 barcos grandes.
 Hasta 30 intentos permitidos

El juego al iniciarse por defecto se configurará automáticamente con el nivel principiante, es decir se visualizará un
tablero (5 filas x 5 columnas) con 6 barcos escondidos (3 pequeños, 2 medianos y 1 grande) y 10 intentos
disponibles para el usuario. Cada vez que el usuario cambie el nivel del juego, la app generará automáticamente el
tablero y la posición de cada uno de los barcos de manera aleatoria y comenzará de nuevo el juego.
El usuario podrá realizar dos acciones:
 Click o pulsación corta sobre una celda. Descubrirá el contenido de dicha celda, diferenciando las
siguientes posibles situaciones:

1. En la celda seleccionada no hay ningún


barco, por tanto, se muestra el icono del
agua y se decrementará el número de
intentos en una unidad. Se informará al
usuario mediante un mensaje del número
de intentos que aún tiene disponible.
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 4 de 8

2. El usuario ha hecho clic sobre una celda


que esconde un barco pequeño. Se
mostrará un mensaje informativo
indicando el número de barcos pequeños
pendientes por derribar, además en la
celda seleccionada se visualizará el icono
del barco pequeño. En dicha situación NO
AGOTA intentos el usuario.

3. La celda seleccionada esconde un barco


mediano (recuerda que el barco mediano
ocupa 2 celdas) y es la primera celda
descubierta de dicho barco, la app
mostrará el icono asociado al barco
mediano y NO agotará intentos. Se
visualizará el mensaje de “Tocado”.
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 5 de 8

4. Por el contrario, si la celda esconde un


barco mediano y es la segunda celda de
dicho barco, el usuario pierde (ya que
para descubrir la segunda celda de un
barco mediano se utilizará la acción de
clic con pulsación larga). Se mostrará un
mensaje informativo y el juego no
responderá al hacer clic en el resto de
celdas (tendrá que comenzar una nueva
partida o cambiar el nivel de dificultad).

5. Si la celda elegida está detrás un barco


grande (recuerda que ocupa 3 celdas
consecutivas) y es la primera celda
descubierta de dicho barco, el juego
visualizará el icono asociado al barco
grande y NO decrementará el número de
intentos del usuario. Se mostrará el
mensaje de “Tocado”.
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 6 de 8

6. La celda seleccionada corresponde a un


barco grande y no es la primera celda
descubierta de dicho barco, el usuario
pierde y se mostrará un mensaje
indicando dicha situación y el juego no
responderá al hacer clic en el resto de
celdas (tendrá que comenzar una nueva
partida o cambiar el nivel de dificultad).

7. El usuario pierde si agota el número de


intentos disponibles, por lo que se deberá
notificar mediante un mensaje al usuario
y deberá reiniciar la partida o cambiar el
nivel de dificultad.
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 7 de 8

8. El usuario gana si descubre todos los


barcos. La aplicación notificará la victoria
con un mensaje, las celdas dejarán de
responder hasta que no se reinicie la
partida o cambie el nivel de dificultad.

 Clic o pulsación larga sobre una celda. El objetivo de la pulsación larga sobre una celda es, descubrir el
resto de celdas que componen un barco mediano o grande. Situaciones posibles que se pueden dar:
1. La celda seleccionada corresponde a una celda de agua. Se mostrará el icono asociado al agua en
dicha celda y se decrementará en una unidad el número de intentos del usuario.
2. La celda elegida corresponde a la segunda casilla de un barco mediano. Se mostrará un mensaje
informando de que se ha hundido un barco (este movimiento no consume intentos del usuario) y el
número de barcos medianos pendientes por hundir.
3. Si la celda cliqueada por el usuario esconde la segunda casilla de un barco grande, se visualizará el
texto “Tocado” y no decrementará el número de intentos del usuario. Por el contario, si es la tercera
y última casilla de un barco grande, se visualizará el mensaje de “hundido” y notificará el número
de barcos grandes pendientes por derribar.
4. Si el usuario hace clic largo sobre una celda que esconde un barco pequeño, o la primera celda de
un barco mediano o grande, el comportamiento será exactamente igual que si el usuario hubiera
hecho un clic corto.
CFGS DESARROLLO DE APLICACIONES
MULTIPLATAFORMA

Programación Multimedia y de Dispositivos Móviles


IES JUAN BOSCO
www.iesjuanbosco.es
UT2. Desarrollando aplicaciones para Android Página 8 de 8

Criterios de corrección:

- La aplicación contiene el menú de Opciones pedido en el enunciado. (1 punto)


- La aplicación cambiar correctamente el icono de los barcos dependiendo de la selección realizado por el
usuario. (1 punto)
- La aplicación genera el tablero correctamente dependiendo del nivel de dificultad (1 puntos)
- La aplicación calcula correctamente la posición aleatoria de cada uno de los barcos (3 puntos)
- La aplicación tiene programado el evento onLongClick en cada casilla del tablero y responde de forma
correcta ante las posibles posibilidades (2 puntos)
- La aplicación tiene programado el evento onClick en todas las casillas del tablero y responde de forma
correcta ante las posibilidades. (2 puntos)
Observaciones sobre la entrega.

- Deberás entregar un fichero comprimido .rar o .zip llamado:


TAREA1_XXXX _YYYY.zip o TAREA2_XXXX _YYYY.rar
Donde XXXX será tu nombre e YYYY tus apellidos
- Con el fin de evitar ficheros demasiados grandes, usa la opción File | Export to Zip File...