Requerimientos para Juego - LLeonharth/LaberintoPartitura GitHub Wiki
-
El sistema deberá permitir iniciar una partida desde la consola y mostrar una introducción breve sobre la historia del juego ambientado en una catedral en ruinas dominada por el culto "Silencio Infinito".
-
El sistema deberá solicitar al jugador su nombre de pila al comenzar una partida y utilizarlo durante todo el desarrollo del juego.
-
El sistema deberá permitir al jugador seleccionar una obra musical clásica disponible para la partida. La obra seleccionada determinará los fragmentos musicales que el jugador deberá completar para alcanzar la victoria.
-
Al comenzar la partida, el sistema deberá inicializar:
- Las vidas del jugador.
- La puntuación.
- La racha de respuestas correctas.
- El tiempo de partida.
- La posición inicial del jugador en coordenadas cartesianas 2D.
- La obra musical seleccionada.
- El número de fragmentos completados.
- El primer nivel del laberinto.
-
El sistema deberá representar el laberinto mediante una matriz 2D en la consola. La matriz deberá permitir representar elementos como pared, camino, jugador, puerta y meta.
-
El sistema modelará el desplazamiento del jugador mediante un sistema dinámico discreto dado por comandos de consola donde la posición del jugador se restringe a un espacio acotado bidimensional. Debido a que las paredes actúan como obstáculos, el área de viaje válida constituye un conjunto no convexo impidiendo que el jugador digite trayectorias quienes excedan las fronteras del mapa.
-
El sistema deberá reutilizar la matriz del laberinto para generar nuevos mapas durante la partida. Cuando el jugador complete un nivel o tarea asignada, el sistema deberá:
- Limpiar el mapa actual.
- Generar o cargar un nuevo diseño.
- Reiniciar la posición del jugador.
- Incrementar el nivel correspondiente.
- Continuar la partida. De esta manera, el juego podrá presentar una cantidad progresiva de niveles sin necesidad de crear una matriz independiente para cada uno.
-
El sistema deberá permitir al jugador explorar el mapa hasta encontrar puertas, retos, pistas y metas relacionadas con la reconstrucción de la obra musical.
-
El sistema deberá permitir al jugador interactuar con las puertas encontradas durante la exploración. Una puerta podrá permanecer cerrada hasta que el jugador complete correctamente el desafío matemático asociado.
-
El sistema deberá presentar al jugador desafíos matemáticos necesarios para continuar avanzando por el laberinto. Deberá ajustar progresivamente la dificultad de los desafíos matemáticos de acuerdo con el avance del jugador en la partida. Los ejercicios iniciales deberán presentar operaciones de menor complejidad y, conforme el jugador complete fragmentos de la obra musical y disminuya la cantidad de fragmentos pendientes, el sistema deberá seleccionar desafíos de mayor dificultad. La dificultad podrá aumentar desde operaciones básicas con fracciones hasta ecuaciones, matrices y, como niveles avanzados, límites, derivadas e integrales.
-
El sistema deberá permitir resolver desafíos relacionados con la duración de las notas musicales mediante operaciones con fracciones. Deberá calcular la duración de las notas musicales utilizadas en los desafíos matemáticos, teniendo en cuenta su figura musical y las modificaciones aplicables, como el puntillo..
-
El sistema deberá adaptar los desafíos matemático-musicales de acuerdo con el compás asociado a la obra musical seleccionada. La capacidad de cada compás se determinará mediante su numerador y denominador, mientras que las notas conservarán sus valores de duración correspondientes. EEl sistema deberá asociar a cada obra musical sus características principales de interpretación, incluyendo compás, instrumento, clave musical, tempo y demás parámetros definidos para la partida.
-
El sistema deberá permitir representar características de las notas como alteraciones, octava, articulaciones y adornos, de acuerdo con las características definidas para la obra seleccionada. El sistema deberá permitir representar elementos de dirección musical como repeticiones, codas y otros símbolos necesarios para establecer el orden de interpretación de los fragmentos musicales.
-
El sistema deberá verificar si la respuesta proporcionada por el jugador coincide con la solución correcta del desafío. Si la respuesta es correcta, el jugador podrá continuar. Si es incorrecta se aplicarán las consecuencias correspondientes.
-
El sistema deberá actualizar la puntuación del jugador de acuerdo con su desempeño durante la partida. Las respuestas correctas podrán incrementar la puntuación, mientras que los errores podrán generar una penalización definida por las reglas del juego.
-
El sistema deberá mantener una racha de respuestas correctas consecutivas. La racha podrá utilizarse posteriormente como elemento adicional del sistema de puntuación.
-
El sistema deberá controlar la cantidad de vidas disponibles del jugador. Cuando el jugador cometa un error en un desafío que implique pérdida de vida, el sistema deberá disminuir su cantidad de vidas.
-
Cuando el jugador pierda una vida, el sistema deberá mostrar una breve animación en consola que represente el efecto del error antes de actualizar visualmente la cantidad de vidas.
-
El sistema deberá proporcionar retroalimentación sonora o visual relacionada con el resultado de los desafíos. Cuando el jugador resuelva correctamente un desafío, el sistema podrá reproducir un fragmento musical correspondiente.
-
Cada desafío correctamente resuelto deberá contribuir a la reconstrucción progresiva de la obra musical seleccionada. El sistema deberá registrar la cantidad de fragmentos completados por el jugador.
-
El sistema deberá comprobar si el jugador ha completado todos los fragmentos requeridos de la obra seleccionada. Cuando todos los fragmentos hayan sido completados, se deberá activar la condición de victoria.
-
El jugador ganará la partida cuando haya completado correctamente todos los fragmentos necesarios de la obra musical seleccionada. El sistema deberá mostrar un mensaje de victoria y la información final de la partida.
-
El sistema deberá finalizar la partida cuando la cantidad de vidas del jugador llegue a cero. Se deberá mostrar una pantalla o mensaje de derrota con los resultados obtenidos.
-
El sistema deberá registrar el tiempo empleado por el jugador desde el inicio de la partida hasta su finalización. El tiempo podrá utilizarse como parte de la información final y posteriormente como elemento de puntuación.
-
Durante la partida, el sistema deberá permitir visualizar información relevante del jugador como Nombre, vidas, Score, racha, nivel, fragmentos y tiempo.
-
El sistema deberá finalizar correctamente la partida cuando se cumpla una de las siguientes condiciones:
- Victoria: Todos los fragmentos musicales completados
- Derrota: Vidas = 0