Está en la página 1de 24

Paso 4 1

UNIDAD 3. EXPORTAR DATOS Y OPTIMIZACIÓN DE INSTRUMENTOS


VIRTUALES
PASO 4 - CONSTRUCCIÓN COLABORATIVA
DESARROLLAR PRÁCTICA 3, PROPUESTA METODOLÓGICA Y CODIFICAR LA IDEA
SELECCIONADA

TUTOR: JUAN MONROY

ESTUDIANTES:
NICOLAS HERNANDO ALVAREZ DIAZ
FERNEY JESUS COMEZAQUIRA
RONALD GARCIA CARDENAS
SEBASTIAN LEANDRO VARGAS MALAVER

GRUPO: 203037_9

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
CURSO: SOFTWARE AVANZADO PARA INGENIERIA 203037A
BOGOTA, 07 DE MAYO DE 2020
Paso 4 2

TABLA DE CONTENIDO

Tabla de Contenido..........................................................................................................................2
Introducción.....................................................................................................................................3
1. Videos Practica 3.........................................................................................................................4
2. Código Fuente y Capturas de Pantalla del Funcionamiento del Aplicativo................................5
2.1 Algoritmo.......................................................................................................................5
2.2 Capturas de Pantalla.......................................................................................................6
Matriz de coordenadas..........................................................................................................6
Conclusión.....................................................................................................................................14
Referencias Bibliográficas.............................................................................................................15
Paso 4 3

Introducción

El presente documento se desarrolla como evidencia del desarrollo de las actividades


descritas en la guía de actividades y rubrica de evaluación para el paso 4, construcción
colaborativa, así como para el componente practico 3; en este se desarrollan los ejercicios
propuestos en la guía para el desarrollo para el componente practico practica N° 3, lo cual queda
evidenciado en los videos, a los cuales se puede acceder a través de los links de la siguiente
sección.

Se inicia con el desarrollo del VI que dará solución final a la temática planteada desde el
inicio del curso, usando todo lo aprendido durante el desarrollo del mismo.
Paso 4 4

1. Videos Practica 3

A continuación, se relaciona los enlaces de los videos desarrollados correspondientes a la


actividad de la práctica N° 3:

Nombre del estudiante Enlace del video


Nicolas Hernando https://www.youtube.com/watch?v=-0jUecwXMiA
Álvarez
Ferney Jesus https://www.youtube.com/watch?v=1adiCpCuKR8&feature=youtu.be
Comezaquira
Ronald García Cárdenas https://youtu.be/CE9_7g5P5mY
Sebastian Vargas https://youtu.be/6lBtaZkkwkI
Malaver
Paso 4 5

2. Código Fuente y Capturas de Pantalla del Funcionamiento del Aplicativo

2.1 Algoritmo

Figura 1. Algoritmo
Paso 4 6

2.2 Capturas de Pantalla

Matriz de coordenadas

Figura 2. Diagrama Matriz de Coordenadas

 Con la anterior condición, se hace la matriz de coordenadas que cubre la matriz


principal y que sirve para guiar al jugador en el juego.
Paso 4 7

Esta es la interfaz de la matriz del juego

Figura 3. Diagrama Matriz de Jueo.

 Matriz de coordenadas generada con el diagrama de bloques antes mostrado


Inicialización de variables y constantes: es donde se crean coordenadas en x y en y
Paso 4 8

Figura 4. Diagrama matriz de coordenadas y Bloques

 Lo primero que se realizó, fue la inicialización de constantes y variables que se


utilizaron a lo largo de la creación y uso posterior del aplicativo.
 Los de la izquierda corresponden a los utilizados para la generación de la matriz de
coordenadas.
 Las coordenadas se refieren a los bloques en la interfaz que tienen los números de
las columnas y las filas como se puede observar a continuación
Paso 4 9

Figura 5. Diagrama Matriz filas y columnas.

Figura 6. Diagrama Inicializacion Matriz Principal

 En la imagen anterior, se puede apreciar el segundo componente del código, el cual


es la inicialización de la matriz principal y la matriz de comprobación de repetición
(se utilizará más adelante para evitar que se repita disparo).
 Además, que se realiza la comprobación de las dimensiones de la matriz, de manera
que, sus dimensiones sean las establecidas en el reglamento, el cual se puede
observar en la interfaz del programa.
Paso 4 10

Figura 7. Estructura Ford.

 En la imagen anterior se hace uso de dos estructuras for anidados con la finalidad de
inicializar la matriz principal, la idea aquí es que la matriz de led inicie apagada.
 Asimismo, se inicializa el matriz disparo repetido, utilizando otra metodología.

Figura 8. Diagrama dimensione de la Matriz deseada

 Al establecer que dimensiones de la matriz se desea, se debe proceder a presionar el


botón agregar dimensiones, una vez oprimido, se comprueban las dimensiones en
base a los límites, si se halla que está entre los parámetros establecidos, aparecerá un
mensaje comprobación, por si se desea hacer cambio de las dimensiones.

Figura 9. Cuadro de selección

Figura 10. Diagrama de Seleccion


Paso 4 11

 En caso de que, las dimensiones no cumplan los parámetros aparecerá un mensaje


anunciándolo.

Figura 11. Mensaje Informativo

 Se continua con el desarrollo, programando la sección de escoger los barcos.

Figura 12. Selección de Barcos

 En la tercera parte, lo primero que se hizo fue generar un mensaje para que el usuario
sepa lo que debe hacer, en este caso escoger el número de barcos.
 La variable observada permite que el mensaje anterior se presente solo una vez, al entrar
a la sección o al cometer uno de los errores que a continuación se verán.

Figura 13. Cuadro Informativo


Paso 4 12

Figura 14. Diagrama Selección de Restricción de número de Barcos

 Se aprecia en la imagen anterior, en primera instancia las variables que tienen como
nombre “Numero “barco”” estas se utilizaran para poder restringir el número de
barcos, y se hará también la sumatoria de los barcos, para conocer el número total.
De aquí pueden ocurrir 5 casos:

Figura 15. Diagrama restricción de Lanchas

 Que el número de lanchas supere el máximo establecido.


Paso 4 13

Figura 16. Diagrama Restriccion de Portaviones

 Que el número de portaviones supere el máximo establecido.

Figura 17. Diagrama Restriccion Acorazados

 Que el número de acorazados supere el máximo establecido.

Figura 17. Diagrama Indicacion Si no Hay Barcos elegidos


Paso 4 14

 Que no se escoja ningún barco, a lo que generara un mensaje advirtiendo que no está
permitido.

Figura 18. Diagrama Cumplimiento Condiciones

 Por último, si se cumplen los rangos de cada barco, se preguntará, en caso de algún
error humano, si se desea o no cambiar lo escogido.
.

Figura 19. Ubicación Barcos Aleatorios

 Lo primero que se ha de hacer para el posicionamiento aleatorio es condicionar toda


la estructura, con la resta del número total de barcos, con el número de barcos que se
han posicionado.
 Luego de esto, en la siguiente condición se escogerá aleatoriamente las filas y
columnas en que se ubicaran los barcos, teniendo en cuenta la dimensión escogida.
 Asimismo, antes de ello se obtiene una variable que es la resta del número de filas y
columnas -1 para obtener la posición real en la cual se ubicara el barco.
Paso 4 15

Figura 20. Diagrama Posicionamiento de Barco

 Para que el programa evalué si debe posicionar el barco horizontal o verticalmente, se


hará nuevamente uso del random de LabVIEW de 0 a 1, utilizando la paleta de
redondeo, por lo que si el numero da 0 será horizontal, y si da 1 será vertical.
 Luego de ello, empiezan las condiciones para el posicionamiento de cada tipo de
barco, el primero es el porta avión que posee el condicionamiento más sencillo. Vale
destacar, que se establece un orden de como posicionar los barcos, debido, a que la
posición de estos se está guardando en una matriz llamada “Posi_barcos”, la cual,
más adelante con ayuda de otra matriz llamada “barco encontrado” se harán las
debidas relaciones para que por medio de ellas el sistema detecte el hundimiento de
los barcos.

Figura 21. Diagrama Matriz Selección de Importacia

 Como se observan en la imagen, están las dos matrices, las cuales tienen la
misma cantidad de filas que el número total de barcos que puede haber, y
también el largor máximo, el cual pertenece al porta avión.
Paso 4 16

Figura 22. Diagrama Barcos Acorazados

 Para el caso de los barcos acorazados, se tiene las condicionales que permitirán
que la posición en la matriz dependiendo de si hay o no portaviones sea la
misma, para una mayor facilidad en futuras operaciones.
.

Figura 23. Diagrama Lanchas

 De la misma manera ocurre con las lanchas, donde los condicionales son en
mayor cantidad, esto debido a la posición inicial que deben tener que es 4, que
corresponde a la posición en fila en la matriz anteriormente mencionada. Esto se
debe cumplir, haya o no la presencia de los otros dos tipos de barco.
Paso 4 17

Figura 24. Diagrama de condicionales adicionar Barcos

El orden de ejecución del posicionamiento de los barcos es el siguiente:

1. Primero se evaluará si la posición será horizontal o vertical.


2. Luego si la fila o columna generada aleatoriamente es mayor o menor que la distancia
en posiciones total de los barcos, ya que de esto dependerá hacia qué dirección (Si
arriba o abajo, a la derecha o izquierda) empezara a ser dibujado o posicionado el
barco.
3. Luego de ello, se evalúa si en las posiciones a ocupar, no haya ningún otro barco o
parte de este.
4. Lo anterior, se concatena con una variable que contara los espacios, y permitirá
entonces establecer el barco, en caso de que las posiciones se encuentren vacías.
.
Paso 4 18

Figura 25. Proceso Adición de Barcos

 Una vez, se sepa que están vacíos como se comentaba, se proceden a llenarse
tanto la matriz principal (donde de por si al finalizar el posicionamiento aleatorio
ya poseerá todos los barcos activos), como la matriz “posi_barcos” que guardara
solo las posiciones que ocupa el barco, de manera que más adelante se pueda
utilizar para encontrarlos.

Figura. 26. Diagrama Iniciacion Juego


Paso 4 19

 En este proceso empieza el juego, por ello para realizar los disparos debe guiarse
de la cuadricula de posición.

 De igual manera recordar que las filas y columnas empiezan desde la posición 0
y terminan en el número real -1.

 Al realizar el disparo se comprueba que los disparos sean en coordenadas fuera


del rango de las filas y columnas determinadas.

 Al iniciar el juego lo primero que ocurrirá será prenderse un led en la interfaz

Figura 27. Led Indicador

 De igual manera aparecerá un mensaje el cual guía al usuario indicándole la


manera como se debe realizar el disparo.

 Por último se procede a convertir nuevamente las filas y las columnas


restándoles -1 para obtener verdaderas dimensiones.

 En el siguiente diagrama encontramos donde se ubica disparo repetido


comprobamos que las coordenadas no estén repetidas.

 En la columna objetivo comprueba si el disparo dio en el blanco es decir ataco o no a


un barco.
 Luego se guarda el disparo en otra matriz
 De hay se convierten las coordenadas a la posición de las casillas.
 En número de disparos nos genera el contador de disparos.
Paso 4 20

Figura 28. Diagrama Contador de Disparos.

Su funcionamiento es el siguiente

 Al oprimir el botón correspondiente en la interfaz para disparar, lo primero que se


tendrá es que se guardara el disparo en una matriz vacía, la cual servirá a la vez de
verificadora de repetición de disparo, para evitar que el jugador haga disparos
innecesarios.
 Una vez se verifica el contador de disparos empieza a funcionar.
 También se puede observar la primera condición a la evaluación de disparo a un
barco, donde se evalúan las dos matrices grandes, la primera, es la que se llenó en la
sección anterior, que posee todos los barcos, y la segunda es la repetidora, con lo que
se evaluara en primera instancia si el lugar del disparo tiene o no una parte del barco.
 Asimismo, se hacen invisibles los lugares donde se hace el disparo, mostrándose la
matriz principal que posee los barcos guardados.
Paso 4 21

Figura 29. Diagrama indicación acierto o desacierto del disparo

 En este diagrama se evalúa la posición donde se encuentra el barco en la


matriz posición barcos y se guarda en la matriz barco encontrado, de manera
que se pueda conocer cuántos aciertos sobre ese barco se han tenido.
 De igual manera se recorre la matriz que posee la posición de cada barco.
 Se almacena la posición en una nueva matriz asegurándose que sea la misma
posición que la matriz anterior.
 Su funcionamiento es el siguiente
 sirve para confirmar si lo que se golpeó con el disparo fue un barco o fue
agua. En este caso, al golpear un barco se hará un while anidado para recorrer
la matriz que se llenó junto a la principal, esta es “posi_barco”, la cual como
se observa se evaluara en todas las posiciones guardadas que tiene, que es
donde se encuentran las posiciones de los barcos almacenados.
 Mientras se recorre esta matriz, se compara si la posición corresponde con la
posición que tiene el barco, una vez es acertado esa posición se guarda de la
misma manera en la otra matriz con la que se comparara luego, si se hundió o
no el barco.
 Por último, la puntuación aumenta cada vez que se golpea a un barco, si no
ha habido errores va sube de 30 en 30, la máxima puntuación es 870.
 El siguiente diagrama se evalúa la posición donde se encuentra el barco en la
matriz posición barcos y se guarda en la matriz barco encontrado de manera
que se pueda conocer cuántos aciertos sobre ese barco se han tenido.
Paso 4 22

Figura 30. Diagrama Indicacion disparo al agua.

 En caso de golpear agua, se procederá a imprimir que se golpeó agua en la


interfaz y un contador empezara a contar los fallos, cada vez que haya 2, la
puntuación bajará en 1.
 Siempre se estará comprobando, según la cantidad de barcos y tipos que
haya, si alguno ha sido hundido, esto se hace comparando las dos matrices
que se usaron con anterioridad.
 Si el resultado es correcto, habrá una variable que obtendrá el valor 1, para
cada barco hay una, y esto se utilizará luego para saber si se ganó o no.

Figura 31. Diagrama indicación hundimiento del barco


Paso 4 23

Conclusión

Luego de realizar estas diferentes practicas se puede ver y conocer que los comandos vistos
en la sentencia de control con las estructuras repetitivas FOR-WHILE, Estructuras tipo Case y
lógica de vectores. Se inicia con la solución del problema planteado desde el principio del curso,
el cual plantea un reto bastante alto, ya que se debió recurrir a diferentes fuentes de información
para llenar los vacíos que se iban generando con el desarrollo de la actividad. En este documento
se plasma el resultado final de este proceso, con el cual se establece un paso más en la
culminación exitosa del mismo.
Paso 4 24

Referencias Bibliográficas

Juego Battleship
S/A (Sn Fecha). BATTLESHIP Guía de Instrucciones. Recuperado de
https://www.hasbro.com/common/documents/d ad261471c4311ddbd0b0800200c9a66/E196FD
CD50569047F5CE28307A7B3AEB.pdf
Lajara, V. J. R. (2007). LabVIEW: entorno gráfico de programación. Barcelona, ES:
Marcombo. Capítulo 1. Recuperado de:
http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?docID=10204103
Monroy, J. (2017). Tipos de datos. [Archivo de video] Recuperado de:
http://hdl.handle.net/10596/12744
Monroy, J. (2018). Fundamentos de programación de instrumentos virtuales. [Archivo de
video] Recuperado de: http://hdl.handle.net/10596/22785
National Instruments Corporation (2014). [Tipos de datos y Estructuras]. Recuperado de:
http://www.ni.com/academic/students/learnlabview/esa/datatypes.htm
National Instruments Corporation (2014). [Estructuras de ejecución]. Recuperado de:
http://www.ni.com/academic/students/learnlabview/esa/execstructures.htm

También podría gustarte