Closed oscarperpinan closed 2 years ago
Nuestro juego consiste en una oca, puedes jugar tanto en pareja como individualmente. Para llegar al final del tablero se deberán responder ciertas preguntas, por lo tanto, estate preparado para cualquier cosa. ¿Serás capaz de responder a todo correctamente y alzarte como vencedor?
Nuestro principal objetivo es entretener, además de que los que deseen jugar aprenderán sobre cultura general o refrescarán sus conocimientos sobre los distintos temas entre los cuales se pueden elegir. También contamos con distintos tableros, (diminuto, normalito y grandote) dependiendo del tiempo que los usuarios quieran estar jugando. A nivel de programación nuestros objetivos son:
Crear un menú de opciones que permita: A-visualizar las reglas del juego; B-iniciar el juego; C-salir del juego. Para la segunda opción (B) el programa pregunta al usuario cuántos jugadores participarán en el juego (1 o 2). A continuación, solicita al usuario los nombres de ambos jugadores (o el nombre, si se trata de uno solo); en el caso de que sean dos jugadores, éstos tiran el dado y el que saque la mayor puntuación empezará el juego, después el programa pide la elección del tamaño del tablero (tres posibilidades: pequeño, mediano, y grande). Por último, la elección de la temática (literatura y arte, geografía e historia, y entretenimiento). Ahora sí, ¡Comienza el juego!
Se utilizarán seis ficheros (archivo.txt) de lectura, tres de ellos con las preguntas de cada temática (hay 24 de cada una), y otros tres para sus correspondientes respuestas.
Se describen distintas funciones: para el banner, menú de opciones, tablero, dados, y para las preguntas.
Utilización de vectores de estructuras para agrupar los jugadores (su avatar, es decir, nombre), y otra estructura para las respuestas a las preguntas.
Uso de un contador de puntos para que el usuario sepa en que casilla del tablero se encuentra a lo largo de la partida.
Como se puede apreciar en el flujograma nada más entrar en el juego te da a elegir entre dos opciones, ver las instrucciones del juego o iniciarlo. Si elegimos la primera opción aparecerán las reglas del juego y después volverá a realizarte la misma pregunta. En caso de elegir la segunda opción te dará a elegir entre seleccionar la opción de un jugador o de dos. Si elegimos un jugador, tendrá que registrarse y después da a elegir entre los distintos tipos de tamaño. El tamaño pequeño consta de 16 casillas con 7 preguntas, el tamaño normal consta de 25 casillas con 11 preguntas, y por último el tamaño grande con 36 casillas y 17 preguntas. Si elegimos la opción de los dos jugadores pasa exactamente lo mismo, pero nada más registrarse ambos tendrán que lanzar los dados y el que saque mayor número empezará jugando, después les darán a elegir entre los distintos tipos de tamaños de tablero y temas. Una vez elegido el tamaño y tema del tablero pasamos a jugar. Se irán tirando los dados y si el jugador cae en una casilla donde se encuentra la oca aparecerá un mensaje el cual te dice que elijas un número del 1 al 24. Dependiendo el número que elijas aparecerá una pregunta que debe responder, si responde correctamente, el jugador se queda donde está, pero si falla la pregunta, retrocederá tres casillas. Todo se va repitiendo en bucle hasta que se llegue al final del tablero. Si hay dos jugadores, el primero en terminar será el ganador.
Dentro del juego se pueden realizar distintas funciones.
Nada más entrar te salta un mensaje que te indica lo que deseas hacer, ver las reglas del juego o iniciar el juego. Si el jugador elige la opción de ver las reglas del juego, vuelve a realizarle la misma pregunta. Por el contrario, si decide iniciar el juego, le realizará otra pregunta. Ahora el usuario deberá elegir entre el número de jugadores, uno o dos. Si elige la opción de un jugador directamente tendrá que lanzar el dado y si cae en una casilla donde se encuentra la oca, recibirá una pregunta. Si acierta la pregunta, se queda dónde está, pero si falla la pregunta retrocederá dos casillas. Así hasta que el jugador llegue al final del tablero. Si el usuario elige la opción de dos jugadores, primero deberán lanzar cada uno el dado y el que saque mayor número será el primero en empezar a jugar. A partir de aquí el procedimiento es exactamente el mismo hasta que uno de los dos jugadores gane la partida.
Nuestro programa está formado por funciones, dentro de las cuales se encuentran fichero y estructuras entre otros. Primero describiremos los ficheros y las estructuras y por último explicaremos el funcionamiento de las distintas funciones. En nuestro proyecto se han definido dos estructuras principales (datos tipo struct):
1.Estructura de los jugadores: La hemos denominado TJugador, y dentro de ella hay un vector en el cual se guardan los nombres (avatares) de los distintos usuarios que participan en el juego, pudiendo ser 1 o 2 jugadores.
En nuestro programa contamos con dos tipos de ficheros, aunque ambos son de lectura.
Ficheros de preguntas: Son ficheros de lectura, los cuales constan con 24 preguntas diferentes. Tenemos tres, cada uno con preguntas relacionadas con los diferentes temas que tenemos para elegir dentro de nuestro juego.
Ficheros de respuestas: Son ficheros de lectura, los cuales tienen 24 respuestas a las preguntas de los otros ficheros. Asimismo, tenemos tres ficheros, cada uno en función del tema que elija el jugador.
Las principales funciones de nuestro programa son las siguientes:
Banner: Se trata de la cabecera del juego, donde aparece un mensaje inicial junto con un dibujo de dos ocas representando la temática del juego, es decir, una oca clásica.
Menú de opciones: Función que consta de tres opciones para que elija el usuario. Si elige la primera opción el jugador podrá visualizar las reglas del juego, si elige la segunda se inicia el juego y si elige la tercera sale del juego.
Tablero: Dentro de la función del tablero hemos definido dos tipos, en uno de ellos se muestran las casillas de entrada y salida y el número de casillas que contienen una oca; y el otro tablero te muestra el número de cada casilla en el orden a seguir (como un gusanito). Además, contamos con tres tamaños distintos: pequeño, mediano y grande, para que el usuario tenga posibilidad de elegir.
Dados: En esta función hemos creado tres tipos de dados, cada uno de ellos se utilizará dependiendo del tamaño del tablero elegido por el jugador.
Con este trabajo hemos ampliado nuestro conocimiento en programación en lenguaje C, además de que hemos podido aplicar todos los conocimientos que hemos adquirido en esta asignatura. Nos lo hemos pasado muy bien realizando el trabajo, aunque a veces ha sido frustrante, pero ha merecido la pena por la satisfacción de poder haber obtenido un juego funcional y entretenido con el cual poder disfrutar.
Acompañando al código, hay que elaborar la documentación del proyecto. Esta documentación debe estar recogida en la wiki del repositorio. En el punto de inicio tenéis las instrucciones necesarias. Debéis cerrar esta issue cuando deis por finalizado el trabajo.