English · Español
A turn-based labyrinth game built twice from the same class diagram, once in Java and once in Ruby, to compare how each language solves the same object-oriented design.
Demo video and project page: florintodor.dev/en/proyectos/irrgarten
- Domain model:
Game,Labyrinth,Player,Monster,Weapon,Shield,GameStateandDice, which concentrates every random decision. - Inheritance:
PlayerandMonsterextend the abstractLabyrinthCharacter;WeaponandShieldextend the abstractCombatElement. - Polymorphism: a player who dies may resurrect as a
FuzzyPlayer, aPlayersubclass that overridesmove,attackanddefensiveEnergyto add randomness to its decisions. - Generics:
CardDeck<T>, withWeaponCardDeckandShieldCardDeckas subclasses, hands out rewards. - MVC: a
Controllerbetween the game and aUIinterface with two implementations in Java,TextUI(terminal) andGameUI(Swing); Ruby has the text interface.
| Java | PDOO_PRACTICAS/Irrgarten_trabajo/java_original.zip (NetBeans project, irrgarten.Main.Main) |
| Ruby | PDOO_PRACTICAS/Irrgarten_trabajo/ruby_original.zip (ruby Main/main.rb) |
The rest of the repository is course material: theory, notes and exam exercises.
Coursework for Object-Oriented Programming and Design (PDOO), University of Granada, 2023-24.
English · Español
Videojuego de laberinto por turnos implementado dos veces a partir del mismo diagrama de clases, una en Java y otra en Ruby, para comparar cómo resuelve cada lenguaje el mismo diseño orientado a objetos.
Vídeo de la demo y ficha del proyecto: florintodor.dev/proyectos/irrgarten
- Modelo de dominio:
Game,Labyrinth,Player,Monster,Weapon,Shield,GameStateyDice, que concentra todas las decisiones aleatorias. - Herencia:
PlayeryMonsterheredan de la clase abstractaLabyrinthCharacter;WeaponyShield, de la clase abstractaCombatElement. - Polimorfismo: un jugador que muere puede resucitar como
FuzzyPlayer, una subclase dePlayerque redefinemove,attackydefensiveEnergypara meter aleatoriedad en sus decisiones. - Genéricos:
CardDeck<T>, conWeaponCardDeckyShieldCardDeckcomo subclases, reparte las recompensas. - MVC: un
Controllerentre el juego y una interfazUIcon dos implementaciones en Java,TextUI(terminal) yGameUI(Swing); en Ruby, la de texto.
| Java | PDOO_PRACTICAS/Irrgarten_trabajo/java_original.zip (proyecto de NetBeans, irrgarten.Main.Main) |
| Ruby | PDOO_PRACTICAS/Irrgarten_trabajo/ruby_original.zip (ruby Main/main.rb) |
El resto del repositorio es material de la asignatura: teoría, apuntes y ejercicios de examen.
Trabajo de la asignatura Programación y Diseño Orientado a Objetos (PDOO), Universidad de Granada, 2023-24.
