UNIVERSIDAD CARLOS III DE MADRID
Juego Hundir La Flota
Programación de Ordenadores
Grado en Estadística y Empresa
12/09/2018
Práctica
2
TABLA DE CONTENIDOS
Especificación del problema.......................................................................................................... 3
Reglas del juego ............................................................................................................................ 5
Opción 1: Entrada por fichero...................................................................................................... 5
Opción 2: Entrada por teclado ...................................................................................................... 5
Opción 3: Estadísticas.................................................................................................................... 6
Opción 4: Abandonar el juego....................................................................................................... 6
Codificación del Programa ............................................................................................................ 6
Documento de la Práctica ............................................................................................................. 6
Normas de entrega........................................................................................................................ 7
Fecha de Entrega........................................................................................................................... 7
Práctica
3
Especificación del problema
El juego “Hundir la Flota” se desarrolla sobre una matriz de 10x10 casillas. La flota
consta de:
1 barco de 5 casillas.
2 barcos de 4 casillas.
2 barcos de 3 casillas.
3 barcos de 2 casillas.
4 barcos de 1 casilla.
Los barcos sólo se pueden colocar en vertical u horizontal (no en diagonal), y no
pueden tocarse (ni horizontal, vertical ni diagonalmente), pero sí pueden tocar los
bordes del tablero.
Se desea construir un programa que permita jugar a dos usuarios; el programa deberá
permitir:
1.- Mostrar un menú inicial que inicie el juego y permita al usuario elegir entre:
a) “1”: Opción 1: Jugar 1 usuario, leyendo la posición inicial de la flota de
un fichero externo con el formato que se indica más adelante.
b) “2”: Opción 2: Jugar 2 usuarios, cada usuario elige las posiciones de su
flota por teclado, que será contra la que va a jugar el otro usuario.
c) “3”: Opción 3: Estadísticas
d) “4”: Opción 4: Abandonar el Juego.
2.-Una vez elegida la opción 1 y opción 2, comienza el juego, en el que el usuario
dispara sucesivamente a posiciones hasta conseguir hundir la flota completa, o bien se
rinde, en cuyo caso el programa muestra la posición que tenía la flota y vuelve al menú
principal.
3.-En cada tirada de las opciones 1 y 2, el programa debe:
Sacar un mensaje que indique si la tirada es: “AGUA” en el caso que no haya
dado a ningún barco; “TOCADO” si ha dado a un barco pero todavía no está
hundido; “HUNDIDO” si en la tirada ha dado a un barco y lo ha hundido.
Práctica
Mostrar el tablero en el estado actual:
o el carácter “b” si no hay barco en esa posición.
o el carácter “x” si en esa posición hay un barco.
o asteriscos “*” en las posiciones que ocupa un barco hundido.
o el carácter ”H” en la posición en la que se ha “TOCADO” a un barco pero
no lo ha hundido.
o Ejemplo de cómo se debe mostrar el tablero al usuario:
Cuando todos los barcos se hayan hundido:
Que muestre el mensaje: “FLOTA HUNDIDA”
Mostrar el tablero del usuario/s de la partida.
Mostrar una estadística del juego actual:
Número Total de Tiradas.
Número de Aciertos.
Número de Fallos.
Porcentaje de Aciertos.
Porcentaje de Fallos.
o Grabar la estadística para tener un histórico de las partidas
o Grabar en un fichero llamado “Salida.xls” el tablero final.
3. En las partidas donde jueguen dos usuarios, un usuario seguirá tirando hasta que la
posición a la que tire sea “Agua”, que dará paso al segundo usuario.
b b x b b b x x b b
x b b b x b b b b x
b b b b b b b b b b
b b b b b x x x x b
b b b x b b b b b b
x b b x b b x x x x
x b b b b b b b b b
x b b b x x x b b x
x b b b b b b b b x
x b b x b b x x b x
Práctica
Reglas del juego
1. Los usuarios para indicar los disparos tienen que indicar la fila y columna. En la
que el primer índice es un dígito entre 1 y 10 que indica la fila y el segundo índice
es una letra entre la A y la J que indica la columna.
2. Cuando el usuario se rinde, la entrada debe ser una cadena con el único carácter
“R”.
3. Si la entrada no cumple estas características se considera inválida, y se repetirá la
petición de datos sin que esto afecte al estado del programa.
4. La jugada termina cuando el usuario ha hundido toda la flota o se ha rendido.
5. No es necesario validar que se repitan disparos sobre la misma posición.
Opción 1: Entrada por fichero
Para el caso de entrada por fichero (opción 1), dicho fichero de entrada se llama
flota.xls. Considerar que el fichero existe y no está vacío.
Opción 2: Entrada por teclado
La entrada de datos de cada uno de los barcos se realizará de la siguiente forma:
La posición de cada barco está formada por 4 caracteres con las siguientes
restricciones:
o el primero es un dígito entre 1 y 10, indica la fila.
o el segundo es una letra mayúscula entre A y J, indica la columna.
o el tercero es una letra mayúscula, H ó V, que indica si el barco se
sitúa de forma horizontal (H) o vertical (V).
o el cuarto es un dígito entre 1 y 5, que indica cuántas casillas ocupa el
barco.
Comprobar que los barcos que se describen caben en el tablero y no se
tocan.
Por ejemplo:
1BH3, este barco estaría en las posiciones: 1B –1C – 1D
2DV2, este barco estaría en las posiciones: 2D–3D
Práctica
Opción 3: Estadísticas
Se mostrará las estadísticas del histórico:
- Número de partidas
- Partidas de 1 sólo jugador
- Partidas de 2 jugadores
- Por cada jugador
o Tiradas
o Aciertos
o Fallos
o Porcentajes
Opción 4: Abandonar el juego
Se termina el juego “Hundir la flota”
Codificación del Programa
El programa se llamará “JuegoGrupoxx.txt”. Solamente un componente del grupo
subirá dicho fichero en Aula Global 2.
El Código del Programa debe estar completamente comentado.
Documento de la Práctica
Consistirá en un documento realizado en Microsoft Word, llamado
“Memoria_GrupoXX.docx” en el que, como mínimo, debe aparecer la siguiente
información:
Portada: Título de la práctica, NIA, Grupo, Nombre y Apellidos de los alumnos.
Tabla de Contenido del documento de la práctica.
Descripción de las estructuras de datos utilizadas
Enumerar las funciones realizadas, explicando brevemente: qué realiza cada
función, explicar los parámetros de entrada a la función, sus variables y el
contenido de la función.
Ejemplo del funcionamiento del programa: llamadas a funciones; entradas y
salidas de juego.
Código del programa COMENTADO
Práctica
7
El documento de la práctica deberá ser entregado impreso y encuadernado así como
subido electrónicamente en Aula Global2.
Normas de entrega
La práctica se realizará en grupos de dos alumnos.
Para que la práctica se evalúe, se debe entregar y realizar:
En formato electrónico:
o La documentación de la práctica con las especificaciones que se
indica en el apartado “Documentación de la Práctica” de este
enunciado.
o La codificación del programa.
En papel:
o La documentación con las especificaciones que se indica en este
enunciado
La defensa de la práctica.
Fecha de Entrega
Entrega 1: 3 de Octubre al inicio de la clase práctica.
o Menú del juego
o Opción 1 (entrada por fichero): Lectura del fichero, visualización de
tablero, lectura de disparos
o Opción 2 (entrada por teclado): Insertar barcos de ambos jugadores,
comprobación de posiciones, visualización de tablero, lectura de
disparos
Entrega 2: 7 de Noviembre al inicio de la clase práctica.
o Menú del juego
o Opción 1 del Juego completa
Entrega 3: 12 de Diciembre al inicio de la clase práctica.
o Opción 2 del Juego completa
o Opción 3 del Juego completa
Práctica
En cada una de las entregas se realizará entrega en papel.
Se realizará la defensa de la práctica en cada una de las entregas. LA
DEFENSA SE DEBE REALIZAR POR TODOS LOS MIEMBROS DEL GRUPO
PARA QUE LA PRáCTICA SEA EVALUADA.
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。