Sei sulla pagina 1di 18

SOFTWARE AVANZADO PARA INGENIERÍA

CONSTRUCCIÓN COLABORATIVA

ENTREGADO A:
JUAN MONROY

REALIZADO POR:
JESUS DAVID HERAZO

GRUPO: 203037_27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD


ESCUELA DE CIENCIAS BÁSICAS, TECNOLOGÍA E INGENIERÍA
MAYO 2020
INTRODUCCIÓN

En las últimas décadas la humanidad ha avanzado con enormes pasos en el tema de la tecnología

creando diversos dispositivos y aplicaciones que nos facilitan nuestra vida, además de esto, a

medida que pasa el tiempo los dispositivos cada vez son de menor tamaño dando así una mayor

facilidad para transportarlos como es el caso de los computadores portátiles. Sin embargo, una

rama de esta era tecnológica consiste en el mundo de los videojuegos, y es que no solo esto ha

tenido un gran impacto a esta generación donde poco a poco vemos a multitud de personas

desarrollando videojuegos o simplemente jugándolos.

En este informe se presenta un proyecto el cual consiste crear un instrumento virtual utilizando

LabVIEW, este IV consiste en la creación de un videojuego similar a batalla naval, donde el

aplicativo pone de manera aleatoria los barcos en la matriz, y el objetivo del juego será hundir

todos los barcos donde este mismo ira indicando que barcos se hundieron, la puntuación y los

disparos realizados.
ESTUDIANTE LINK VIDEO
JESUS DAVID HERAZO https://youtu.be/ZtX27RKouHk 

PANEL FRONTAL DEL APLICATIVO

Imagen 1
FUNCIONAMIENTO

1. Seleccionar el orden de la matriz: Para ello el usuario deberá seleccionar la cantidad de

filas y columnas con las que quiera comenzar a jugar, para esto deberá activar los

interruptores que están indicados con “FILAS” y “COLUMNAS” según lo desee, ver imagen

Imagen 2

2. Seleccionar los barcos: El usuario deberá indicar que barcos quiere ubicar dentro de la

matriz, dado el caso de que no seleccione ninguno el juego no comenzará, ejemplo

Imagen 3
3. Dar al botón de START: El usuario una vez haya definido el orden de la matriz, deberá

pulsar el botón de “START” para comenzar el juego (cabe aclarar que si el usuario no ha

definido correctamente el orden de la matriz, el juego no comenzará).

Imagen 4

Una vez haya hecho esto, la matriz se actualizará al orden elegido por el usuario y marcará como

hundidos aquellos barcos que el usuario no selecciono:

Imagen 5

4. Disparar: El usuario deberá definir la posición a la que quiere disparar, y posteriormente

pulsar al botón “DISPARAR”, ver imagen 6.


Se mostrará un mensaje que ha iniciado el juego, además que irá sumando o restando la

puntuación según corresponda (le haya dado a un barco o no), y también irá mostrando la

cantidad de disparos realizados hasta el momento.

5. Hundir los barcos: Una vez el usuario haya hundido alguno de los barcos, el aplicativo

mostrará que se ha hundido el barco, ver imagen 7.

Imagen 7
Así mismo lo hará con cada barco que se hunda independientemente de con que barcos haya

decidido jugar o que barco haya hundido, una vez se hayan hundido todos los barcos el juego

mostrara un mensaje: “FIN DEL JUEGO”, ver imagen 7.

6. Rendirse: Si por alguna razón el usuario decide rendirse, el aplicativo marcará el fin del

juego, ver imagen 8.

Imagen 8
CÓDIGO FUENTE

A continuación se irá explicando el código fuente generado en LabVIEW por partes debido a lo

extenso del mismo.

PARTE 1:

En esta primera parte se generó la matriz donde se iba a desarrollar el juego, cabe aclarar que

esta matriz era definida por el usuario mediante operaciones booleanas (encendiendo leds):
Para hacer esta parte se utilizó una teoría de lógica de compuertas donde se implementó un

multiplexor [1], el cual dependiendo de la entrada y de un selector, deja pasar cierta señal (en

este caso el selector serían las salidas booleanas de los indicadores 9 y 10).

Si el usuario selecciona ambos números al mismo tiempo, es decir, si selecciona 8 filas y 9 filas

al mismo tiempo, el juego va a seleccionar el más grande.

El programa no saldrá del ciclo wire hasta que el usuario seleccione correctamente el tamaño de

la matriz, decida que barcos posicionar (al menos 1) y posteriormente presione “START”.

PARTE 2:

Para esta parte se posicionan aleatoriamente los barcos en la matriz.


Como podemos ver en la parte superior se genera la matriz de ceros según el tamaño escogido

por el usuario. Dentro del ciclo wire ingresan los dos valores correspondientes al tamaño de la

matriz, donde se generan dos números aleatorios que van de 1 hasta el número de filas de la

matriz, y el otro va desde 1 hasta el número de columnas de la matriz con el fin de definir una

posición aleatoria dentro de ella para poder posicionar el barco, además se genera un número

aleatorio entre 1 y 4 por fuera del ciclo wire para saber si el barco ira posicionado de izquierda a

derecha, de derecha a izquierda, de abajo arriba o de arriba abajo con respecto a la posición

aleatoria generada, si la posición generada y la orientación generada se salen del rango de la

matriz (por ejemplo que se escoja la posición aleatoria fila 10 columna 10, y la orientación sea

vertical y hacia abajo) en este caso se volverá a generar otra posición al azar hasta que el barco

quede dentro de la matriz.

Una vez salga del ciclo wire, en el ciclo for se irá poniendo con un 1 la posición del barco

seleccionada dejando el resto de la matriz con ceros.

Lo mismo se hace para generar los otros dos barcos, la única diferencia es que hay que tener en

cuenta que no coincidan con la posición de los barcos generados anteriormente, además de que

todo el proceso de los 3 barcos por separado está encerrado con una estructura case, donde solo

se hará si el usuario indico que quiere poner ese barco en especifico


Barco de 4 posiciones:

Barco de 3 posiciones:
PARTE 3:

El programa verifica si donde el usuario disparo hay un barco o no y se marca con otro color.

Podemos ver en la parte izquierda que se verifica si el usuario quiere disparar, el usuario escoge

la posición y hasta que no presione el botón disparar no va a salir del ciclo. Una vez sale de ese

ciclo verificará si en esa posición se encuentra un barco, es decir, si la matriz que contiene la

información en esa posición se encuentra un uno, si esto sucede entonces en la matriz de colores

se mostrará roja, en caso contrario se mostrará azul y se irá almacenando la información y

actualizando a medida que transcurre el juego, además, la matriz inicial será una matriz que tiene

todas sus posiciones en negro.


PARTE 4:

En esta parte del programa se verifica si los barcos han sido hundidos en su totalidad.

Esta parte del circuito se encuentra en el mismo ciclo wire que la anterior parte donde se

verificaba si había un barco o no donde el usuario disparaba.

La información que recibe el ciclo son 6 vectores, los dos primeros contienen la información de

las filas y columnas del primer barco, los siguientes 2 vectores contienen la información de filas

y columnas del segundo barco, y las otras dos contienen la información del tercer barco. Primero

hay que marcar con un 0 en la matriz donde el usuario ha disparado, una vez hecho esto se

verifica si en esa posición había un barco o no, y si todas las posiciones del barco están marcadas

con un 0, quiere decir que el barco se hundió en su totalidad, y se iluminara el led

correspondiente, posteriormente de hace una compuerta AND con la salida de los leds, y si todos

los led están encendidos, quiere decir que el juego ha terminado.


PARTE 5:

En esta parte se muestran los mensajes en pantalla tales como; la puntuación, disparos realizados,

mensaje del fin del juego, exportación de los datos y la opción rendirse

Puntuación:

Se verifica si la posición escogida por el usuario para disparar contiene un barco y luego se le

sumarán 3 puntos, además de que se le sumaran puntos adicionales si hunde un barco completo

Disparos:
Este estará dentro del ciclo wire y cada vez que se repita un ciclo aumentará en uno la cantidad

de disparos.

Fin del juego

Este mensaje se mostrara cuando el botón de rendirse este en 1, o todos los barcos estén

hundidos, por eso se utiliza la compuerta OR.

Rendirse:

Este será el botón de rendirse, cuando este en 1 se saldrá de ambos ciclos y terminará el juego.
Exportación: Se unirán los datos de puntuación e intentos realizados en un vector para poder

ingresarlos a Excel
CONCLUSIÓN:

Podemos evidenciar en la solución de este proyecto que el entorno de desarrollo LabVIEW es

sumamente importante a la hora de simular situaciones de la vida real y sobretodo en el entorno

de un ingeniero electrónico.

Este proyecto transcurrió con total éxito, se desarrolló paso a paso cumpliendo con lo establecido

en la guía de aprendizaje en su totalidad, adquiriendo conocimientos de manera autónoma y de

esta manera dar una solución practica y coherente al problema planteado


REFERENCIAS

[1] Sistemas digitales, principios y aplicaciones. Décima edición Ronald J. Tocci, Neal S.

Widmer, Gregory L. Moss. Editorial Person (pág. 599)

[2] Chacón, R. R. (2005). La instrumentación virtual en la enseñanza de la Ingeniería

Electrónica. Acción Pedagógica. 11(1): 80-89, 2002. Mérida, VE: D - Universidad de los Andes

Venezuela. Pág. 80-86.

[3] Babún, A. L. (2009). Instrumentos virtuales al servicio de la enseñanza - aplicaciones en el

estudio del espectro ensanchado en la carrera de telecomunicaciones. Córdoba, AR: El Cid

Editor | apuntes. Pág. 5-8.

[4] Lajara, V. J. R. (2007). LabVIEW: entorno gráfico de programación. Barcelona, ES:

Marcombo. Capítulo 1. pág. 3-36.

[5] National Instruments Corporation (2015) [Software LabView]. Recuperado

de: https://lumen.ni.com/nicif/esa/acadevallvdl/content.xhtml

[6] Monroy, J. (2018). Fundamentos de programación de instrumentos virtuales. [Archivo de

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

[7] Monroy, J. (2017). Fundamentos de instrumentos virtuales. [Archivo de video] Recuperado

de: http://hdl.handle.net/10596/12742

Potrebbero piacerti anche