Johan2511 /
Taller-practico-javascript-videojuego
Juego realizado con html, css y javascript
37/100 healthLoading repository data…
soriiaa / repository
Videojuego realizado con patrones de diseño para la asignatura de diseño de software
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
RPG de combate por turnos desarrollado en Java 21 + JavaFX, como proyecto de la asignatura de Diseño de Software.
Mazmorras es un videojuego RPG 2D de combate por turnos. El jugador explora mapas generados con tilemaps (matrices numéricas que representan tiles gráficos) y se enfrenta a distintos enemigos para obtener recursos, mejorar su personaje y sobrevivir.
El proyecto aplica algunos patrones de diseño vistos en clase, integrando la lógica del modelo con la interfaz gráfica JavaFX a través de controladores FXML + CSS.
| Tecnología | Versión |
|---|---|
| Java | 21 |
| JavaFX | 21-ea+24 |
| ControlsFX | 11.1.2 |
| JUnit Jupiter | 5.9.2 |
| Build tool | Maven |
EstrategiaCombateInterfaz implementada por Agresiva, Defensiva y Equilibrada. Cada estrategia aplica modificadores distintos al daño y la defensa (±20%). La clase Monstruo delega el cálculo del daño en su estrategia asignada.
ItemDecoratorLa clase abstracta Item es la base. Espada, Armadura y Pocion son items concretos. ItemDecorator envuelve un item para extenderlo; EncantamientoFortaleza añade daño extra a la espada sin modificar la clase original.
EstadoEntidadInterfaz con tres estados: EstadoBasico, EstadoAturdido (no hace daño) y EstadoFurioso (daño aumentado). El estado es dinámico y puede cambiar entre turnos. La clase Entidad mantiene el estado actual como atributo.
EnemigoFactoryInterfaz que define la creación de familias de monstruos. PraderaFactory y DesiertoFactory generan sus propias versiones de Orco, Mago y Esqueleto. EnemigoFactoryManager actúa como contexto y selecciona la fábrica según el mapa elegido.
CalculadorDanoConstructor privado + variable estática instance. El método getInstance() garantiza una única instancia. Centraliza los cálculos de calcularAtaque(), calcularDefensa() y calcularVidaRecuperada(), aplicando estados y estrategias.
MonstruoLa clase abstracta define el esqueleto de realizarTurno(), que delega la decisión al método abstracto decidirAccion(). Cada subclase lo sobreescribe con su propia lógica:
GameFacadeOculta la complejidad de las clases Mundo, Mapa y Combate. Expone métodos de alto nivel como inicializarNuevaPartida(), iniciarCombate() o comprarPocion(). Los controladores (GameController, FightController, LaunchController, OptionsController) interactúan únicamente con esta fachada.
src/main/java/com/videogame/videojuegodissotfware/
│
├── HelloApplication.java # Punto de entrada
│
├── gui/
│ ├── controllers/
│ │ ├── LaunchController.java # Pantalla de inicio
│ │ ├── GameController.java # Exploración del mapa
│ │ ├── FightController.java # Pantalla de combate
│ │ └── OptionsController.java # Menú de pausa / tienda
│ └── view/
│ ├── GameScene.java # Renderizado del tilemap
│ └── GameEventListener.java
│
└── model/
├── core/
│ ├── GameFacade.java # [Facade]
│ ├── CalculadorDano.java # [Singleton]
│ ├── Mundo.java
│ ├── Mapa.java
│ └── combate/
│ ├── Combate.java
│ └── FaseCombate.java
├── entities/
│ ├── Entidad.java
│ ├── Personaje.java
│ ├── Monstruo.java # [Template Method]
│ ├── monstruos/
│ │ ├── Orco.java
│ │ ├── Mago.java
│ │ └── Esqueleto.java
│ └── state/ # [State]
│ ├── EstadoEntidad.java
│ ├── EstadoBasico.java
│ ├── EstadoAturdido.java
│ └── EstadoFurioso.java
├── factories/ # [Abstract Factory]
│ ├── EnemigoFactory.java
│ ├── EnemigoFactoryManager.java
│ ├── pradera/
│ │ ├── PraderaFactory.java
│ │ ├── PraderaOrco.java
│ │ ├── PraderaMago.java
│ │ └── PraderaEsqueleto.java
│ └── desierto/
│ ├── DesiertoFactory.java
│ ├── DesiertoOrco.java
│ ├── DesiertoMago.java
│ └── DesiertoEsqueleto.java
├── items/ # [Decorator]
│ ├── Item.java
│ ├── Espada.java
│ ├── Armadura.java
│ ├── Pocion.java
│ └── decorator/
│ ├── ItemDecorator.java
│ └── EncantamientoFortaleza.java
├── strategies/ # [Strategy]
│ ├── EstrategiaCombate.java
│ ├── Agresiva.java
│ ├── Defensiva.java
│ └── Equilibrada.java
└── actions/
└── Accion.java
Introduce el nombre de tu guerrero/a, selecciona el mapa (Pradera o Desierto) y pulsa Empezar. Ambos campos son obligatorios.
Cada turno puedes elegir entre tres acciones:
El combate termina cuando uno de los dos llega a 0 HP.
# Clonar el repositorio
git clone https://github.com/soriiaa/VideojuegoDisenoSoftware.git
cd VideojuegoDisenoSoftware
# Ejecutar con Maven
./mvnw clean javafx:run
Requiere Java 21 y Maven instalados. En Windows usa
mvnw.cmden lugar de./mvnw.
Este proyecto ha sido desarrollado por:
Proyecto académico — Ingeniería del Software, curso 2025/2026.
Selected from shared topics, language and repository description—not editorial ratings.
Johan2511 /
Juego realizado con html, css y javascript
37/100 healthalastor-perko /
Videojuego realizado durante el curso en Java con el motor libGDX
27/100 healthCes1980 /
TERMINADO: VideoJuego tipo PACMAN realizado con canvas(HTML) creando la interación con JavaScript: se aplica detección de colisión, movimiento enemigo, interacciones de juego
/100 healthMattheeewww30 /
En este repositorio encontrarás un pequeño videojuego realizado principalmente con JavaScript. Es importante aclarar que fue realizado en conjunto y ayuda del curso de Platzi.
37/100 healthfcb0007 /
Proyecto en grupo con Java Swing donde hemos realizado un videojuego con temática Mad Max
42/100 healthEduardoFlorian /
Sistema de mantenimiento y reportes dinámicos para una tienda de VideoJuegos. Realizado con Java y SpringBoot.
27/100 health