Proyecto01
Idear un juego para la terminal que cumpla con las siguiente base:
|
|
Fecha límite de entrega 24 de octubre de 2026 a la medianoche en repositorio individual de control de versiones. Evaluación:
-
[10%] Buen uso de control de versiones (commits, ignores). Estructura de directorios. Compilación automática (
Makefile). -
[10%] Análisis (
readme): Diseño del juego: narrativa, reglas, tutorial, ejemplos de ejecución. Instrucciones para compilar y correr la solución (build). -
[10%] Diseño orientado a objetos (UML) de la solución usando Mermaid en la subcarpeta
design. -
[20%] Apego a las convenciones de estilos de Google y Sun (linting). Documentación de interfaces (
javadoc): propósito, parámetros, supuestos (contratos). Documentación de implementaciones: comentarios en los cuerpos de subrutinas de lo que no es trivial. -
[10%] Clase controladora del juego. Manejo de eventos de teclado. Controla a los demás objetos del juego. Carga el siguiente nivel si el jugador resuelve el anterior.
-
[10%] Clase para representar al jugador, su estado y progreso por el juego. Debe permitir continuar el nivel por el que quedó el jugador la última vez que corrió el programa.
-
[20%] Clase para representar el nivel del juego. Matriz de cartas. Aplica las reglas escogidas del juego. Carga el nivel de un archivo [preferible]. Si crea cartas al azar, debe asegurarse de que el nivel sea resoluble. Debe imprimirse en la salida estándar, considerando que el jugador y la puerta, además de las cartas.
-
[10%] Clase para representar una carta. Debe cargarse de archivo e imprimirse en la salida estándar. Debe aplicar su efecto al jugador.