Documente Academic
Documente Profesional
Documente Cultură
Se establece la matriz
M[1,10]
Se solicita al usuario la fila a disparar
Si
Luego de la fila se establece la columna a
El sig. Bucle disparar.
Indique columna
permite el ingreso a disparar
de un num dentro
del rango. Se ingresa número y se guarda en una
u=columna
ingresada variable.
Indicar número
dentro del rango
Numero(u)
dentro del rango
(u>=1&&u<=10&
No &u~=rendirse
Si
No
No
Si existe disparo se Hay un barco si aparece en la
Elseif
muestra el num 1. m(v,u)=1 coordinada asignada el 3,4 y 5.
Se crea contador
v M(v,u)==barco
disparos fallados.
Disp(“Excelente
juego..felicitaciones”) aciertos=+1 Contador para disparos acertados
Si
¿Derribaste Al derribar todos los barcos
todos los finaliza el juego.
barcos?
Se asigna puntuación
Disp(“Disparos”) adicional según el barco y se
Elseif No Disp(“lancha derribada) muestra el nombre del barco
Disp(“Fallos”) Si
M(v,u)==10
derribado
Disp(“Aciertos”) ¿Lancha
derribada? Pto_lancha=5
Disp(“Repeticiones”)
Disp(“Total puntos”) No
Disp(“disparos repetidos”)
Disp(“acorazado derribado)
¿Acorazado
derribado?
Repeticiones=11 Pto_acorazado=10
5
Si
FIN
Disp(“portaviones derribado)
Si aparece el 1 ¿portaviones
en la derribado?
coordenada
Pto_portaviones=15
elegida es No
Muestra porque hubo
puntuación de disparo.
los diferentes
disparos y el Muestra
puntaje total. mensaje.
Contador
disparos
repetidos.
orden=10;
pta=5;
aco=4;
lan=3;
jugar=1;
ptarriba=1;
acoarriba=1;
lanarriba=1;
rendirese=50;
puntos=0;
ptaderribado=0;
acoderribado=0;
landerribado=0;
disparos=0; aciertos=0; fallos=0; repeticiones=0;
contadorprueba=0;
m=zeros(orden,orden);
M=zeros(orden,orden);
x=randi([1,orden],1);
y=randi([1,orden-pta+1],1);
for i=0:pta-1;
M(y+i,x)=pta;
end
z=randi([1,orden]);
if x<=4
a=randi([x+1,orden+1-aco]);
elseif x>=7
a=randi([1,x-aco]);
elseif x>4 && x<7
a=randi([x+1,orden+1-aco]);
end
for i=0:aco-1;
M(z,a+i)=aco;
end
t=1;
while t==1
fi=randi([1,orden]);
if fi~=z
t=0;
end
end
if x<4
r=randi([x+1,orden+1-lan]);
elseif x>=7
r=randi([1,x-lan]);
elseif x>4 && x<7
r=randi([1,x-lan]);
end
for i=0:lan-1
M(fi,r+i)=lan;
end
disp(M);
if v==rendirse
fprintf(" \n")
disp(" ¡Ups!Te rendiste ");
jugar=0;
end
if jugar==0
else
u=input("Indicar columna a disparar: ");
while u~=rendirse && u<1 || u~=rendirse && u>10
u=input("Indicar columna de disparos: ");
end
if u==rendirse
fprintf(" \n")
dips(" ¡Ups! Te rendiste ");
jugar=0;
else
fprintf(" \n")
disp(m);
for i=1:1
disparos=disparos+1;
end
tiro=M(v,u);
if tiro==0
disp(" ¡Disparo para el agua! ");
m(v,u)=8;
disp(m);
for i=1:1
fallos=fallos+1;
end
elseif tiro==10
fprintf(" Ups...Impactaste antes... ");
for i=1:1
repeticiones=repeticiones+1;
end
else
M(v,u)=10;
disp(" ¡Excelente! Impacto al Barco ");
m(v,u)=1;
disp(m);
for i=1:1
aciertos=aciertos+1
end
end
if lanarriba==1
[j,l]=find(M==lan);
[lancha,o]=size(j);
if lancha==0
disp(" ¡Muy bien!Derribaste una lancha ");
disp(" Tienes 5 puntos adicionales ");
landerribado=5;
lanarriba=0;
end
end
if acoarriba==1
[j,l]=find(M==aco);
[acorazado,o]=size(j);
if acorazado==0
disp(" ¡Muy bien!Derribaste un acorazado ");
disp(" Tienes 10 puntos adicionales ");
acoderribado=10;
acoarriba=0;
end
end
if ptarriba==1
[j,l]=find(M==pta);
[portaviones,o]=size(j);
if portaviones==0
disp(" ¡Muy bien!Derribaste un portaviones ");
disp(" Tienes 15 puntos adicionales ");
ptaderribado=15;
ptarriba=0;
end
disp(" ")
end
if lanarriba==0 && acoarriba==0 && ptarriba==0
jugar=0;
fprintf(" \n");
fprintf(" \n \n \n");
fprintf(" ¡Exceente juego...Felicitaciones! ");
end
end
end
end
fprintf(" \n");
puntos=landerribado+acoderribado+ptaderribado+aciertos
disp("Total disparos acertados: "+aciertos)
disp("Total disparos fallados: "+fallos)
disp("Total disparos repetidos: "+repeticiones)
disp("Total disparos realizados: "+disparos)
disp("Total puntos obtenidos: "+puntos)