Hito1-Algoritmos Upc

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 21

TITULO: BOMBERMAN

SUBTITULO: BOMBERMAN VPS

NOMBREDE LA COMPAÑIA: Universidad Peruana de Ciencias Aplicadas

CICLO: 2017-01

SEDE: San Miguel

CARRERA: Ingeniería de Software-

CURSO: Algoritmos y Estructuras de Datos


SECCIÓN: WS31

INTEGRANTES

 Aranda Garay, Angel Piero


 Arauzo Dejo, Shiara
 Mejía , Luis
 Vargas Benites, Victor Sahel

JUNIO DEL 2016


ÍNDICE

1. Introducción

1.1. Descripción del proyecto

1.2. Objetivos

2. Modelado

2.1. Diagrama de clases

2.2. Algoritmos

3. Construcción del Juego

3.1. Implementación de niveles

3.2. Escenarios.

4. Mock-Up del Juego

5. Conclusiones

6. Referencias
1. Introducción
1.1. Descripción del proyecto

Bomberman es un juego de estrategia que tuvo su primera aparición en 1983 bajo el


nombre de una compañía llamada Hudson Soft. El videojuego fue pensado para un
ambiente multijugador en el que su objetivo sería derrotar a los contrincantes en el
menor tiempo posible.
Desde la época de su primera entrega como proyecto ha ido lanzando versiones
actualizadas hasta llegar a la última versión después de la
disolución del equipo de Hudson Soft.

El juego se basa sobre el punto de partida en que nuestro personaje principal escucha un
rumor que trata de la posible idea de convertirse en humano si es que logra escapar del
recinto subterráneo y subir a la superficie. Bomberman escapa a pesar de no ser esta una
acción sencilla de realizar y se ve en la dificil tarea de eliminar a cualquier enemigo que
fuera a perseguirlo.¿Podrá bomberman llegar a la superficie?

Este juego cuenta con 2 modos : campaña o single player y modo multijugador. El
modo de campaña o single player tiene como finalidad eliminar en su totalidad cuantos
enemigos exista y alcanzar la salida para ir avanzando a través de los diferentes niveles,
mientras que el modo multi-jugador tendremos la posiblidad de elegir competir con el
mismo computador o en grupo, donde 2 o más intentan eliminarse entre ellos para ser la
última persona en pie con el objetivo de ser el ganador.
1.2. Objetivos
 Desarrollar una metodología de videojuegos.

 La realización del proyecto nos proporciona la oportunidad de


conocer varias herramientas de Visual Studio y el lenguaje C++,
así como la experiencia del desarrollo de un videojuego
completo.

 Adquirir el pensamiento y las habilidades de un Desarrollador de


videojuegos.

 Implementar y añadir funciones al juego original.

 Desarrollar el proyecto aplicando los distintos algoritmos


aprendidos en el curso de Algoritmos y Estructuras de Datos.

 Usar estructuras de datos aprendidas en clases.

 Realizar el proyecto con una complejidad menor a la de orden


cuadrático(O(n ^2)).

 Construye tipos de datos abstractos y algoritmos teniendo en


cuenta las restricciones impuestas por los recursos
computacionales.

 Reconocimiento de patrones de software.

 Optimizar código de manera eficaz y eficiente.


2. Modelado
2.1. Diagramade Clase
2.2. Algoritmos
-Guardar archivos en .txt: La finalidad de su implementación es para
que el jugador pueda guardar su partida con los distintos atributos que
obtuvo a lo largo del juego como: nueva posición x, nueva posición y,
puntaje obtenido, nuevo número de vidas, nueva cantidad de power ups,
nueva cantidad de bombas,etc. También se tendrá la posibilidad de
guardar la nueva matriz del mapa y el nivel de Con esta función el
personaje podrá abandonar la partida y tendrá sus datos almacenados.
-Cargar archivos de .txt: La finalidad de su implementación es para que
el jugador pueda empezar su partida tal y como lo dejó la última vez.
Este algoritmo trabajará de la mano con el algoritmo de guardar ya que
los atributos guardados serán cargados posteriormente para que el
jugador pueda empezar en la posición xy donde se quedó, con el
número de vidas que se quedó, etc.
- Templates:La finalidad de su implementación es para que así se pueda
optimizar nuestro código, ya que sin su implementación tendríamos que
crear distintas clases para diferentes casos. En cambio, si usamos los
templates, estos aceptarán cualquier tipo de dato. Haciéndose una
generalización y cuando se quiera trabajar con un tipo de dato
específico solo hará falta pasarle como parámetro el tipo de dato
deseado.
-Listas enlazadas: La finalidad de su implementación es para enlazar los
distintos puntajes obtenidos del jugador a lo largo de su estadía en el
juego para que se pueda formar un ranking de sus puntajes y pueda
darse cuenta de su mejoría en el juego. Además, servirá en el modo
multijugador para que se puedan enlazar los atributos de cada jugador,
para que así cada uno se pueda dar cuenta de los resultados que obtuvo
en la partida.
-Algoritmos de ordenamientos: La finalidad de su implementación es
para poder clasificar de forma descendente (mayor a menor) según el
puntaje obtenido, a los jugadores en el modo multijugador para así saber
quién resulto victorioso. También, se utilizará en el modo campaña para
que el jugador sepa en qué partida jugó mejor observando su puntaje
obtenido en cada una de estas que estará ordenado de manera
descendente. que se utilizará el ordenamiento que tenga un tiempo
menor a O(n2) y el que su código de implementación se acople mejor a
las listas enlazadas, ya que estos dos algoritmos trabajaran de la mano.
Cabe añadir que esta funcionalidad se puede implementar usando el
tema de punteros a funciones, restringir la funciones reduce el número
de posibles errores a la hora de ejecución y los incrementa a la hora de
compilar el código.
Además de los algoritmos mencionados anteriormente se trabajará con:
los TDA de clases ya que estas trabajan mejor con archivos .txt,
recursividad ya que algunos algoritmos de ordenamiento utilizan este
método para poder ser implementados. También se tomará en cuenta la
inserción de árboles binarios y el uso del lambda expression. La
utilización de árboles binarios será para la toma de decisiones de los
caminos que podrá tomar los enemigos y el cálculo lambda será usado
con el fin de poder utilizar varias funciones y reducir el código y
mantener el estado.

3. Construcción del Juego

3.1. Implementación de Nivel

Esta versión de bomberman contara con 8 niveles, los cuales se desarrollaran en


distintos mapas. La mecánica consiste en colocar estratégicamente distintas
bombas. Estas explotan en múltiples direcciones luego de un tiempo, para
poder destruir obstáculos o enemigos. El jugador puede recoger diversos
powerups que otorgan beneficios como radios de explosión mayores o la
habilidad de colocar más bombas al mismo tiempo. El jugador pierde si es
atrapado en una explosión, incluyendo una propia, o toca un enemigo. El
jugador podrá pasar a través de los distintos mapas que existen haciendo que
los enemigos mueran con sus bombas y además logrando explotar todos los
obstaculos que se puedan romper.
3.2. Escenarios
3.2.1. Mapa Fútbol
3.2.2. Mapa Hielo
3.2.3. Mapa Subterráne
3.2.4. Mapa Desierto
3.2.5. Mapa Jardín
3.2.6. Mapa de Power Ups
3.2.7. Mapa Forestal
3.2.8. Mapa Rocoso
4. Mock-Up del Juego
5. Conclusiones
 Haciendo este proyecto concluímos como equipo,que es necesario para hacer un
juego el uso de distintos algoritmos con el objetivo de que su notación big(O) sea
lineal, puesto que ahora no habrá un simple ordenamiento sino uno más avanzado
con tiempo de ejecución n*log(n).
 Para hacer un juego óptimo es muy necesario pensar como un desarrollador, con
el fin de adquirir una lógica personalizada.
 Con el desarrollo de este proyecto se logrará un gran entendimiento en la
implementación de los diferentes temas de Algoritmos y Estructura de Datos, en
conjunto, para así lograr el conocimiento necesario para el mundo laboral al cual
nos enfrentaremos.

6. Referencias
 https://www.escueladevideojuegos.net/fases-del-desarrollo-de-videojuegos/

 http://www.miladonintendo.cl/analisis/bomberman-nes-1987/

 https://es.wikipedia.org/wiki/Cota_superior_asint%C3%B3tica

 http://www.segasaturno.com/portal/historia-del-bomberman-
kba109.html

 http://www.meristation.com.mx/bomberman-n-gage/avance-
juego/1590659

También podría gustarte