Sunteți pe pagina 1din 20

Unidad 1.

Fundamentación del Lenguaje de Programación y Tratamiento Matemático


Paso 5 – Construcción Individual

Tutor: Omar Albeiro Trejo

Estudiante: Jairo Velásquez Bustos

19.151.403

Código: 203036_21

Grupo: 203036A_761

Universidad Nacional Abierta y a Distancia UNAD

Escuela de Ciencias Básicas, Tecnología e Ingeniería

Ingeniería Electrónica

Software para Ingenieria

Bogotá, 6 de abril de 2020


Introducción

El presente trabajo corresponde al desarrollo de ejercicio relacionados Unidad 1.


Fundamentación del Lenguaje de Programación y Tratamiento Matemático Paso 5 –
Construcción individual, que imparte la Universidad Nacional a Distancia - UNAD, dentro
del pensum académico de la formación profesional de Ingeniería Electrónica.

El contenido del trabajo comprende los siguientes temas:

1. Paso 5 – Construcción individual


2. Selección de tres elementos del código que desarrollo para la práctica 2
3. Conclusiones
4. Referencias bibliográficas.
Objetivos

1. Comprender los conceptos, fundamentos de ánalisis y diseño de sistemas y


programación de software y la aplicación de sentencias de control de flujo en el
desarrollo de programas para solucionar problemas de tratamiento matemático de
ingeniería.

2. Desarrollar ejercicios con aplicaciòn de variables, formato de números, operaciones


matemáticas básicas, Funciones, Instrucciones de entrada de información y
Condicionales IF-ELSE.

3. Comprobar por cuenta propia y de manera práctica los resultados obtenidos en el


desarrollo de ejercicios, experimentos y simulaciones de conformidad con lo
propuesto en las guías de actividades.
Actividades a Desarrollar

1. Paso 5 – Construcción Individual

 Obtención de información
 Aportes de código para posterior solución del problema

Para continuar la construcción de la solución del problema planteado en el curso.

 En función del desarrollo de la práctica 2 y del problema planteado en el curso,


consulte y lea información concreta que le permita construir la solución del problema
(teorías, conceptos, manuales, videos, ejercicios resueltos, entre otros)
 Realice un resumen de dicha información de manera que logre construir un marco
teórico que soporte posteriormente la solución que plantee.
 Referencia con normas APA cada consulta indicando las páginas que consultó
 Seleccione por lo menos tres elementos del código que desarrollo para la práctica 2,
cópielos y describa como los usaría en la construcción de la solución del problema.

1.1 Marco Teórico

"Desde que el ser humano es un niño, una de sus formas de integrarse al mundo que lo

rodea, manipularlo e incluso alterarlo, es mediante los juegos. Los juegos no solo

facilitan el aprendizaje, sino que permiten que el ser humano realice actividades, que

pueden ser peligrosas, sin salir lastimado (al menos físicamente). En tal sentido los

juegos se convierten en parte importante de la vida de cada persona y su uso no sólo se

limita a los niños, sino que puede extenderse incluso a los adultos.
Ahora bien, es sabido que con el tiempo los juegos han evolucionado, pasando de
sencillos y accesibles a complicados y difíciles de jugar. Así, se pasó de juegos tan
simples como el de las canicas a más complicados como los de computador, siendo el
hilo conductor en esta transición, el avance tecnológico que día a día lleva a explorar
nuevos horizontes".1

1.1.2 Juegos de Computador.

"Los juegos de computador han evolucionado a medida que la tecnología ha avanzado


y parece lejana la época de PONG® que sin ser un juego destacable por sus gráficas,
si llegó a cumplir un gran requisito de los juegos: divertir. Posterior a este juego
fueron apareciendo títulos que se convirtieron en clásicos y que dieron las bases para
los juegos de hoy. Así por ejemplo, SPACE INVADERS, introdujo un elemento
esencial en los juegos actuales: la historia. ¿Qué sería de los juegos de nuestra época
sin la historia, sin un argumento sólido que motive a ganar el juego?

Pero además se debe considerar que la creciente avanzada tecnológica impulsó de gran
manera el desarrollo de los juegos y la exploración de nuevos juegos, porque al
mejorarse el rendimiento de los dispositivos de video, de música y de entrada, entre
otros, llevó a que se mejorarán las gráficas y se pasara de planos bidimensionales a
gráficos en 3D.

Es por lo anterior que el mundo de los juegos de computador ha crecido y


evolucionado, pero además se le suma la industria que gira en torno a ellos y que hace
que se busquen nuevas ideas, se exploren nuevas tecnologías y se intente cada día
proponer juegos que sean diferentes, no solo en apariencia, sino en contenido. Esto ha

1
Cobos, Carlos. Independencia: juego de estrategia en 3D basado en hechos importantes de la campaña libertadora de
Colombia. Pag. 12. 2005.Tomado de: https://www.monografias.com/docs113/juego-estrategia-3d-basado-hechos-
importantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadora-
colombia.shtml
llevado a que se dé una gama muy amplia de juegos para computador y que dada sus
características sea muy complicado a veces definir a que tipo de juego pertenece".2

1.1.3 Clasificación de los Juegos de Computador.

"La taxonomía de juegos de computador no es más que la clasificación sistemática que


se puede hacer de estos juegos basados en características comunes y subjetivas que se
tenga de ellos. Así pues, las particularidades que un individuo percibe de un juego, no
necesariamente serán las mismas que otra persona pueda observar y es perfectamente
posible además que un juego pueda encajar en dos o más categorías. En tal sentido, la
lista que se muestra a continuación no es definitiva y pretende dar unas pautas de
organización que faciliten el entendimiento de los diversos tipos de juegos para
computador que pueden existir".3

I
Imagen 1. Clasificación de Juegos de computador. Tomado de:
https://www.monografias.com/docs113/juego-estrategia-3d-basado-hechos-importantes-campana-
libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadora-
colombia.shtml

2
Cobos, Carlos. Independencia: juego de estrategia en 3D basado en hechos importantes de la campaña libertadora de
Colombia. Pag. 12-13. 2005.Tomado de: https://www.monografias.com/docs113/juego-estrategia-3d-basado-hechos-
importantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadora-
colombia.shtml
3
Cobos, Carlos. Independencia: juego de estrategia en 3D basado en hechos importantes de la campaña libertadora de
Colombia. Pag. 13. 2005.Tomado de: https://www.monografias.com/docs113/juego-estrategia-3d-basado-hechos-
importantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadora-
colombia.shtml
1.1.4 Juegos de Habilidad y Acción

"Esta es tal vez la categoría más popular dentro de los juegos para PC. Los juegos de
habilidad y acción, S&A (por skill & action en inglés), "se caracterizan por ser juegos
en tiempo real, con alto énfasis en gráficas y sonido, uso de joystick o ratón más que
teclado. Las habilidades primarias demandadas del jugador son coordinación mano –
ojo y tiempo rápido de reacción” Error: Reference source not found. Estos juegos son
altamente difundidos y dentro de ellos se pueden encontrar seis categorías más:
"juegos de combate, juegos de laberinto, juegos de deportes, juegos de mesa, juegos de
carreras y juegos misceláneos.

1.1.5 Juegos de Estrategia

En este tipo de juegos es más importante el aspecto cognoscitivo que las habilidades
motrices, aunque la tendencia en los últimos años ha sido la de permitir que el jugador
además de tener que pensar en una estrategia para ganar el juego, deba estar pendiente
de la acción y reaccione de manera casi instantánea, lo cual se constituye en una
primera categoría: juegos de estrategia en tiempo real (RTS por sus siglas en inglés –
Real Time Strategy).

1.1.6 Juegos de Guerra - Batalla Naval

Juegos de Guerra: Herederos de los juegos de guerra de tablero, como Batalla


Naval, este tipo de juegos de estrategia se caracterizan por mostrar un campo de
batalla donde el jugador piensa en una estrategia que permita ubicar acertadamente sus
unidades de combate, con el fin de ganar la partida".4

4
Cobos, Carlos. Independencia: juego de estrategia en 3D basado en hechos importantes de la campaña libertadora de
Colombia. Pag. 14-16. 2005.Tomado de: https://www.monografias.com/docs113/juego-estrategia-3d-basado-hechos-
importantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadora-
colombia.shtml
"En este popular juego de estrategia infantil, los jugadores colocan sus barcos, de
distintos tamaños, sobre una rejilla de coordenadas; entonces por turnos deben
disparar al enemigo esperando escuchar los famosos «agua», «tocado» o «hundido»
según lo que suceda.
La estrategia de Batalla naval es mucho más compleja de lo que parece y comienza
con la propia:

1.1.7 Disposición de los Barcos:

 ¿Es mejor colocarlos al azar?


 ¿Quizá en las esquinas o los lados, donde dejan menos casillas alrededor una vez
son tocados o hundidos?
 ¿Se puede «engañar» al otro jugador sabiendo que quizá sepa también esto?".5

Imagen 2. Clasificación de Juegos de computador. Tomado de: https://www.microsiervos.com/archivo/juegos-y-


diversion/batalla-naval-analizado-matematicamente.html

5
Microservos. Batalla naval analizado matemáticamente hasta el más mínimo detalle. 2016. Tomado de:
https://www.microsiervos.com/archivo/juegos-y-diversion/batalla-naval-analizado-matematicamente.html
1.2 Descripción de Pasos de la Solución del Problema.

1.2.2 Planteamiento del Problema

Analizar y definir el procedimiento a seguir (Algoritmo) para crear e implementar un


juego didáctico sistematizado de batalla naval para la empresa TOYs2020.

1.2.3 Objetivo.

Diseñar y desarrollar un prototipo de software que permita a los usuarios recrear una
batalla naval, mediante una matriz con ubicación aleatoria de los barcos para atacar y
derribar con disparos consecutivos.

1.2.4 Información de Datos Entrada al Sistema

Actores Involucrados en el Juego:

1.2.4.1 Datos de Jugador - Usuario

 Nombre
 Nick
 Código
 Password
 Puntaje del usuario

1.2.4.2 Datos del sistema

 Tipo de matriz
 Número de filas
 Número de columnas
 Coordenadas de casilla (x,y)
 Tiempo duración del juego
 Acumuladores
 Contadores

1.2.4.3 Datos de los Barcos

 Tipo de barco
 Nombre del barco
 Zona de ubicación
 Estado del barco

1.2.4.4 Datos de Control de disparos

 Número de disparos lanzados


 Número disparos certeros
 Número disparos errados.

1.2.5 Algoritmo de Procesos Requeridos en el Sistema.

1. Autenticación e identificación de Usuario


2. Selección de nivel de juego
3. Asignar y definir tipo de barcos
4. Iniciar juego de batalla
5. Marcas casilla de posicionamiento
6. Acciones de disparo
7. Notificar turnos de disparo
8. Notificar ganador
9. Terminar juego.

1.2.5.1 Diagrama de Casos de Uso

Imagen 3. Diagrama de Casos de Uso

1.2.5.2 Actores Involucrados en el Sistema

1. Usuario - Jugador
2. Sistema - Software

1.2.6 Información de Salida


Se requiere de un despliegue de pantalla, que visualice la matriz del juego con
atributos amigables para el usuario.
1.2.6.1 Menú de Opciones Disponibles al Usuario - Jugador

1. Ingresar datos de autenticación


2. Parametrizar opciones de juego
3. Iniciar juego
4. Interactuar con las opciones y posibilidades del juego
5. Terminar juego.

1.2.6.2 Informes con Salidas de información

1. Listado de usuarios participantes


2. Cuadro con número de disparos:
 Efectuados
 Certeros
 Errados
1. Listado de nombres de barcos
2. Listado de barcos hundidos
3. Listado de barcos victoriosos
4. Listado de puntajes logrados

Para realizar las actividades y procesos descritos anteriormente, considero conveniente


profundizar en varios temas ligados al diseño y programación de sistemas.

Por consiguiente, sugiero consultar y analizar los siguientes enlaces web, relacionados
con el desarrollo e implementación de software para juegos de batalla naval en
computador, los cuales darán muchas luces e ideas para comprender con mayor
claridad las características, elementos, variables y procesos a tener en cuenta en el
diseño y elaboración del software, requerido como solución al ejercicio del juego
planteado.

1.2.7 Enlaces Web.

1.2.7.1 Battleship versión 5x5

El juego es del tipo "Jugador vs Computador". Recrea una batalla naval entre dos
bandos. Ambos jugadores poseen dos barcos cada uno (jugador y máquina), se
enfrentan por turnos mediante lanzamientos de misil según las coordenadas, donde el
objetivo es destruir ambos barcos enemigos para conseguir la victoria.

https://sourceforge.net/p/pseint/discussion/2368332/thread/c3311e88/

1.2.7.2 Batalla Naval NxM (edición 2018)

Batalla naval es un juego de dos personas. Cada jugador tiene un tablero, en el cual
coloca su flota. En cada ronda, el respectivo jugador intentará adivinar donde están los
barcos del enemigo para atacarlos. Cuando atacas todas las casillas de un barco, este se
hunde. El jugador que hunde todos los barcos del oponente gana la partida.

https://wiki.dcc.uchile.cl/TallerMindstorms/doku.php?id=18:g24

1.2.7.3 Video. Batalla Naval

Ejemplo de cómo programar un sencillo algoritmo en PSeInt del juego de la batalla


naval, utilizando vectores.
https://www.youtube.com/watch?v=LNAHYhup33s

1.2.7.4 El algoritmo óptimo para jugar batalla naval.

Colocación competente de naves en combate naval. mmo sea battle: una guía para
principiantes.

https://sks-m.ru/es/tehnologii/gramotnaya-rasstanovka-korablei-v-morskom-boe-mmo-
morskoi-boi---gaid-dlya.html

1.2.7.5 Matlab para Ingenieros.

Documento PDF con Edición estudiantil de MATLAB

http://dea.unsj.edu.ar/control2/matlab%20para%20ingenieros.pdf

1.2.7.6 Principios de la ingeniería del software.

Enunciado juego de la Batalla Naval

https://es.scribd.com/document/422864479/PRINCIPIOS-DE-LA-INGENIERIA-DEL-SOFTWARE

1.2.7.7. ingeniería técnica de informática de gestión y sistemas físicos


programación 1

Juego de la batalla naval se desarrolla sobre una matriz de 10x10 casillas.


https://www.infor.uva.es/~cvaca/WebPrI/docs/pracp10708.pdf

1.2.7.8 Laboratorio 2010 Principios de Programación.

Descripción del Juego Batalla Naval.

https://www.fing.edu.uy/tecnoinf/mvd/cursos/prinprog/material/oblig/pp2010-e2-
nocturno.pdf

1.2.7.9 Trabajo Practico 2: Programación Lógica.

Implementar en Prolog una batalla naval

https://campus.exactas.uba.ar/pluginfile.php/82507/mod_resource/content/1/Enunciado
%20del%20TP%20de%20programaci%C3%B3n%20l%C3%B3gica.pdf

1.2.7.10 Batalla Naval Video tutorial de Solo Programadores.

https://www.youtube.com/watch?v=Dz3ZSZmrdqc

2. Seleccione por lo menos tres elementos del código que desarrollo para la práctica 2,
cópielos y describa como los usaría en la construcción de la solución del problema.

2.1 Sección que define y crea la Matriz Aleatoria

Este bloque de instrucciones en lenguaje MATLAB, permite al programador codificar


los parámetros necesarios para crear y desplegar la matriz aleatoria, como son : El
orden, límite inferior y límite superior de la matriz.
disp("PROGRAMA PARA CREAR UNA MATRIZ ALEATORIA CON LÍMITES
INFERIOR Y SUPERIOR")
M = input("Ingrese orden de matriz:"); % Especifica tamaño de la matriz
I = input("Ingrese límite inferior:"); % Define límite inferior
S = input("Ingrese límite superior:"); % Define límite superior
A = randi([I,S],M,M);% Genera matriz aleatoria según orden, límites inferior y
superior
disp("Matriz generada")% Despliega mensaje de matriz
disp(A)% Despliega la matriz

Considero, que ésta lógica de programación e instrucciones en Matlab se pueden


implementar en la defición de las matrices requeridas en la construcción de la
solución del problema planteado.

2.2 Rutina para despliegue y modificación de coordenadas repetidas

Val_b =input("Ingrese valor a buscar:");%Ingreso de valor seleccionado a buscar


[Cf,Cc]= find(A==Val_b);% Procesa la coordenada a buscar
[Val_r,Conta_1]= size(Cf);% Despliega mensaje con número de veces de datos
repetidos
if Val_r == 1 % Condición para establecer datos repetidos
disp("El valor " + Val_b +"El número ingresado no se repite en la matriz:");
%Despliega mensaje de datos no repetidos
else
disp("El número "+ Val_b +" se repite "+ Val_r +" veces en las siguientes
coordenadas: ");%Indica número de veces que se repite
for n1 = 1:Val_r % Ciclo para desplegar coordenada del dato
disp("(" + Cf(n1)+ "," + Cc(n1)+ ")");% Despliegue de coordenada
end
for n2 = 1:Val_r % Ciclo barrido de tabla. Consulta y cambio
disp("Desea modificar el valor en la coordenada("+ Cf(n2)+ "," + Cc(n2)+ ")");
%Genera pregunta al usuario sobre modificar.
Mod_v = input("Ingrese s/n, minúscula :",'s');% Acepta decisión del usuario
while Mod_v ~= 's' && Mod_v ~= 'n' % Ciclo que valida ingreso de s/n
minúscula.
Mod_v = input('Dato errado. Ingrese s/n minúscula: ', 's');% Ingreso de dato
end
if (Mod_v == 's') % Ingreso de opción.
Val_m = input("Ingrese el nuevo valor: ");% Ingrese nuevo valor
A(Cf(n2),Cc(n2))= Val_m;% Efectua el cambio
end
end
end

Igualmente, esta rutina de instrucciones en Matlab, con adición de algunos procesos


y comandos propios del lenguaje, se puede aplicar en el desarrollo del módulo de
consulta y modificación de las coordenadas repetidas que genera la matriz aleatoria.

2.3 Sección que despliega la Matriz modificada.

disp("Matriz Modificada")% Despliega mensaje de matriz


disp(A) %Muestra Nueva matriz
A1 = num2cell(A)% Traslada datos a matriz A1
cellplot(A1)% Configura imagen coloreada con nueva matriz
title('Matriz Modificada')%Coloca título a la imagen.

Así mismo, este último bloque de instrucciones, muy versatil, es factible de utilizar en
la codificación en el despliegue de la salida de información final de la matriz, como se
puede apreciar en la siguiente imagen:
Imagen 4. Matriz Modificada

3. Conclusiones

Mediante el desarrollo del ejercicio práctico de la fase experimentación se obtuvo amplios y


claros conocimientos en las siguientes competencias:

a. Fundamentos y conceptos sobre análisis y compresion de problemas informáticos


b. Conocimietnos sobre datos de entrada, procesos e información de salido de un sistema
informático
c. Fases del Análisis y diseño de sitemas de infromación
d. Realizar simulaciones utilizando software libre , a fin de comprobar y comprender de
primera mano el funcionamiento y manejo de el software de programación.
4. Bibliografía.

 Monroy, J. (2016). Conceptos Básicos de programación. [Archivo de video]


Recuperado de http://hdl.handle.net/10596/10293

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


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

 MathWorks. (2009). TheMathworks. Recuperado


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

 Eike Rietsch. (2010). An Introduction to Scilab from a Matlab User's Point of View.
Version 5.2. Recuperado d: https://wiki.scilab.org/Tutorials?
action=AttachFile&do=get&target=Scilab4Matlab.pdf

 Hahn Brian D. (2007). Essential Matlab for Engineers and Scientist. (ThirdEdition).
Elsevier. 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&scope=site

 Hunt Brian R. (2001), A guide to Matlab for beginners and experienced users.
Cambridge University: Press. Recuperado
de http://bibliotecavirtual.unad.edu.co/login?
url=http://search.ebscohost.com/login.aspx?
direct=true&db=edshlc&AN=edshlc.009017307.4&lang=es&site=eds-
live&scope=site

 José M. Drake. Proceso de desarrollo de aplicaciones software. Recuperado de:


https://www.ctr.unican.es/asignaturas/MC_OO/Doc/OO_08_I2_Proceso.pdf

 Ejemplo de análisis y diseño estructurado de un sistema software. Tomado de :


https://ocw.unican.es/pluginfile.php/1403/course/section/1794/Ejemplo_Estructurado.
pdf
 Mihaela Juganaru Mathieu. Introducción a la programación. Tomado de :
https://editorialpatria.com.mx/pdffiles/9786074384154.pdf

 Alexander Vladimirovich. Framework parta juegos de estrategia por turnos de


Android.
http://oa.upm.es/53170/1/TFG_ALEXANDER_VLADIMIROVICH_VOROBIEV.pdf

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