Welcome to the Pokémon Battle Simulator! This is a fun, command-line Java project that brings Pokémon battles to life while demonstrating core Object-Oriented Programming (OOP) concepts. ⚔️
1. Compile the Project:
javac pokemon/*.java
javac -cp . trainer/Trainer.java
javac -cp . oak/OakJournal.java2. Run the Simulator:
java oak.OakJournalpokemon/ → All Pokémon classes (abstract & concrete)
trainer/ → Trainer class (badge system)
oak/ → OakJournal (main controller & battle logic)
- 🔥 Multi-level Inheritance: Pokémon → Type Classes → Concrete Pokémon
- 🌱 Type Advantage System: Fire > Grass > Water > Fire
- 🏅 Badge System: Winners gain badges, losers lose badges
- 🥊 Multiple Battle Scenarios: Ash vs Gary, Ash vs Misty
- 🧩 OOP Design: Encapsulation, abstraction, inheritance
- 6 individual battles per showdown
- Type advantages = automatic win
- No advantage? Higher health wins
- Equal health = draw
- Most round wins = showdown winner
=== POKEMON BATTLE SIMULATOR INITIALIZED ===
Welcome to the world of Pokemon battles!
========================================
Showdown: Ash Ketchum vs. Gary Oak
========================================
Round 1 (Flame vs. Forest): Winner is Ash Ketchum!
Round 2 (Splash vs. Inferno): Winner is Ash Ketchum!
...
Final Winner: Ash Ketchum
========================================
- 3-Package Structure (
pokemon,trainer,oak) - No Collections Framework (primitive arrays only)
- Abstract Classes & Inheritance
- 8 Unique Pokémon Classes
- Switch-Case Logic
- Badge Count & Elimination System
- Clean, human-like comments & Java best practices
- All Pokémon have unique variable names (no plagiarism!)
- Code is well-commented and easy to follow
- Follows Java naming conventions
Ready to catch 'em all? Start battling! 🕹️
- Multi-level Inheritance: Pokemon → Type Classes → Concrete Pokemon
- Type Advantage System: Fire > Grass > Water > Fire
- Badge System: Winners gain badges, losers lose badges
- Multiple Battle Scenarios: Ash vs Gary, Ash vs Misty
- Proper OOP Design: Encapsulation, abstraction, inheritance
- Each showdown consists of 6 individual battles
- Type advantages determine automatic wins
- When no type advantage exists, higher health wins
- Equal health results in a draw
- Trainer with most round wins becomes showdown winner
=== POKEMON BATTLE SIMULATOR INITIALIZED ===
Welcome to the world of Pokemon battles!
========================================
Showdown: Ash Ketchum vs. Gary Oak
========================================
Round 1 (Flame vs. Forest): Winner is Ash Ketchum!
Round 2 (Splash vs. Inferno): Winner is Ash Ketchum!
...
Final Winner: Ash Ketchum
========================================
- ✅ 3 Package Structure (pokemon, trainer, oak)
- ✅ No Collections Framework (primitive arrays only)
- ✅ Abstract Classes and Inheritance
- ✅ 8 Concrete Pokemon Classes
- ✅ Switch Case Implementation
- ✅ Badge Count System with Elimination
- ✅ Proper Battle Resolution Logic
- All Pokemon have unique variable names to avoid plagiarism
- Human-like comments added throughout the code
- Follows Java naming conventions and best practices