Sunteți pe pagina 1din 8

Software para la ingeniería

Paso 5 – construcción individual

Elaborado por:

Faber Manuel Cucaita Morales

Presentado al tutor:

Steven Bedoya

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA

Santa Rosa De Viterbo (Boyacá) 07/06/2020


Marco teórico

La batalla naval o juego de barquitos es un juego de lápiz y papel


tradicional de adivinación que involucra a dos participantes. Se ha
comercializado como juego de mesa en diferentes formatos por varias
marcas, el primero en sacarlo fue Milton Bradley Company en 1931, y se
jugaba con papel y lápiz
En esta actividad se implementara las representaciones graficas las
cuales estarán modeladas por el programa en uso, batalla naval luego
de que este en uso incluye la relación de situaciones concretas de
ubicación desde 2 perspectivas, el jugador y el contrincante lo cual
genera a su vez 2 tipos de necesidades en el juego proteger y atacar
generando este un dinamismo constante entre el objeto en estudio y la
interacción entre el programa y el usuario

Aspectos básicos de programación


Según Monroy, J. (2016). En el campo de formación de la electrónica y
las telecomunicaciones el uso de herramientas de apoyo para el diseño
de cierto tipo de sistemas es fundamental, es posible dar respuestas
certeras a diferentes problemáticas de diseño en el campo de la
electrónica y las telecomunicaciones aplicando herramientas
fundamentales de programación atraves de software especializado
(Matlab-scilab)

Fundamentos de programación en software de tratamiento


matemático
Según Monroy, J. (2018) se destaca la importancia de conocer el tipo de
tratamiento matemático que es posible desarrollar a partir de software
especializado ya que muchos diseños dependen de operaciones
matemáticas que pueden venir predefinidas o estructuras en funciones
que facilitan sus soluciones
Según Monroy, J. (2018) Matlab y scilab además de proveer la
posibilidad de dicho tratamiento matemático, brinda la alternativa de
codificar algoritmos atraves de un lenguaje no declarativo y pensado
para un modelamiento matemático aprovechando al máximo los
recursos de la máquina y la facilidad de sintaxis tanto para la lectura del
código

Introducción a Matlab
Según Gil, R. M. (2003) existen elementos que permiten definir el
procedimiento para la captura de información y visualización de
resultados en cada uno de estos procesos intervienen elementos tanto
para la captura de datos así como para su visualización, estos elementos
pueden ser datos de entrada y de igual forma para su visualización
datos de salida es decir datos de entrada leer y datos de salida imprimir

Diseño

Creación de la matriz

Para el desarrollo del programa se debe iniciar por la generación de la


matriz y para ello con las líneas de código empleadas para la práctica
número 2. Permite al usuario generar la matriz indicándole al usuario
que ingrese lo valores como desea que se genere el campo de juego con
las respectivas dimensiones

Sección línea de código


clc
matriz = input ('ingrese el orden de la matriz:\n');
lim_inferior = input ('ingrese el limite inferior de la matriz\n');
lim_superior = input ('ingrese el limite superior de la matriz\n');
aleatoria = randi ([lim_inferior,lim_superior],matriz,matriz);
disp('Matriz:');
disp(aleatoria)
 Durante el desarrollo del programa implementamos esta línea de
código donde la función Randi permite captar los datos de entrada
del usuario la matriz donde iniciaremos el juego
 Con la función input permite capturar un valor ingresado por el
usuario
 Con la función disp. Permite imprimir en pantalla un mensaje de
texto o el valor de una matriz

Ubicación barcos en el plano de juego con una matriz de 10x10

La lógica utilizada para esta sección de código es simple. Se declara la


matriz y se inicializa a ceros y posteriormente se asigna el valor de uno,
cuatro veces consecutivas como indicador de objeto ubicado sobre una
horizontal

mar = zeros(10,10)

horizontal= input("\\n\favor ingresar la horizontal a ubicar en el barco


[1_10]:")

if(horizontal >=1 && horizontal <=10)

columna=randi([1,7],1,1)

for i=:3
mar(horizontal,columna+i) =1;
end
for i=:10
for j = : 10
fprintf( '%&d\t',mar(i,j) );
end
fprintf('\n');
end

else
fprintf('ingresar un rango valido [1-10]');
end

 Durante el desarrollo del programa implementaremos esta sección


de código para posicionar los barcos

 La posición vertical es aleatoria dentro de la horizontal ingresada


por el usuario

 Para asignar un valor de un vector inicializado a otro vector se


puede usar el mismo ciclo de recorrido y se ahorra así nuevos
recorridos y mejorar el orden de magnitud del algoritmo

Contar números de disparos barcos hundidos según las


coordenadas bx, by(barco) y (disparo) cx,cy

La lógica empleada para el desarrollo de este algoritmo es el siguiente


mediante las variables bx,by posicionamos nuestro barco y luego
mediante las variables cx,cy asignamos las posiciones a las cuales
deseamos impactar el barco así mismo el aplicativo nos imprimirá el
número de intentos, barcos hundidos y disparos realizados
n = int(input('¿Cuántas municiones?: '))
bx = int(input('Barco ¿Coordenada bx?: '))
by = int(input('Barco ¿Coordenada by?: '))

hundido = 0
disparo = 0

# Juego
while (disparo<n and hundido==0):

print('\nIntento '+str(disparo+1))
print('Barco enemigo en ('+str(bx)+','+str(by)+')')
cx = int(input('Disparo ¿Coordenada cx?: '))
cy = int(input('Disparo ¿Coordenada cy?: '))

d = int(random.random()*4)+1
p = int(random.random()*3)+1

if d==1:
by = by+p
if d==2:
by = by-p
if d==3:
bx = bx+p
if d==4:
bx = bx-p
if (bx==cx and by==cy):
hundido = 1

disparo = disparo+1

print('Movimiento direccion:'+str(d)+', '+str(p)+' casillas')


print('Disparados: '+str(disparo)+ ', Hundido: '+str(hundido))

# SALIDA
print('Barco Hundido:')
print(hundido)
print('Disparos realizados:')
print(disparo)

 Durante el desarrollo del programa utilizaremos esta sección de


código para posicionar, realizar disparos y ver los barcos hundidos

 Atraves de la función random nos permite generar direcciones


aleatorias del barco desplazándose en el plano para así adivinar su
ubicación e impactar el barco

 El programa se repite para n intentos de disparo y evasión del


barco
Bibliografía

-Gil, R. M. (2003). Introducción rápida a Matlab y Simulink para ciencia


e ingeniería. Madrid, ES: Ediciones Díaz de Santos. Capítulo 3. pág. 38-
40. Recuperado
de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?
ppg=1&docID=11059428&tm=1479848795401

-Monroy, J. (2018). Fundamentos de Programación en Software de


Tratamiento Matemático. [Archivo de video] Recuperado
de: http://hdl.handle.net/10596/22302

-Monroy, J. (2016). Fundamentos de programación Matlab. [Archivo de


video] Recuperado de: http://hdl.handle.net/10596/10294

-MathWorks. (2009). TheMathworks. Recuperado


de http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf

-Fundamentos de programación (Marzo 5/2015) edelros@espol.edu.ec


http://blog.espol.edu.ec/ccpg1001/tag/aleatorios/page/2/

S-ar putea să vă placă și