Skip to content
This repository has been archived by the owner on Jul 10, 2019. It is now read-only.
aitorsanchezz edited this page May 21, 2019 · 10 revisions

Welcome to the twQ103-juego-de-laberintos wiki!

JUEGO DE LABERINTOS GRUPO Q103 JAVIER GARCÉS BRAVO AITOR SÁNCHEZ SAN MARTÍN ADRIÁN LÓPEZ BOLAÑOS

OBJETIVO DEL TRABAJO

El trabajo que se ha planteado realizar es un juego de laberintos en el cual el usuario pueda elegir entre diversos niveles de dificultad , niveles del 1 al 5, siendo el 1 nivel de dificultad más fácil y el nivel 5 el nivel de dificultad más dificil. El usuario tendrá la posibilidad de realizar el laberinto cuantas veces quiera y comparar resultados en una tabla de valores con sus mejores puntuaciones.

Para el movimiento del jugador por el laberinto se usará el sistema asdw que irá moviendo un asterisco a lo largo del laberinto y el objetivo final se pondrá con un ‘@’ impreso en pantalla.

FUNCIONALIDADES

El usuario puede seleccionar varios niveles en función de la dificultad del laberinto.

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/men%C3%BA.PNG

En éste enlace puede ver un ejemplo del laberinto nivel 1:

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/LaberintoNivel1.PNG

En éste enlace puede ver un ejemplo del laberinto nivel 5:

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/LaberintoNivel5.PNG

El usuario podrá guardar la información de un laberinto, para continuar o retomar dicha partida posteriormente. El usuario también podrá cargar el último laberinto guardado y continuar con él.

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/CargarLaberinto.PNG

Al usuario se le facilitarán las estadísticas de los laberintos, informándole de cuantas veces se ha jugado en un nivel de laberinto y el número medio de movimientos que se han realizado para completarlo con éxito.

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/EstadisticasLaberintos.PNG

Por último, el usuario podrá salir del programa en el momento que él elija.

GUÍA DE UTILIZACIÓN

En primer lugar aparece el menú principal en el cuál el usuario podrá elegir entre diferentes opciones.

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/men%C3%BA.PNG

Una vez seleccionado un laberinto, el usuario tratará de llevar el asterisco al @ del final en el mínimo de movimientos posibles.

Instrucciones para mover el asterisco: W – Moverse hacia arriba S – Moverse hacia abajo A – Moverse hacia la izquierda D – Moverse hacia la derecha Cuando pulsas una letra, pulsa INTRO a continuación para que el asterisco se mueva.

EXPLICACIÓN SOBRE FUNCIONES IMPLEMENTADAS

En el void main (función principal) declara todas las funciones que utilizaremos y abre el fichero laberintos.txt. de formato lectura . Una vez abierto procede a leer los cinco laberintos que los guarda en una matriz llamada laberinto. En la matriz laberinto , la primera coordenada se refiere al número de laberinto , y la 2 y 3 hacen referencia a la dimensión de cada laberinto.

El laberinto en el fichero laberintos.txt esta formado por almohadillas(#) simulando las paredes y por ‘Z’ simulando espacios. Una vez cargado en memoria las ‘Z’ se sustituyen por espacios.

la función int juego (int numero, int xmax, int ymax, int movimientos,char laberinto[6][40][60]) tiene distintos fragmentos.

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/intjuego.PNG

Dentro de la la función int juego (int numero, int xmax, int ymax, int movimientos,char laberinto[6][40][60]) necesitaremos explicar como se mueve nuestro asterisco a lo largo del laberinto, es decir, que sucede cuando pulsamos por ejemplo la tecla 'a' (movimiento a la izquierda)

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/MovientoA.PNG

La función void estadistica() nos va a ayudar a guardar las estadísticas registradas en el programa. En esta función incluiremos el fichero estadisticas.txt en modo lectura para que le programa pueda acceder a ellas. El juego nos mostrará por pantalla el porcentaje de veces que se ha elegido un determinado nivel y los movimientos medios que hemos necesitado.

La función void intestadisticas(int nivel, int movimientos) la utilizamos para incluir el fichero Estadisticas.txt el cual proporcionará información acerca del nivel de laberinto escogido y el número de movimientos que hemos necesitado para completarlo. A su vez, utilizamos un fichero auxiliar llamado BEstadisticas.txt que almacenará la información de Estadisticas.txt y también las nuevas estadísticas recibidas. Posteriormente le pasará todas las estadísticas actualizadas al completo a Estadisticas.txt.

Los ficheros que hemos usado en el trabajo son de tipo .txt. El fichero laberintos.txt es donde tenemos almacenados los laberintos, cada uno con dimensiones distintas. Abriremos este archivo tipo lectura para , según que laberintos seleccionemos, lo recorra leyéndolo.

El fichero glaberintos.txt es el fichero que usamos para guardar nuestra partida en curso y posteriormente poder cargarla y continuar con ella cuando nos plazca . Para ello abriremos el fichero glaberintos.txt de modo lectura donde está almacenado el laberinto en el que estamos jugando y el número de movimientos que llevábamos hasta que decidimos guardarlo. Esto nos facilita retomar nuestras anteriores partidas. Posteriormente abriremos este mismo fichero en modo escritura para sobreescribir la partida que habíamos guardado y poder continuar con ella sin perder nuestra posición ni nuestros movimientos.

DIAGRAMA DE FLUJO

https://github.com/aigora/twQ103-juego-de-laberintos/blob/master/Images/DiagramaDeFlujo.jpeg

Clone this wiki locally