Juego táctico por turnos con arquitectura MVP, navegación por pila y vista por consola.
El sistema permite que dos jugadores controlen ejércitos en un tablero, seleccionen unidades, ejecuten acciones y jueguen hasta que uno derrote al “Lord” rival.
- Juego por turnos: cada jugador actúa de a uno.
- Unidades con estadísticas, rango, movimiento, equipamiento y habilidades.
- Tablero cargado desde CSV, con distintos tipos de terreno.
- Elección de unidades, acciones por menú y flujo guiado.
- Emboscadas, desplazamiento, uso de ítems, y chequeo de ganador.
- Vista por consola con
JLine(estilos, colores, input robusto). - Navegación con pila de Presenters mediante un Navegador propio.
El proyecto está organizado en tres capas:
Incluye:
Juego,Jugador,AdminJugadoresUnidad,Estadisticas,UtilizablesTablero,Casilla,Terreno
El modelo encapsula absolutamente toda la lógica del juego, manteniendo un estado consistente.
Una única implementación:
VistaMenuConsola(usaTerminalyLineReaderde JLine)
La vista solo:
- muestra mapas, mensajes y opciones,
- recibe input del usuario,
- nunca ejecuta lógica del juego.
Cada pantalla/estado del juego es un Presenter.
Ejemplos:
PresenterMenuPrincipalPresenterSeleccionarUnidadPresenterDatosUnidadPresenterTerminarTurnoPresenterRendirsePresenterGanador
Cada presenter implementa:
MenuComando ejecutar();Y devuelve un comando que indica al Navegador cómo continuar.
El flujo de pantallas lo controla:
Navegador- Comandos:
PushearMenuComandoPopearMenuComandoPushearBorrarMenuComandoSalirMenuComando
La navegación funciona como una pila:
push()→ entrar a un menúpop()→ volverpushBorrarPila()→ reiniciar flujosalir()→ terminar juego
- Java 17 o superior
- Consola compatible con ANSI/JLine
- Archivos CSV dentro de
/datamapa.csvejercito_azul.csvejercito_rojo.csv
javac -d bin $(git ls-files '*.java')java -cp bin MainTambién puede ejecutarse el archivo
Maindesde IntelliJ/VS Code.
TP2-SUPERLOGICO/
data/
mapa.csv
ejercito_azul.csv
ejercito_rojo.csv
src/
modelo/ -> lógica del juego
vista/ -> Vista por consola (JLine)
presentador/ -> Presenters
presentador/comandos/ -> Comandos de navegación
io/ -> Parser CSV
Main.java
- Se carga el juego desde los CSV con
JuegoFactory. - Se muestra el Menú Principal:
- Seleccionar unidad
- Terminar turno
- Rendirse
- Salir
- Al seleccionar una unidad:
- Se ven sus estadísticas
- Se puede:
- Ver utilizables
- Desplegar / mover
- Preparar emboscada
- Cada acción devuelve un comando que modifica la pila del Navegador.
- El juego termina cuando un Lord muere.
PresenterGanadorpermite:- Jugar de nuevo
- Salir del juego
Matriz de terrenos:
LLANURA,BOSQUE,AGUA,...
id;nombre;reino;x;y;hp;atk;def;mov;arma;tipo;...
A1;Lord Azul;AZUL;2;2;22;6;3;4;Espada;FISICO;...
Lo mismo para ejercito_rojo.csv.
- El programa usa una arquitectura ordenada y modular, con responsabilidades separadas.
- La lógica del juego está totalmente encapsulada en el Modelo.
- La Vista solo maneja la interacción con el usuario.
- Los Presenters controlan el flujo, y pueden encadenarse fácilmente.
- El Navegador organiza las pantallas mediante una pila de comandos.