Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD 2 PASO 5
Presentado a:
Entregado por:
Código:
203036ª-761
Zona propia: Aparecen los barcos propios, estos en su buen estado estará
representado por el símbolo (#), en caso de que hayan recibido daño en
alguna parte del barco se representara con el símbolo (@), los disparos
serán vistos en pantalla como (*).
Zona enemiga: Aparecen únicamente las casillas las cuales el usuario ha
disparado (*), de igual forma en caso de daño algún barco enemigo se verá
reflejado con (@).
Método de distribuir Barcos.
Método de disparo.
for o = 1:V_rep
%Se notifica al usuario si
desea cambiar las coordenadas del
numero repetido%
disp("¿Desea modificar
Esta información con su respectiva
las coordenadas? para aceptar
digite la letra (s) de lo modificación la usaría para informar al
contrario digite la letra (n) (" usuario, si el disparo que genero ya lo
+Pf (o)+"," + Pc (o)+ ") s | n
" ); hizo anteriormente con el fin de poder
%Se muesta en pantalla ejecutar un disparo distinto.
la opción seleccionada%
Modific = input
('respuesta: ','s');
INICIO
de dispar
Matriz m []
Matriz m 8*8
M ([], 8)
Se indica al
usuario la
coordenada
de disparo
Ingrese un X= fila
número dentro ingresada
del rango.
Digite la columna
a disparar.
Ingrese un
Y= Columna
número dentro
ingresada.
del rango.
Disparos =+1
Si
NO disparos==40 SI
fin del juego
If
SI NO
M(x,y)==0
Disp.(disparo al Elseif
agua)
M(x,y)==barco
M[x,y]=8
Disp. (“impacto”)
Fallos=+1
M[x,y]=7
Disp.(m)
M[x,y]=10
Aciertos=+1
¿Lancha
Disp.(Disparos) P_Lancha= Disp. (“lancha Si derribada?
5 derribada”)
Disp.(Fallos)
Disp.(Aciertos) ¿Acorazado
Disp. (“Acorazado Si
Disp. P_Ac=10 derribado?
derribado”)
(puntos”Acertados+P_Lancha+
p_Acorazado+p_Aviones”)
¿Porta
Disp. Si aviones
P_Porta Aviones=15 (“Portaaviones derrbado?
derribado.”)
Código fuente.
clear;
clc;
dim=8; %se define el area de la matriz%
tla=3; %dimencion de la lancha%
tac=4; %tamaño del acorazado%
tpa=5; %tamaño porta avion%
%se define las variables de NO afectacción de las navez%
laup=1; %lancha no derribada%
acup=1; %acorasado no derribado%
paup=1; %pota aviones no derrivado %
play=1; %bariable de seguir jugando%
ren=90;%se define el numero 90 para finalizar el juego%
%variables de contador del juego%
disparos=0; aciertos=0; fallos=0; rep=0;
puntos=0; ladn=0; acdn=0; padn=0; %conteo de puntos cuando se derriben
las naves%
contadorprueba=0;
m=zeros(dim,dim);%matriz en ceros%
M=zeros(dim,dim); %matriz con las naves%
%se define el codigo para adaptar las naves en la matriz%
v=randi([1,dim],1);%el sistema busca la columna donde se ubicara la nave
%
c=randi([1,dim-tpa+1],1);
s=randi([v+1,dim+1-tac]);
end
for i=0:tac-1
M(h,s+i)=tac;
end
elseif v >= 7
z=randi([1,v-tla]);
elseif v >4 && v < 7
z=randi([1,v-tla]);
end
for i=0:tla-1
M(fi,z+1)=tla;
end
disp(M);
while play==1
fprintf("\n")
x=input("¿te rindes?\n entonses preciona: "+ren+"\nfila a
disparar.\n");
end
while x~=ren && x<1 || x~=ren && x>10
x=input("ingreswe la fila de disparo:");
end
%rendirse%
if x==ren
fprintf("\n")%linea en blanco %
disp("te rendiste");
play=0;
end
if play==0 %si el usuario no se rinde, el juego continua%
else %el juego continua%
end
y=input("columnaa disparar");%el usuario elige una columna a disparar
%
while y~=ren &&y<1 || y~=ren && y>10 %la columna elegida debe estar
en las cordenadas de la matriz%
y=input ("ingrese la columna de disparo");
end
%rendirse%
if y==ren
fprintf("\n")
disp("te rendiste");
play=0;
else
fprintf("\n")
disp(m);
%disparos realizados%
for i=1:1
disparos=disparos+1;
end
end
tiro=M(x,y);
%conteo de disparos%
%disparos fallidos%
if tiro==0
disp("disparo al agua");
m(x,y)= x;
disp(m);
for i=1:1
fallados=fallados+1; %contador de disparos fallados%
end
%disparos repetidos%
elseif tiro==10
fprintf("ya diste estas cordenadas antes")
for i=1:1
rep=rep+1;%contador de diaparos repetidos%
end
else
M(x,y)=10;
disp("has impactado una nave");
m(x,y)=1;
disp(m);
%contador de Aciertos%
for i=1:1
aciertos=aciertos+1;
end
end
%Lancha derrbada%
if laup== 1
[j,i]=find(M==tla);
[lancha,o]=size(j);
if lancha==0
if acorazado==0
disp("derribaste acorazado");
disp("10 puntos adicionales");
acdn=10;
acup=0;
end
end
%porta aviones derribados%
if paup == 1
[j,i]=find(M==tpa);
[portaviones,o]=size(j);
if portaviones==0
disp("derribaste un porta aviones");
disp("15 puntos adicionales");
padn=5;
paup=0;
end
disp("")
end
%cuando derribe a todas las naves%
if laup == 0 && acup ==0 && paup == 0
play=0;
fprintf("\n")
fprintf(" felicitaciones\n");
end
%puntuaciones%
fprintf ("\n")
puntos=land+acdn+padn+aciertos;
disp("disparos acertados:..."+aciertos)%muestra en pantalla el total%
disp("disparos fallados:..."+fallos)
disp("disparos repetidos:..."+rep)
disp("disparos realizados:..."+disparos)
disp("puntos obtenidos:..."+puntos)
if laup==0
fprintf("lancha,");
end
if acup==0
fprintf("acorazado,");
end
if paup==0
fprintf("portaaviones\n");
end
Conclusión
En conclusión vemos que Matlab nos sirve de mucho El cual contiene diferentes
comandos con los cuales podemos realizar diferentes funciones. Habiendo utilizar los
comandos adecuados, pudimos aprender a modelar de una manera práctica y clara la
función de transferencia de cualquier sistema. he aprendieron algunas herramientas en
Matlab para utilizarlas en los intervalos de la gráfica. He aprendió en esta práctica a
graficar tres funciones en una sola gráfica, con sus intervalos, puntos de la función. La
importancia de esta práctica, es que además de anexar una lista de comandos en un
lenguaje de instrucciones se busca en general el entendimiento del proceso, las funciones
que ejercen los comandos introducidos por el usuario, tienen una función determinada, lo
que se busca es facilitar estos procesos que requieren que se resuelvan a papel y lápiz,
pero con solo entender lo que se necesita realizar, podemos lograr estos cálculos
utilizando de manera esencial la herramienta de programar.
Referencias bibliográficas
Machuca maría (2019) Abaut Español, Battleship (Batalla naval) recuperado
de https://www.aboutespanol.com/battleship-batalla-naval-2077614
Hahn, B. D., & Valentine, D. T. (2013). Essential MATLAB for Engineers and
Scientists (Vol. Fifth edition). Waltham, MA: Academic Press. Capítulo 5.
Pág. 111-129. Recuperado de http://bibliotecavirtual.unad.edu.co/login?
url=http://search.ebscohost.com/login.aspx?
direct=true&db=nlebk&AN=485981&lang=es&site=eds-live
Balbi, D.(27 de 08 de 2018). Batallanaval [archivo video]. Obtenido de
https://www.youtube.com/watch?v=LNAHYhup33s