Paso 6 Batalla naval (1).docx

ARREGLOS Y MANEJOS GRAFICOS PASO 6 Presentador por: John Alberto Grimaldo Grimaldo G. Jeison Yair Aguilera Varela Grup

Views 147 Downloads 4 File size 582KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ARREGLOS Y MANEJOS GRAFICOS

PASO 6

Presentador por: John Alberto Grimaldo Grimaldo G. Jeison Yair Aguilera Varela Grupo: 203036-85

Tutor: JUAN GUILLERMO MUÑOZ

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA ESCUELA DE CIENCIAS BASICAS, TECNOLOGIA E INGENIERIA SOFTWARE PARA INGENIERÍA COLOMBIA 2020

2

ARREGLOS Y MANEJOS GRAFICOS

INTRODUCCION Por medio de este trabajo se logro resolver dudas al implementar las diferentes herramientas que nos ofrece matlab en programacion con arreglos, tipos de graficos, graficos 2d y tambien en la forma en como podemos interactuar utilizando codigos para crear un juego, al mismo tiempo conocer los diferentes campos de la ingenieria a travez de programas desarrollados en sofware de modelamiento matematico.

2

ARREGLOS Y MANEJOS GRAFICOS

Pasos, fases o etapa de la estrategia de aprendizaje a desarrollar Construcción grupal

Desarrollar propuesta metodológica diseñada para realizar el algoritmo de la idea solución seleccionada y el código fuente

Actividades a desarrollar Actividades colaborativas: Releer el problema a resolver y con base en la idea seleccionada, la información recopilada, las secciones de código de la práctica 2 seleccionados y la propuesta metodológica planteada, diseñar:



El algoritmo que dé solución al problema planteado en el curso (diagrama de flujo o pseudocódigo) Desarrollar el código fuente en Matlab o Scilab, que dé solución al problema

planteado en el curso

2

ARREGLOS Y MANEJOS GRAFICOS

Codigo en la construccion del juego clc; porta_aviones_uno=5; porta_aviones_dos=5; %Declaramos la cantidad de variables de los porta-aviones de los jugadores %uno y dos sabiendo que son 5 acorazado_uno=4; acorazado_dos=4; %Declaramos la cantidad de variables de los acorazados de los jugadores %uno y dos sabiendo que son 4 lancha_uno=3; lancha_dos=3; %Declaramos la cantidad de variables de las lanchas de los jugadores %uno y dos sabiendo que son 3 b=0; c=0; puntaje_uno=0; puntaje_dos=0; turno=1; tiro_uno=0; tiro_dos=0; a=input('tamaño del campo \n1.10x10\n2.8x8\n3.10x8\n4.8x10\nDigite su opcion->'); if a==1 %si el usuario da opcion uno en las dimensiones me crea una matriz de campo de batalla 10*10 b=10; c=10; else if a==2%si el usuario da opcion uno en las dimensiones me crea una matriz de campo de batalla 8*8 b=8; c=8; else if a==3%si el usuario da opcion uno en las dimensiones me crea una matriz de campo de batalla 10*8 b=10; c=8; else if a==4%si el usuario da opcion uno en las dimensiones me crea una matriz de campo de batalla 8*10 b=8;

2

ARREGLOS Y MANEJOS GRAFICOS c=10; end end end end campojugador_uno=configuracion('ajustes jugador 1 ',b,c); campojugador_dos=configuracion('ajustes jugador 2',b,c); %creamos una funcion y la llamamos configuracion para generar el campo %vertical o horizontal segun como lo decidan los jugadores z=1; while z==1 clc; if turno==1 disp('pantalla jugador uno'); fprintf('Puntos :%d \n', puntaje_uno); fprintf('cantidad de tiros realizados :%d \n', tiro_uno); imprimir_tablero( campojugador_uno,b,c); imprimir_hundido( acorazado_uno,lancha_uno,porta_aviones_uno); % despues de que decidamos el tipo de tablero en esta parte hemos % hecho que nos imprima el campo de juego los puntos, los tiros % hechos y que nos diga el campo de batalla del jugador op=input(' \n1.Disparar\n2.Retirarse\nDigite su opcion->'); if op==1 %se crean dos opciones en las cuales le decimos al usuario si %desea rendirse o si desea disparar si toma la opcion 1 de %disparar me ejecute lo siguiente fila=input('\nDigite fila->'); columna=input('\nDigite columna->'); animar_tiro(campojugador_dos,b,c,fila,columna); if campojugador_dos(fila,columna)==65 puntaje_uno=puntaje_uno+2; campojugador_dos(fila,columna)=88; acorazado_dos=acorazado_dos-1 else if campojugador_dos(fila,columna)==76 puntaje_uno=puntaje_uno+1; campojugador_dos(fila,columna)=88; lancha_dos=lancha_dos-1; else if campojugador_dos(fila,columna)==80 puntaje_uno=puntaje_uno+3; campojugador_dos(fila,columna)=88; porta_aviones_dos=porta_aviones_dos-1; else if campojugador_dos(fila,columna)~=88 campojugador_uno(fila,columna)=79; end%para que pase por toda la matriz hasta que encuentra la fila y la columna seleccionada

2

ARREGLOS Y MANEJOS GRAFICOS end end end else if op==2 z=0; puntaje_uno=-1; end end turno=2; tiro_uno=tiro_uno+1; else if turno==2 %luego hacemos que me imprima los puntos el campo de juego y los tiros hechos disp('pantalla Jugador dos'); fprintf('Puntos:%d \n', puntaje_dos); fprintf('cantidad Tiros realizados:%d \n', tiro_dos); imprimir_tablero( campojugador_dos,b,c); if acorazado_dos==0 disp('Acorazado destruido'); end %cuando el acorazado este en 0 el acorazado esta destruido if porta_aviones_dos==0 disp('Porta aviones destruido'); end%cuando el porta aviones este en 0 el porta aviones esta destruido if lancha_dos==0 disp('Lacha destruida'); end%cuando la lancha este en 0 la lancha esta destruida % y ejecutamos el modo de disparo y modo de rendirse de el jugador dos si % el judador selecciona 1 va a disparar y ejecuta la siguiente % instruccion que me pregunte la fila y la columna en la cual deseo % disparar op=input(' \n1.Disparar\n2.Rentirarse\nDigite su opcion->'); if op==1 fila=input('\nDigite fila->'); columna=input('\nDigite columna->'); animar_tiro(campojugador_uno,b,c,fila,columna); if campojugador_uno(fila,columna)==65 puntaje_dos=puntaje_dos+2; campojugador_uno(fila,columna)=88; acorazado_uno=acorazado_uno-1 else if campojugador_uno(fila,columna)==76 puntaje_dos=puntaje_dos+1; campojugador_uno(fila,columna)=88; lancha_uno=lancha_uno-1; else if campojugador_uno(fila,columna)==80 puntaje_dos=puntaje_dos+3; campojugador_uno(fila,columna)=88;

2

ARREGLOS Y MANEJOS GRAFICOS porta_aviones_uno=porta_aviones_uno-1; else if campojugador_uno(fila,columna)~=88 campojugador_uno(fila,columna)=79; end % luego de que el usuario escoja la fila y la columna la se end%recorrera toda la matriz del campo hasta que encuentre la fila y la columna end end else if op==2 z=0; puntaje_uno=-1; end end turno=1; tiro_dos=tiro_dos+1; end end end clc %en esta parte iniciamos a imprimir los resultados dados haciendo una comparacion %entre los resultados obtenidas de cada uno de los jugadores tiros realizados barcos hundidos %y le pido al programa que me imprima el jugador que saco mas puntaje para que ese sea el campeon if puntaje_uno>puntaje_dos disp('congratulations jugador uno'); fprintf('Tiros ejecutados:%d \n', tiro_uno); disp('Barcos hundidos propios:'); imprimir_hundido( acorazado_uno,lancha_uno,porta_aviones_uno); disp('Barcos hundidos del rival:'); imprimir_hundido( acorazado_dos,lancha_dos,porta_aviones_dos); else if puntaje_dos>puntaje_uno disp('congratulations jugador dos'); fprintf('Tiros ejecutados :%d \n', tiro_dos); disp('Barcos hundidos propios:'); imprimir_hundido( acorazado_dos,lancha_dos,porta_aviones_dos); disp('Barcos hundidos del rival:'); imprimir_hundido( acorazado_uno,lancha_uno,porta_aviones_uno); else disp('Empatados'); disp('Jugador uno'); fprintf('Tiros ejecutados :%d \n', tiro_uno);

2

ARREGLOS Y MANEJOS GRAFICOS disp('Barcos hundidos propios:'); imprimir_hundido( acorazado_uno,lancha_uno,porta_aviones_uno); disp('Jugador dos'); fprintf('Tiros ejecutados:%d \n', tiro_dos); disp('Barcos hundidos propios:'); imprimir_hundido( acorazado_dos,lancha_dos,porta_aviones_dos); end end function [tablero]=configuracion(jugador,f,c) for fila=1:f for columna=1:c tablero(fila,columna)=46; tablero(fila,columna)=46; end end clc; %creamos la funcion configuracion para que me realice el campo de %batalla de manera que los ususarios hayan escogido disp(jugador); h=input('1.Horizontal\n2.Vertical\nseleccion orientacion de los barcos->'); if h==1 for b=4:8 tablero(2,b)=80; if b>4 tablero(4,b)=65; end if b>5 tablero(6,b)=76; end end else if h==2 for b=4:8 tablero(b,2)=80; if b>4 tablero(b,4)=65; end if b>5 tablero(b,6)=76; end end end end function imprimir_tablero( tablero,f,c) %con esta funcion creamos la matriz para el campo de batalla

2

ARREGLOS Y MANEJOS GRAFICOS cadena=''; for fila=1:f for columna=1:c cadena = strcat(cadena,char(tablero(fila,columna)),{' '}); end disp(char(cadena)); cadena = strcat({''},{''}); end function imprimir_hundido( acorazado,lancha,porta_aviones) if acorazado==0 disp('Acorazado destruido'); end if porta_aviones==0 disp('Porta aviones destruido'); end if lancha==0 disp('Lancha destruida'); end %con esta funcion lo que afirmamos es que cuando alguno de los barcos %ya sea el porta aviones o el acorazado o la lancha llegue a cero %diremos que esta destruido function animar_tiro(tablero,fila,columna,f,c) cadena=''; row=fila; contenido=tablero(f,c); while row >= f clc tablero(row,c)=94; imprimir_tablero( tablero,fila,columna) pause(0.4); row=row-1; end clc if contenido==65 tablero(f,c)=88; imprimir_tablero(tablero,fila,columna) pause(2); clc disp('Has impactado un acorazado'); else if contenido==76 tablero(f,c)=88; imprimir_tablero( tablero,fila,columna)

2

ARREGLOS Y MANEJOS GRAFICOS pause(2); clc disp('Has impactado a una lancha'); else if contenido==80 tablero(f,c)=88; imprimir_tablero( tablero,fila,columna) pause(2); clc disp('Has impactado un porta aviones'); else if contenido~=88 tablero(f,c)=79; imprimir_tablero( tablero,fila,columna) pause(2); clc disp('Has impactado el agua'); end end end end pause(1.5); Capturas de pantalla

Iniciamos el programa y damos a escoger al usuario las dimensiones del campo de batalla

2

ARREGLOS Y MANEJOS GRAFICOS

Damos a escoger a los usuarios el tipo de campo de batalla si horizontal o vertical

Acá nos imprime el campo de juego con los cinco barcos porta-aviones los 4 acorazados y las 3 lanchas Con las opciones de disparo o de rendirse

2

ARREGLOS Y MANEJOS GRAFICOS

Acá vemos como le apuntamos al porta-aviones de la (2,4)

Aca vemos como destruimos la lancha del jugador 1 y vemos que nos sale lancha destruida

2

ARREGLOS Y MANEJOS GRAFICOS

Aca vemos cuando nos rendimos nos aparecen lo puntos, el jugador ganador, los barcos destruidos del rival y propios ademas los tipos de barcos destruidos

2

ARREGLOS Y MANEJOS GRAFICOS

Conclusiones Podemos concluir que esta herramienta Matlab es muy amplia al momento de interactuar con sus números de comandos, con los cuales podemos realizar diferentes funciones. Cada vez que hay un nuevo ejercicio aprendemos mas de cómo interpretar sus códigos.m y a modelar de una manera practica y clara a la hora de programar.

2

ARREGLOS Y MANEJOS GRAFICOS

Referencias

Circuit, L., 2020. Bucle While Para Repetir Cuando La Condición Es Verdadera MATLAB While- Mathworks América Latina. [online] La.mathworks.com. Available at: [Accessed 5 May 2020].

sz1, s. (2020). Logical 1 (true) - MATLAB true- MathWorks América Latina. Retrieved 5 May 2020, from https://la.mathworks.com/help/matlab/ref/true.html

Properties, A., & Properties, N. (2020). Especificar las etiquetas y los valores de las marcas del eje- MATLAB & Simulink- MathWorks América Latina. Retrieved 5 May 2020, from https://la.mathworks.com/help/matlab/creating_plots/change-tick-marks-andtick-labels-of-graph-1.html

2