Documentos de Académico
Documentos de Profesional
Documentos de Cultura
0A Batalla Naval
0D Conclusiones
01 Implementación
02 Resultados
0A BATTLESHIP (Batalla Naval)
Horizontal Vertical
col = 10;
x = randi([1 col-(tb(1)-1)]) Row = 10; x = randi([1 col])
y = randi([1 row]) tb = [5 4 3]; y = randi([1 row-(tb(1)-1)])
0C Análisis del Campo de Batalla
Posicionamiento del Acorazado en el Campo de Batalla
4. Generar una coordenada aleatoria valida para posicionamiento de la nave de acuerdo a su longitud
5. Determinar si es posible la ubicación de la nave es esa posición; es decir, esta libre de otras embarcaciones
6. Si no esta libre iterar otra secuencia para una nueva ubicación aleatoria
7. Una ves ubicada esta nave, repetir los pasos 3 al 6 para la siguiente nave a posicionar.
0E Implementar una solución
4. Generar una coordenada aleatoria valida para posicionamiento de la nave de acuerdo a su longitud
if No == 0 % Horizontal
Nx = randi([1 Mcol-tb(i)+1]);
Ny = randi([1 Mrow]);
else % Vertical
Nx = randi([1 Mcol]);
Ny = randi([1 Mrow-tb(i)+1]);
end
0E Implementar una solución
5. Determinar si es posible la ubicación de la nave es esa posición; es decir, esta libre de otras embarcaciones
v = false;
if libre(M,No,Ny,Nx,tb(i)) == true % función propia
if No == 0 % Horizontal
M(Ny, Nx:Nx+tb(i)-1) = tb(i); % Nave
v = true;
else % Vertical
M(Ny:Ny+tb(i)-1, Nx) = tb(i); % Nave
v = true;
end
end
5. Si no esta libre iterar otra secuencia para una nueva ubicación aleatoria
6. Una ves ubicada esta nave, repetir los pasos 3 al 6 para la siguiente nave a posicionar.
0E Implementar una solución
% m:matriz, o:orientación,
% y:fila, x:columna, z:longitud
function v = libre(m,o,y,x,z)
v = true;
if o == 0 % Horizontal else % Vertical
for c=x:x+z-1 for f=y:y+z-1
if m(y,c) ~= 0 % Océano if m(f,x) ~= 0 % Océano
v = false; v = false;
end end
end end
end
end
0F Resustados
0F Resustados
0F Resustados
0F Resustados
¡GRACIAS POR SU ATENCIÓN!