Files
2026-05-16 10:14:04 +03:30

2.0 KiB

⚔️ Java Knight A Turn-Based PRG


📜 A Little About the Game

Java Knight is a text-based role-playing game where you battle creatures to collect keys so you can unlock final game and save the old castle!

🎮 How to Play

select your hero - choose from 4 players : Joan of Arc (the Knight), Galahad (the knight), Harry Potter (the Wizard), Creed from Office (the Assassin)

fight enemies - choose any location and then their specific enemies will appear to fight !

defeat the final boss - once you collect all 3 keys you can face the Dragon

🌲 Class Hierarchy

Entity (Interface)

├── Player (Abstract Class)

│ ├── Knight

│ ├── Wizard

│ └── Assassin

└── Enemy (Abstract Class)

├── Goblin

├── Skeleton

├── Vampire

└── Dragon

✔ Where & How OOP Concepts Are Used

1. Encapsulation

Where How
Player Class hp, mp, isDefending are protected - accessed via getters/setters
Enemy Class damage, stunned, isDefending are protected - accessed via methods

2. Inheritance

Parent Class Child Classes What Children Inherit
Player Knight, Wizard, Assassin hp, mp, defend, etc.
Enemy Goblin, Skeleton, Vampire, Dragon hp, mp, stunned, defend, etc.

3. Polymorphism

Method Overriding

Method Parent Behavior Child Behavior
attack() Deals 5 Damage Knight: 12 d, Wizard: 10 d, Assassin: 8 d
specialAbility() Abstract Knight: Sheild Bash + Stun, Wizard: Life Drain + Heal, Assassin: Invisibility
heavyAttack() Abstract Knight: 22 d, Wizard: 18 d, Assassin: 15 d

4. Abstraction & Interface

Player and Enemy Classes are Abstract Which Implement Entity as Interface.

Methods like specialAbility() (In Player and Enemy Classes) and heavyAttack() (Just Player Class) are abstract.