Está en la página 1de 13

Encabezado: Paso 5: Construcción Individual

Paso 5: Construcción Individual

Presentado por

July Estefania Vargas Macias

Dirigido a:

Tutor: Steven Bedoya

Universidad Nacional Abierta Y A Distancia

Escuela De Ciencias Básicas, Tecnología E Ingeniería

Software Para Ingeniería

Grupo: 203036_6

2020
Encabezado: Paso 5: Construcción Individual

PASO 5: CONSTRUCCIÓN INDIVIDUAL

MARCO TEÓRICO (Información para solución del problema planteado)

JUEGO BATALLA NAVAL

También llamado juego de barquitos es un juego de estrategia y de suerte que involucra a dos
participantes. Al comenzar cada jugador posiciona sus barcos en el primer tablero, de forma
secreta, invisible al oponente. Cada uno ocupa, según sus preferencias, una misma cantidad
de casillas, horizontal y/o verticalmente, las que representan sus naves. Ambos participantes
deben ubicar igual número de naves, por lo que es habitual, antes de comenzar, estipular de
común acuerdo la cantidad y el tamaño de las naves que se posicionarán en el tablero.
Una vez todas las naves han sido posicionadas, se inicia una serie de rondas. En cada ronda,
cada jugador en su turno «dispara» hacia la flota de su oponente indicando una posición (las
coordenadas de una casilla), la que registra en el segundo tablero. Si esa posición es ocupada
por parte de un barco contrario, el oponente cantará ¡Averiado! (¡Toque!, ¡Tocado! o
¡Impacto!) si todavía quedan partes del barco (casillas) sin dañar, o ¡Hundido! si con ese
disparo la nave ha quedado totalmente destruida (esto es, si la acertada es la última de las
casillas que conforman la nave que quedaba por acertar). El jugador que ha tocado un barco
en su anterior jugada volverá a disparar hasta que falle. Si la posición indicada no
corresponde a una parte de barco alguno, cantará ¡Agua!

El juego puede terminar con un ganador o en empate:

• Ganador: quien destruya primero todas las naves de su oponente será el vencedor
(como en tantos otros juegos en los que se participa por turnos, en caso de que el
participante que comenzó la partida hunda en su última jugada el último barco de su
oponente que quedaba a flote, el otro participante tiene derecho a una última
posibilidad para alcanzar el empate, a un último disparo que también le permita
terminar de hundir la flota contraria, lo que supondría un empate).
• empate: si bien lo habitual es continuar el juego hasta que haya un ganador, el empate
también puede alcanzarse si, tras haber disparado cada jugador una misma cantidad
de tiros fija y predeterminada (como una variante permitida en el juego), ambos
jugadores han acertado en igual número de casillas contrarias.
Encabezado: Paso 5: Construcción Individual

SENTENCIAS DE CONTROL DE FLUJO

MATLAB

Las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un


programa. Quiere decir, que permite que unas condiciones se lleven a cabo cuando el programador lo
desee, ya sea un número determinado de veces o hasta un cierto error, etc. Las estructuras de control
tienen un único punto de entrada y un único punto de salida, por lo que están estructuradas. Se pueden
clasificar en:

• Estructuras de bifurcación

Se utilizan cuando en el programa se debe decidir en qué situación se tiene que cumplir una
cierta condición. Su estructura básica es el condicional IF. Para cuando se quieren realizar
operaciones cuando no se cumple la condición, se utiliza ELSE. En Matlab se escribe:

Si se quieren incluir más condiciones en caso de la negación inicial se puede utilizar


el ELSEIF de este modo:

Ejemplo:

Por último, si se quiere poner un grupo de acciones para cada uno de los valores de una
expresión, se puede utilizar el SWITCH, de esta manera:
Encabezado: Paso 5: Construcción Individual

• Estructuras repetitivas

Se utilizan cuando hay que repetir más de una vez un grupo de instrucciones. Hay dos tipos
fundamentales:

1. Bucle FOR: Una variable tomará valores desde un número inicial, hasta uno final, con
un determinado paso (que es la distancia entre dos valores). En Matlab, el paso por defecto
es de valor 1, pero se puede cambiar. Cada vez que la variable cambie su valor, se
realizarán las operaciones que se hayan programado después.
El bucle FOR se utiliza cuando se sabe previamente el número de interacciones que se van
a realizar.
Los parámetros iniciales, final y el paso pueden ser variables previamente definidas. El
paso puede ser negativo, siempre que el valor inicial sea mayor que el final.
El bucle FOR se escribe en Matlab del siguiente modo:

Ejemplo:

2. Bucle WHILE: Se da una condición que se tiene que evaluar, que se realizará siempre
que sea verdadera. En el momento en el que la condición sea falsa, cesará. Por tanto, no se
conoce de antemano el número de interacciones a realizar. Las variables utilizadas tienen que
estar inicializadas antes del bucle, que cumplan la condición la primera vez por lo menos y
cambiar de valor en cada iteración dentro del bucle (de lo contrario se producirá un bucle
infinito). En Matlab, se escribe como:
Encabezado: Paso 5: Construcción Individual

Ejemplo:

• Sentencias break continue

Se utiliza para manipular el comportamiento normal de los bucles, ya sean for, if o while, y
así saltarse algunas repeticiones. La sentencia BREAK permite terminar el bucle de golpe.
Al llegar a una instrucción BREAK, el programa sale del bucle y continúa ejecutando el resto
de los comandos. Ejemplo:

La sentencia CONTINUE se utiliza para saltarse alguna iteración dentro de un bucle for o
while, saltándose dentro de la iteración todos los comandos hasta el final, hasta la siguiente
iteración.
Encabezado: Paso 5: Construcción Individual

PSEINT

Las sentencias o estructuras de control de flujo permiten cambiar y controlar la ejecución del
programa. Pueden ser condicionales e iterativas o de repetición.

• Condicional simple (SI-Entonces)

Con la estructura de control condicional si-entonces se evalúa una condición, y dependiendo


del resultado, verdadero o falso, se ejecuta un bloque de instrucciones u otro.

Ejemplo:
Encabezado: Paso 5: Construcción Individual

• Selección múltiple

Con esta estructura también se evalúa una variable, pero se pueden incluir varias opciones,
es decir, se pueden tomar varios caminos con la misma estructura, no únicamente dos, como
con la estructura si-entonces. Cada opción tiene su bloque de instrucciones a ejecutar.

• Bucle o ciclo mientras

Esta estructura de control repetitiva permite que mientras se cumpla una condición, se ejecute
un bloque de instrucciones determinado.
Encabezado: Paso 5: Construcción Individual

• Bucle o ciclo repetir

Esta estructura de control repetitiva es muy parecida a la anterior, pero mientras en la anterior
la condición se evalúa al principio de la estructura, en ésta se hace al final. Aquí se repite un
bloque de instrucciones hasta que se cumple una condición determinada.

• Bucle o ciclo Para

Es otra estructura de control repetitiva pero en este caso la propia estructura inicializa una
variable que se va a usar de contador, además, va sumándole la cantidad paso y por último
incluye el valor final que debe tomar la variable para salir del bucle.
Encabezado: Paso 5: Construcción Individual

LÓGICA DE VECTORES

Un vector es un arreglo unidimensional, es una zona de almacenamiento contiguo, que


contiene una serie de elementos del mismo tipo.

Elementos de un vector.

Acceso a vectores

FORMAS DE INDEXAR LOS ELEMENTOS.

Existen tres formas de indexar los elementos de un vector:

✓ Indexación base-cero (0): en este modo el primer elemento del vector será la
componente cero ('0') del mismo, es decir, tendrá el índice '0'. En consecuencia, si el
vector tiene 'n' componentes la última tendrá como índice el valor 'n-1'.
✓ Indexación base-uno (1): en esta forma de indexación, el primer elemento de la matriz
tiene el índice '1' y el último tiene el índice 'n' (para una matriz de 'n' componentes).
✓ Indexación base-n (n): este es un modo versátil de indexación en la que el índice del
primer elemento puede ser elegido libremente, en algunos lenguajes de programación
Encabezado: Paso 5: Construcción Individual

se permite que los índices puedan ser negativos e incluso de cualquier tipo escalar
(también cadenas de caracteres).

OPERACIÓN DE LECTURA

Implica acceder a los elementos de un vector para introducir datos.

Ejemplo:

MATRICES Y ARREGLOS

Un arreglo es una estructura de datos o más, un espacio de memoria que permite almacenar
una colección de elementos, todos del mismo tipo. Conviene imaginar un arreglo como una
secuencia contigua de celdas o casillas en cada una de las cuales se puede guardar un
elemento de la colección

Como se visualiza en la imagen este arreglo de siete casillas cada una de las cuales se puede
guardar un dato. La dimensión o tamaño es la cantidad de casillas que lo conforman.

Cada una de las casillas de un arreglo tiene asociado un numero que la identifica de manera
única. A este numero se le llama índice o dirección.
Los lenguajes de programación permiten que el programador declare arreglos de cualquier
tipo y prácticamente de cualquier tamaño.

MATLAB

Todas las variables de MATLAB son arreglos multidimensionales, sin importar el tipo de
datos. Una matriz es un arreglo bidimensional. Ejemplo:

Para crear un arreglo con cuatro elementos en una fila única, separe los elementos con una
coma (,) o un espacio.
a = [1 2 3 4]
a = 1×4

1 2 3 4
Encabezado: Paso 5: Construcción Individual

Este tipo de arreglo es un vector fila.


Para crear una matriz con varias filas, separe las filas con punto y coma.
a = [1 2 3; 4 5 6; 7 8 10]
a = 3×3

1 2 3
4 5 6
7 8 10

Otra forma de crear una matriz es usando una función, como ones, zeros o rand. Por ejemplo,
cree un vector columna de ceros de 5 por 1.
z = zeros(5,1)
z = 5×1

0
0
0
0
0
PSEINT
Ejemplo
Encabezado: Paso 5: Construcción Individual

Video apoyo para el desarrollo del juego

Código desarrollado en Pseint

Link: https://www.youtube.com/watch?v=LNAHYhup33s

SECCIONES DE CÓDIGO DE LA PRÁCTICA 2

Primer Elemento

m=input(prompt);
Vmin=input("Indicar valor mínimo para la matriz: ");
Vmax=input("Indicar Valor máximo para la matriz: ");

varValores= randi([Vmin Vmax],m,m);


clc
xn=input("¿Desea ver la matriz creada?(1=si // enter / 0=no: ");
if xn==1
fprintf("Matriz creada.\n\n")
varValores
end
varValores_old= varValores;

Descripción: Para escoger el tamaño del tablero de 8 a 10 filas y columnas. Guardar los
valores para la matriz original.

for i=1:cont
clc
fprintf("Matriz Creada\n\n")
varValores_old
xn=input("Desea modificar el valor de la posición
("+tmp(i,1)+","+tmp(i,2)+"? (1=si/0=no)\n\n");
if xn==1
var=input("Asigne nuevo valor: ");
varValores(tmp(i,1),tmp(i,2))=var;
fprintf("se ha modifiado "+i+" de "+cont+" posiciones \n\n");

Descripción: Donde el usuario puede indicar la casilla (posición) sobre la cual desea
verificar si hay un barco o no y disparar.

fprintf("El "+var+" aparece repetido en las siguientes posiciones:\n\n")


tmp=zeros(2,2);
cont=0;

Descripción: Donde se le puede indicar al usuario la cantidad de disparos hechos y puntos


logrados.
Encabezado: Paso 5: Construcción Individual

REFERENCIAS BIBLIOGRÁFICAS

• Balbi, Daniel (2018). Batalla Naval. Recuperado el 4 de junio de 2020 de:


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

• Wikidot.com(2020). Guía Matlab para “noobs”. Recuperado el 4 de junio de 2020


de: http://guiamatlabnoobs.wikidot.com/estructuras-de-control

• Wikidot.com(2020). Guía Matlab para “noobs”. Recuperado el 4 de junio de 2020:


http://guiamatlabnoobs.wikidot.com/estructuras-de-control

• Terepebernal (2020). Algoritmos en Pseudocodigo con Pseint lo más básico.


Recuperado el 4 de junio de 2020 de:
https://terepebernal.com/blog/pseudocodigo/algoritmos-pseint-lo-mas-
basico/#:~:text=Sentencias%20o%20estructuras%20de%20Control%20de%20Flujo
%20en%20PSeInt,e%20iterativas%20o%20de%20repetici%C3%B3n.

• Blogger (2014). Programación Lógica. Recuperado el 4 de junio de 2020 de:


http://isaproglog.blogspot.com/2014/10/vectores.html

• The MathWorks, Inc.(2020). Matrices y Arreglos. Recuperado el 4 de junio de 2020


de: https://la.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html

• Kathery Correa (2017). Arreglos y Matrices. Recuperado el 4 de junio de 2020 de:


https://es.slideshare.net/KatheryCorreaQuiroz/arreglos-y-matrices-74731081

• Wikipedia (2020). Batalla Naval (juego). Recuperado el 4 de junio de 2020 de:


https://es.wikipedia.org/wiki/Batalla_naval_(juego)#:~:text=Desarrollo%20del%20j
uego,-
Una%20vez%20todas&text=En%20cada%20ronda%2C%20cada%20jugador,Toca
do!%20o%20%C2%A1Impacto!)

• Heiver Cuesta (2012). Matrices con Pseint. Recuperado el 4 de junio de 2020 de:
https://es.scribd.com/doc/98059129/Matrices-con-PseInt