Paso5_Construccion_203036_21_Jairo Velasquez

Unidad 1. Fundamentación del Lenguaje de Programación y Tratamiento Matemático Paso 5 – Construcción Individual Tutor:

Views 129 Downloads 3 File size 399KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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-hechosimportantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadoracolombia.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-campanalibertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadoracolombia.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-hechosimportantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadoracolombia.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-hechosimportantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadoracolombia.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-hechosimportantes-campana-libertadora-colombia/juego-estrategia-3d-basado-hechos-importantes-campana-libertadoracolombia.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-ydiversion/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-mmomorskoi-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-e2nocturno.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=edslive&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