Se representa mediante un diagrama de flujo un aplicativo basado en un juego de batalla naval.
El cual contienen tres tipos de barcos dentro de una Matriz de 8 x 8.
Lancha: 3 Casillas.
Acorazado: 4 Casillas.
Porta-Aviones: 5 Casillas.
Cuando el usuario realice un disparo, le debe aparecer si le dio a un barco o dio en el agua. Cuando derribe un barco, debe aparecer el nombre del mismo. Una vez derribados todos los barcos, se termina el juego.
Se Ingresa un número y se guarda en una variable (x)
¿Número (x) dentro de Rango (x>=1 && x <=10) && x~=rendirse
Para evitar un error, la fila debe estar dentro del Rango de la Matriz. Pero debe aceptar el número que se establezca para rendirse. Dicho número debe estar fuera del Rango para no confundir con las coordenadas de disparo.
Ingrese un número dentro del Rango
NO
SÍ
Este bucle permite ingresar un número que esté dentro del Rango de la Matriz
Ingrese la Columna a dispara
Una vez se establezca una Fila a disparar, se debe establecer una Columna
y=Columna
ingresada
Se Ingresa un número (columna) y se guarda en una variable (y)
¿Número (y) dentro deRango (y>=1 && y <=10 && y~=rendirse )
SÍ
NO
Ingrese un número dentro del Rango
Hace lo mismo que con el ingreso de datos de la fila
Matriz m [ ]
m=matriz que el usuario puede ver (sin barcos inicialmente). Va apareciendo a medida que vaya disparando
El número de columna también debe estar dentro del Rango de la Matriz, con la excepción de número que se establece para rendirse
Si x==rendirse || y==rendirse
Si el número ingresado es la variable que se estableció para rendirse. Se termina el juego
Si en la coordenada elegida (y,x) hay cero (No hay barcos)
SÍ
NO
elseif
M(x,y)==barco
Disp("Disparo al agua")
Aparece en pantalla un disparo al agua
m[x,y]=1
Disp(m)
Cuando haya un disparo al agua se identifica ese disparo con el número 1 en la matriz que el usuario puede ver (m)
También se crea un contador para los disparos fallados
Se muestra la matriz (m) actualizada
Disparos= + 1
Se crea un contador para los disparos del juego
Fallos=+1
NO
SÍ
Si en la coordenada elegida hay un 3,4 o 5, hay un barco
Disp("Le diste a un barco")
Muestra en la pantalla que le dio a un barco
m[x,y]=7
Aciertos=+1
M[x,y]=7
Cuando el usuario le da a un barco, en la matriz que él puede ver (m), le aparecerá un 7
En la Matriz que contiene los barcos (M), el disparo al barco se identifica con un 10 en ese posición.
También se crea un contador de los disparos acertados
¿Lancha derribada?
elseif
M(x,y)==10
Si la coordenada elegida de la Matriz (M) hay un valor 10, es porque ahí hubo un disparo a un barco
Se Muestra un mensaje respecto en la pantalla.
Se crea un contador de los disparos repetidos a una misma casilla del barco
Disp("Repetiste ese disparo")
FIN
Repetidos=+1
Si No
¿Acorazado derribado?
¿Porta-Aviones derribado?
NO
SÍ
NO
SÍ
SÍ
SÍ
Disp("Lancha derribada")
Disp("Porta-Aviones derribado")
Disp("Acorazado derribado")
¿Has derribado TODOS los Barcos?
Disp("GANASTE!!! HAS DERRIBADO TODOS LOS BARCOS")
Muestra en la pantalla que Ganó
Disp("Te has rendido")
Mostrarle al Usuario que se ha rendido
Mientras se continúe el juego y no se haya derribados TODOS los barcos, este BUCLE se repite hasta que las condiciones cambien
NO
NO
P_Lancha=5
P_Pota-Aviones=15
P_Acorazado=10
Cuando se derriben todos los barcos se acaba el Juego.
Si se derriba un barco aparece el nombre del mismo. Se le asigna una puntuación adicional según el barco, y se retorna a cumplir el bucle nuevamente
Se Muestra los diferentes tipos de disparos (general, fallidos, acertados, repetidos. y se muestra la puntuación del juego
Si disparos == 35
se termina el juego
SÍ
NO
Cuando se le acaben los disparos al usuario se termina el juego