Sie sind auf Seite 1von 4

JUEGO BATALLA DE ACORAZADOS

Este proyecto te ayudará a familiarizarte con los arreglos. Estarás recreando


el juego de acorazados. Un jugador colocará 5 de sus naves en una cuadrícula
de 10 por 10. El jugador de la computadora desplegará cinco naves en la
misma red. Una vez que el juego comienza, el jugador y la computadora se
turnan, tratando de hundir las naves del otro adivinando las coordenadas
para "atacar". El juego termina cuando el jugador o la computadora no tienen
más naves.

Paso 1 - Crear el mapa del océano

El mapa del océano está representado por una cuadrícula de 10 por 10 de


diferentes caracteres. La cuadrícula es administrada por una matriz
bidimensional. Utilizará esta matriz 2D para guardar dónde el usuario y la
computadora deciden colocar sus barcos, así como cuando alguien intenta
atacar una ubicación y falla. Al comienzo del juego, la matriz estará vacía y, a
medida que se juegue, cambiará lo que esté almacenado en cada índice de la
matriz en consecuencia.
Una vez que cree su matriz 2D, necesita una forma de mostrarla al usuario
para que pueda elegir las coordenadas. Debería mostrar su matriz rodeada
de índices como a continuación:

Para hacer esto, debe crear un método que imprima lo anterior haciendo un
bucle sobre la matriz y agregando los índices y los caracteres de canalización
antes y después de cada fila. Querrá usar un bucle anidado para imprimir
esta imagen bidimensional.

Paso 2 - Desplegar los barcos del jugador

Una vez que tenga su mapa oceánico, deberá preguntar al usuario dónde le
gustaría colocar sus barcos. El jugador debe desplegar 5 naves. Un barco se
almacenará en un solo índice de la matriz como un carácter especial. Para
colocar los barcos de los usuarios, es necesario que le indiquen las
coordenadas de dónde se debe colocar el barco y usted necesita actualizar el
mapa del océano para reflejar sus elecciones. Recuerde que necesitará usar
un ingreso por teclado para permitir que el usuario ingrese la entrada.

printf("Ingrese coordenada X para tu acorazado: ");

int x;

scanf(“%d”,&x);

printf("ingrese coordenada Y para tu acorazado: ");

int y;

scanf(“%d”,&y);

Como el usuario le está diciendo dónde colocar sus envíos, debe verificar si
esa es una ubicación apropiada:
• NO puedes colocar dos o más barcos en la misma ubicación
• no puede colocar barcos fuera de la cuadrícula de 10 por 10
Si el jugador está tratando de poner la nave en algún lugar que no puede ser,
vuelva a solicitarla hasta que elija las coordenadas legales para la nave.
Debes guardar los barcos del jugador dentro del OceanMap como '1'. De esa
manera, usted sabe dentro de su propio código qué índices almacenan los
barcos del jugador. Sin embargo, cuando esté imprimiendo el mapa desde el
método que creó en el Paso 1, debe ocultar dónde se encuentran los barcos
imprimiendo un símbolo '@'. Puede lograr esto con un cheque adicional
dentro del bucle for que imprime su mapa oceánico.
Una vez que el usuario haya terminado de colocar un barco, debe imprimir el
mapa para poder ver el estado actual de sus barcos.

Paso 3 - Implementar los barcos de la computadora

La computadora desplegará 5 naves seleccionando aleatoriamente las


coordenadas X e Y. Su código es responsable de generar estas ubicaciones,
verificando si son válidas y, de ser así, ubicar los buques en consecuencia.
Tenga en cuenta:
• no puede colocar el barco en una ubicación que ya esté ocupada por otro
barco (jugador o computadora)
• no puede colocar barcos fuera de la cuadrícula de 10 por 10
Si la computadora intenta colocar el barco en un lugar donde no puede estar,
regenere las coordenadas aleatorias hasta que todos los barcos se coloquen
adecuadamente.
Debería almacenar los barcos de la computadora dentro del OceanMap como
'2' y deberían ser invisibles en el mapa del océano. Esto se debe a que el
juego consiste en hacer que el jugador adivine dónde están las naves, por lo
que no quiere revelar el juego mostrando la ubicación de las naves de la
computadora. Por lo tanto, a medida que se desplieguen las naves, querrá
dar al usuario algunos comentarios sobre lo que está sucediendo así:

Debe generar cada línea de salida cada vez que coloque con éxito un barco
basado en coordenadas aleatorias.

Paso 4 - Batalla

El turno del jugador


Una vez que el jugador y la computadora hayan colocado sus naves, ¡es hora
de comenzar la batalla! Durante la batalla, el jugador y la computadora se
turnarán para adivinar las coordenadas X e Y de las naves del oponente. Se
deben marcar todas las coordenadas adivinadas para que los jugadores
sepan que no deben adivinar allí nuevamente.
Cuando el jugador ingrese las coordenadas X e Y, debe verificar si esas
coordenadas son válidas dentro del Mapa del Océano y aún no han sido
adivinadas por el usuario, siga volviendo a preguntar hasta que el usuario
ingrese una estimación válida. Una vez que la conjetura es válida, su
programa necesita evaluar el resultado de la mudanza.

Hay tres resultados posibles de una conjetura válida:


• El jugador correctamente adivinó las coordenadas de la nave de la
computadora (la computadora pierde la nave).
• Debes decirle al usuario "¡Boom! ¡Has hundido el barco!"
• Debe marcar esto como un acierto cuando imprima el mapa como "!". Puede
elegir cómo almacenar este resultado dentro de su propio código.
• El jugador ingresó las coordenadas de su propio barco (el jugador pierde el
barco).
• Deberías decirle al usuario "Oh no, hundiste tu propio barco :("
• Debe marcar esto como una "x" cuando imprima el mapa, reemplazando la
"@"
• Jugador perdido No hay nave en las coordenadas ingresadas. "Lo siento, te
lo perdiste"
• Debe marcar esto como un "-" al imprimir el mapa.
En todos estos casos, debe marcar las coordenadas en el mapa del océano,
para que el jugador sepa cómo adivinar mejor la próxima vez.
Turno de computadora
Después de que el jugador adivine una coordenada, es el turno de la
computadora para adivinar. El ataque de la computadora debe ser dos
coordenadas generadas al azar. Deberá seguir generando números
aleatorios hasta que obtenga una conjetura válida, es decir, una ubicación
que se encuentre dentro de los límites de la pizarra y que la computadora no
haya adivinado. Una vez que la computadora haga una conjetura válida,
desea imprimir una pequeña actualización para el usuario:

Cuando la computadora produce una conjetura válida, hay tres resultados


posibles:
• Coordenadas calculadas por computadora del barco del jugador (el jugador
pierde el barco).
• Debes informar al usuario "¡La computadora hundió uno de tus barcos!"
• Debe marcar esto como una "x" cuando imprima el mapa
• Ordenador de coordenadas adivinadas de su propia nave (la computadora
pierde la nave).
• Debe informar al usuario "La computadora hundió uno de sus propios
barcos"
• Debes marcar esto como un "!" al imprimir el mapa
• Computadora perdida. No hay barco en coordenadas adivinadas.
• Debes informar al usuario "Ordenador perdido".
• No es necesario que marque el mapa con las suposiciones de la
computadora perdidas, sin embargo, deseará decidir la forma de almacenar
esta información en su mapa para que la computadora no duplique las
adivinanzas más adelante.
Así es como se verá la pantalla después de dos vueltas.

La batalla continuará hasta que uno de los jugadores se quede sin barcos.
Paso 5 – Juego Terminado
Cuando el usuario y la computadora hayan terminado de adivinar, muestre el
estado actual del mapa del océano y la puntuación.

El juego termina cuando a un jugador o computadora no le queda ningún


barco.

Das könnte Ihnen auch gefallen