Universidad Nacional Experimental de Guayana.
Vice-Rectorado Académico.
Proyecto de Carrera: Ingeniería en Informática.
Semestre: II
Profesores: José Luis Salazar Página 1 de 3
Técnicas de Programación I
Proyecto (25%)
Introducción:
Guerra Naval es un juego de estrategia en el cual se deben colocar “barcos de guerra” distribuidos en un tablero por
cada jugador. El juego se compone de dos tableros (uno por cada jugador) de 10 x10 ocupados por piezas (barcos de
guerra), y el objetivo del juego es ir estratégicamente buscando los barcos contrarios hasta destruirlos todos antes del
oponente.
En la siguiente figura se muestra una imagen con la implementación del juego.
Para información adicional, puede consultar las siguientes páginas:
[Link]
[Link]
Universidad Nacional Experimental de Guayana.
Vice-Rectorado Académico.
Proyecto de Carrera: Ingeniería en Informática.
Semestre: II
Profesores: José Luis Salazar Página 2 de 3
Requisitos
1. Cada tablero está dividido en cuadrados, de modo que cada elemento (barco de guerra) que contiene, ocupa uno o
varios cuadrados contiguos.
2. Los diferentes elementos o barco de guerra de cada tablero son:
Un portaaviones, que ocupa 5 cuadrados del tablero.
Un acorazado, que ocupa 4 cuadrados del tablero.
Una fragata que ocupa 3 cuadrados del tablero.
Un submarino que ocupa 3 cuadrados del tablero.
Un buque minero que ocupa 2 cuadrados del tablero.
3. Antes de comenzar, cada jugador posiciona los barcos de forma secreta o invisible al oponente. Cada uno ocupa,
según su modelo, una cierta cantidad de posiciones, ya sea horizontal o verticalmente. De esta forma, no se permiten
lugares solapados, ya que cada uno ocupa posiciones únicas. Se deben ubicar todas las naves. Para ello debe hacer
una pantalla, previa a la pantalla de juego, donde el jugador humano pueda llevar a cabo estas acciones. Ver ejemplo:
4. Una vez todas las naves han sido posicionadas, se inicia una serie de rondas. En cada ronda, cada jugador en su
turno indica una posición del tablero de su oponente. Si esa posición es ocupada por una parte de un barco, el juego
muestra o indica que hay una avería de un barco y marca con color rojo esa posición. Cuando todas las posiciones
de un mismo barco han sido dañadas el juego debe indicar que un barco ha sido hundido señalando el tipo de nave
que ha sido eliminado. Ahora bien, si la posición indicada, efectivamente, no posee un barco alojado, el juego indica
disparo fallido y marca con color blanco esa posición.
Universidad Nacional Experimental de Guayana.
Vice-Rectorado Académico.
Proyecto de Carrera: Ingeniería en Informática.
Semestre: II
Profesores: José Luis Salazar Página 3 de 3
5. Se debe llevar un contador del número de intentos de cada jugador.
6. Quien descubra primero todas las naves será el vencedor, pero en caso de que el participante que comenzó la
partida hunda el barco en su ultima jugada, el otro jugador tiene una ultima posibilidad para alcanzar el empate. En
este sentido es importante que el juego le pida al jugador humano si desea iniciar la partida.
7. Los jugadores pueden ser humanos o humano vs el computador .
8. En caso de que uno de los jugadores sea el computador, debe diseñar un algoritmo que combine búsqueda
aleatoria de las posiciones de los barcos del oponente con búsquedas de casillas próximas en caso de que ya haya
impactado alguna embarcación.
9. La pantalla del juego contendrá al menos:
El tablero para la ubicación de los barcos del jugador humano.
Los tableros donde se estará llevando a cabo el juego en si.
Un menú con las opciones:
o Iniciar el juego:
Jugador 1 vs Jugador 2.
Humano vs computador.
o Acerca del juego (Breve descripción del juego y credenciales)
o Ayuda (¿cómo se juega?)
o Salir del juego.
10. Cualquier otra opción adicional que Ud crea conveniente tendrá una ponderación adicional sobre el valor del
proyecto.
Entregas via email en un archivo zip, que contendra:
Código Fuente.
Informe Final, tendrá incluido:
1. Manual del Programador:
1. Requerimientos Técnicos.
2. Diagrama de Flujo General.
3. Definición y descripción de principales variables y estructuras de datos usadas en el programa
(Diccionario de Datos).
4. Definición y descripción de principales funciones del programa (Diccionario de Funciones).
2. Manual de Usuario.
Fecha: Semana 15 (última semana del Lapso 2025-I)
Max Personas x Grupo: 5 integrantes.
Min Personas x Grupo: 3 integrantes.