Informe final de programacion

44
Universidad Central del Ecuador Modificación del juego “Snake” UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA PROGRAMACION II TEMA: “MODIFICACIÓN DE UN JUEGO EN JAVA” TUTOR: VLADIMIR LUCERO Realizado por: Cacuango José Conlago Danny Criollo Tatiana Gallegos David Otuna Cristofer Quito – Ecuador -1-

Transcript of Informe final de programacion

Page 1: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA

PROGRAMACION II

TEMA:

“MODIFICACIÓN DE UN JUEGO EN JAVA”

TUTOR:

VLADIMIR LUCERO

Realizado por:

Cacuango José Conlago Danny

Criollo TatianaGallegos DavidOtuna Cristofer

Quito – Ecuador

2 015

-1-

Page 2: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

CONTENIDO

AGRADECIMIENTO............................................................................................................3

RESUMEN..............................................................................................................................4

ABSTRACT............................................................................................................................5

INTRODUCCIÓN..................................................................................................................6

1. PRESENTACIÓN DEL PROBLEMA...............................................................................7

1.1. Planteamiento del problema.....................................................................................7

1.2. Formulación del problema..........................................................................................7

1.3. Objetivos del proyecto.................................................................................................8

1.3.1. Objetivo general....................................................................................................8

1.3.2. Objetivos específicos............................................................................................8

2. PROPUESTA......................................................................................................................9

2.1. Descripción del programa para grabar el proceso de modificación del juego Snake..9

2.2. Descripción del juego a modificar (Snake)...............................................................10

2.3. Niveles de Snake.......................................................................................................11

2.4. Estado actual..............................................................................................................13

2.5. Lo que se desea cambiar............................................................................................13

3. CAMBIOS REALIZADOS.............................................................................................19

4. CONCLUSIONES...........................................................................................................29

5. RECOMENDACIONES..................................................................................................29

REFERENCIAS BIBLIOGRÁFICAS..................................................................................30

ANEXOS..............................................................................................................................31

-2-

Page 3: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

AGRADECIMIENTO

Deseamos aprovechar estas líneas para agradecer el apoyo de todas las personas que, en mayor o menor grado, han puesto su aporte para que este trabajo llegue a su esperado término.

Al docente encargado de la asignatura de Programación II, por su tiempo en la revisión de este trabajo, los aportes que ayudaron a mejorarlo y a su disposición. Además al encargado de publicar el juego Snake, Andrés Yedith, mismo en el cual nos basamos para realizar el presente trabajo.

A los compañeros y amigos, producto de la convivencia universitaria, que ayudaron a la esperada terminación de este proyecto.

-3-

Page 4: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

RESUMEN

MODIFICACION DE UN JUEGO EN JAVA

El presente trabajo muestra a un grupo de estudiantes de pregrado, en la asignatura de

Programación II, realizando algunas modificaciones y mejoramientos de un juego llamado

Snake, dentro de la Programación Orientada a Objetos, de manera que se pueda entender

cómo se aplicó los conocimientos del lenguaje de programación de Java, en particular en el

entorno de desarrollo de NetBeans.

-4-

Page 5: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

ABSTRACT

CHANGE A GAME IN JAVA

The present work shows a group of undergraduates in the course of Programming II,

making some modifications and improvements of a game called Snake, within the OOP, so

you can understand how they applied the knowledge of Java programming language,

particularly in the NetBeans development environment.

-5-

Page 6: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

INTRODUCCIÓN

Antes de adentrarnos en la programación orientada a objetos debemos tener una idea acerca

de lo que trata por lo cual se dará una breve introducción. Actualmente una de las áreas más

importantes en la industria y en el ámbito académico es la orientación a objetos, la

orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo

y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y

preocupaciones que han existido desde el comienzo en el desarrollo de software; la falta de

portabilidad del código y reusabilidad, códigos que son difíciles de modificar, ciclos de

desarrollos largos y técnicas de codificación no intuitivas.

Un lenguaje orientado a objetos responde a estos problemas, por lo cual tiene tres

características básicas: debe estar basado en objetos, basado en clases y capaz de tener

herencia de clases. El elemento fundamental de la (POO) es, como su nombre lo indica el

objeto, se puede definir un objeto como un conjunto complejo de datos y programas que

poseen estructura y forman parte de una organización.

Ya establecida una idea de lo que se trata la POO en el presente proyecto a la hora de

modificar el algoritmo del juego, se empleará un código de manera que al final, tomando

como guía el código original de dicho programa, se pueda hacer una mejora en cualquier

lenguaje que permita la POO. En este caso en particular se utilizará al final el lenguaje de

programación en Java para explicar el proceso de programación.

-6-

Page 7: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

CAPÍTULO 1

PRESENTACIÓN DEL PROBLEMA

1.1. Planteamiento del problema

La programación desempeña un papel de elevada importancia en la informática, también en

la educación intelectual de todo programador y, como toda disciplina, presenta un sinfín de

problemas que por sí mismos, suponen un desafío en el avance de la misma. Por lo cual

requiere de cualidades indispensables como la lógica, el rigor, la abstracción, la

formalización y el orden, las cuales ayudan a discernir los conceptos e ideas.

Durante los últimos años se han propuesto varios modelos y técnicas para lograr que los

programadores mejoren su proceso cognitivo en esta área, para que la enseñanza se vuelva

más agradable y adquiera cada día más seguidores.

1.2. Formulación del problema

Desde siempre, la observación y el modelamiento han sido fuentes primarias del avance

informático. Un programador debe entender lo que realiza, por tanto una resolución

metódica y comprensible de afirmaciones es necesaria para la correcta creación y ejecución

de algún programa.

-7-

Page 8: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

1.3. Objetivos del proyecto

1.3.1. Objetivo general

Explicar paso a paso, sin omitir detalles, el proceso para la modificación de un juego

utilizando las técnicas de la Programación Orientada a Objetos (POO). Estos mismos pasos

podrían utilizarse para la modificación de cualquier programa.

1.3.2. Objetivos específicos

Utilizar los conocimientos obtenidos en clase para la modificación del juego Snake.

Implementar códigos para mejorar la presentación y versatilidad del juego al

momento de ejecutarlo.

Obtener nuevos conceptos acerca de programación de POO, a través de la

investigación personal y grupal para mejorar el juego.

Hacer un video que nos permita mostrar toda la modificación que logramos en el

juego.

-8-

Page 9: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

CAPÍTULO 2

PROPUESTA

Este tema será de gran utilidad para el principiante en POO, pues se irá explicando todo el

proceso paso a paso. Quizás para alguien experto no sea necesario dar tantos detalles, pero

para el que se inicia en la POO será muy útil. Esa misma metodología le servirá para poder

modificar no solo juegos, sino cualquier tipo de programa orientado a objetos, sin importar

el lenguaje que se utilice para ello.

2.1. Descripción del programa para grabar el proceso de modificación del juego

Snake

En el presente trabajo se utilizará el programa CAMTASIA STUDIO porque es un software

que nos permite construir videos de forma rápida, su edición es sencilla pero atractiva a la

vista, tomar fotos de la pantalla hasta grabación de la pantalla y manejo de contenido.

Además la reproducción de archivos en cualquier tamaño, posee una buena precisión para

la captura de movimiento de pantalla.

Puede ser muy útil para apoyar los procesos de aprendizaje electrónico porque permite

grabar en video cualquier acción u operación que muestre la pantalla, lo cual permite hacer

un seguimiento continuo de actividades. Las aplicaciones que se realicen con este programa

pueden ser integrados a otros recursos de la web 2.0 como los blogs.

2.2. Descripción del juego a modificar (Snake)

Antes de que comencemos a programar, lo primero es hacer una descripción lo más

detallada posible de lo que se quiere lograr. Un error muy frecuente entre los

programadores, incluso no principiantes, es el de lanzarse de inmediato a escribir

instrucciones en el lenguaje que se elija para comenzar a crear el programa deseado (en este

caso el juego), sin primero haberlo planificado. Lo correcto es partir de lo que se desea

lograr, sin importar aún en este punto el cómo lograrlo. Eso nos permitirá, realizar el

-9-

Page 10: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

modelado del problema, mediante la creación de una clase, saber exactamente qué

propiedades y métodos incluir en ella; de lo contrario, corremos el riesgo de perdernos en

improvisaciones que nos desvíen de nuestro propósito inicial o que incluso nos impidan

llevarlo al término esperado.

Así pues, describamos en lenguaje natural, lo más detalladamente posible, pero sin pensar

aún en cómo lograrlo, lo que pretendemos hacer.

Vamos a analizar lo que tenemos del juego y, a lo que vamos a llegar para tener su

mejoramiento y hacerle más entretenido. Por esto en cada nivel se va a presentar su estado

actual y lo que se va a modificar.

-10-

Page 11: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

2.3. Niveles de Snake

-11-

Page 12: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

-12-

Page 13: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

2.4. Estado actual

Este nivel se toma como referencia para indicar que; la figura de color amarillo es Snake, también que cada punto AZUL es un punto positivo que al recogerlo Snake aumenta su tamaño, y cada punto ROJO es un punto negativo que al recogerlo, al tener contacto con el borde (Columna) o al tocarse con sí mismo termina el juego. Snake al recoger un punto azul va creciendo tres veces su tamaño.

2.5. Lo que se desea cambiar

Cada vez que recoja un punto AZUL vaya creciendo 1x1

-13-

Page 14: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Su velocidad vaya cambiando.

--

Pondremos un poco más de columnas que puedan dificultar un poco.

-14-

Page 15: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

-

Pondremos más cuadrados ROJOS en partes que sean fáciles de pasar

-15-

Page 16: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Aumentaremos cuadrados AZULES.

Cada vez que recoja puntos negativos o tenga contacto con sí mismo saldrá un mensaje diciendo “Fin del juego”.

-16-

Page 17: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Si llega a este nivel salga un mensaje que diga “FELICIDADES VAS BIEN”.

Según la dificultad, los colores en cada nivel irán cambiando.

-17-

Page 18: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Incorporar sonido de fondo al juego.

CAPITULO 3

-18-

Page 19: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

CAMBIOS REALIZADOS

Creamos un JFrame, en el cual creamos un Label e insertamos una imagen de fondo para el menú, dentro de este menú añadimos seis opciones que responderán a una orden al hacer clic.

Este cambio en el código nos permitió controlar el crecimiento de Snake.

Al hacer clic en la primera opción se nos desplegó otro menú que contiene el nivel de dificultad del juego.

-19-

Cada opción posee una línea de código, las cuales poseen un método que llama a los otros menús al hacer clic

Esta línea de código es la que controla el crecimiento de Snake

Al cambiarlo controlaremos que Snake crezca de 1 en 1 y no de 3 en 3.

Page 20: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Al terminar el juego en cada nivel de dificultad, aparece una ventana con el mensaje” Buen trabajo has terminado el juego en modo (nivel de dificultad)”.

-20-

Al aumentar esta línea de código, creamos una nueva opción en la barra de menú, en la cual podemos escoger la velocidad de Snake

Page 21: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Al chocar con algún obstáculo aparece una ventana con el mensaje “Te quedan (número de vidas)”

-21-

Este código nos permite insertar una ventana con un mensaje “Buen trabajo has terminado el juego en modo”

Este código nos permite insertar una ventana con un mensaje “Te quedan x vidas”

Page 22: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Cuando se terminen las tres vidas que otorga el juego al inicio, aparecerá una imagen con el mensaje “Fin del Juego”, esta fue creada en un Label dentro de un JFrame, que al hacer clic nos regresará al menú principal.

-22-

Este código es el que permite que el juego termine y vuelva a reiniciarse

Con esta línea de código mostramos un mensaje que informa que se terminó el juego

Page 23: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Dentro del menú principal creamos una opción, la cual es un modo de juego diferente llamado “Modo Supervivencia”, siendo su principal objetivo el de recolectar tantos puntos como sea posible.

Al perder en el modo supervivencia aparecerá una ventana con el mensaje “Tu puntuación fue de “,después de esto volverá al menú principal.

-23-

Con esto hemos creado un nuevo modo de juego, el cual es

un método que recibe instrucciones de no terminar

hasta que toque puntos establecidos

La función de este código, es: Cada vez que toque las paredes JOptionPane nos retorne un mensaje.

Este método también llamará a “puntuación” la cual aparecerá incluida en el mensaje.

Page 24: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

En el menú principal se encuentra la opción “Selección de música”. Dentro de esta opción aparece otro menú con varias opciones, las cuales permitirán escoger un sonido de fondo para el juego.

-24-

La función de este código, es llamar a otro menú, estos a su vez llamarán a la clase música, que devolverá el sonido.

Page 25: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

-25-

Este método es el que da inicio al juego, aquí se introducirá el código para el sonido.

Primero se ha importado las librerías mostradas, después se introdujo el siguiente código, además se ha creado una variable tipo String con el nombre “sonido” para luego darle la dirección del audio con el formato wav y colocaremos el resto de código que llamara al audio en nuestro juego por ultimo en la clase principal

Page 26: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

En el menú principal se encuentra una opción llamada “Instrucciones”. Esta opción permitirá dar al jugador una instrucción acerca de cómo jugar y cuáles son las reglas.

En el menú aparece una opción llamada “ Acerca de”, dentro de esta opción se encuentra el nombre del grupo que modificó el juego y de los integrantes.

-26-

La función de este código, es: mostrar varias ventanas en las cuales se encuentran las instrucciones.

La función de este código, es que aparezca una imagen que contiene texto, este método permite mostrar letra por letra el texto

Page 27: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Con este cambio en el código hemos podido modificar el sentido de desplazamiento de Snake.

Hemos modificado uno de los niveles para aumentar columnas, puntos negativos y puntos positivos aumentando la dificultad

-27-

Al crear esta línea de código controlamos el sentido de desplazamiento de Snake en el nivel 8, (Puede ser cualquier nivel).

Se ha modificado uno de los niveles, simplemente aumentando símbolos para incrementar la dificultad del juego

Page 28: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

-28-

Page 29: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

4. CONCLUSIONES

Debido a la gran cantidad de código que se utilizaría y además que esto podría confundir al programador o al principiante en la POO, se ha decidido que lo mejor será no cambiar los colores en cada nivel.

Ya que el código del juego que decidimos modificar no presenta las características necesarias, no se ha podido adjuntar imágenes de fondo, debido a que la gráfica del juego está creada en una matriz, que únicamente indica las posiciones de cuadrados.

Vemos que se ha podido cumplir la mayoría de los cambios propuestos y que para modificarlo no hizo falta tener una desmedida capacidad para la programación, sino más bien una atenta concentración.

5. RECOMENDACIONES

Se puede recomendar que el programador siga acumulando nuevas ideas y más información acerca de la POO, porque es muy útil, no solo para crear o modificar juegos, sino también para crear e innovar nuevos y prácticos softwares que contribuyan a la colectividad.

La programación es una materia que puede ser altamente sugestiva, para el que le encuentre interés, una recomendación útil sería buscar el lado más atrayente de esta materia para que no parezca atestada de problemas y dificultades.

Lo más importante a la hora de programar es el interés, sin esto sentiremos claramente la monotonía y el cansancio visual de tener que leer varias líneas de código que para el principiante solo significarían palabras poco claras y muy confusas.

-29-

Page 30: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

REFERENCIAS BIBLIOGRÁFICAS

ANDRES2288,(2011):Curso de Programación Java Developer Free Courses Online, recuperado de http://javayotros.blogspot.com/2013/01/codigo-juego-de-culebrita-o-snake-echo.html, el 12 de enero de 2015.

Yedith, A. (2013): juego de snake ó culebrita echo en java más el código de la aplicación, recuperado de https://www.youtube.com/watch?v=6IQ-T4TJzyw, el 12 de enero de 2015.

Softonic (1997): Camtasia Studio, recuperado de http://camtasia-studio.softonic.com/, el 11 de febrero de 2015.

Azpitarte R., Jordá P., Devesa J., Miedes E., Ruiz M., Torres F.,(2009) : Introducción a la Programación Orientada a Objetos con Java, Departamentos de sistemas informáticos y computación, Universidad Politécnica de Valencia. Marzo 2009.

-30-

Page 31: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

ANEXOS

Imagen Nro.1, Canal de you tube donde se consiguió la guía del juego. Fuente: https://www.youtube.com/watch?v=6IQ-T4TJzyw

-31-

Page 32: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Imagen Nro.2, Pagina donde se consiguió el código juego. Fuente: http://javayotros.blogspot.com/2013/01/codigo-juego-de-culebrita-o-snake-echo.html

-32-

Page 33: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Imagen Nro.3, Pagina donde se consiguió el código juego. Fuente: http://javayotros.blogspot.com/2013/01/codigo-juego-de-culebrita-o-snake-echo.html

-33-

Page 34: Informe final de programacion

Universidad Central del Ecuador Modificación del juego “Snake”

Imagen Nro.4, Pagina donde se consiguió el software para grabar todo el proceso de cambio. Fuente: http://camtasia-studio.softonic.com/

-34-