Skip to content

A Java-based command-line Pokémon Battle Simulator demonstrating core OOP principles—inheritance, encapsulation, abstraction, and polymorphism—with trainers, Pokémon, type advantages, badges, and modular battle scenarios.

Notifications You must be signed in to change notification settings

Mohitlikestocode/Pokemon-Battle-Simulator-OOPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pikachu

🎮 Pokémon Battle Simulator

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. ⚔️


🚀 Quick Start

1. Compile the Project:

javac pokemon/*.java
javac -cp . trainer/Trainer.java
javac -cp . oak/OakJournal.java

2. Run the Simulator:

java oak.OakJournal

🗂️ Project Structure

pokemon/   → All Pokémon classes (abstract & concrete)
trainer/   → Trainer class (badge system)
oak/       → OakJournal (main controller & battle logic)

✨ Features

  • 🔥 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

⚔️ Battle Mechanics

  • 6 individual battles per showdown
  • Type advantages = automatic win
  • No advantage? Higher health wins
  • Equal health = draw
  • Most round wins = showdown winner

🖥️ Sample Output

=== 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
========================================

✅ Technical Highlights

  • 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

💡 Notes

  • 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! 🕹️

Features

  • 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

Battle Mechanics

  • 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

Sample Output

=== 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
========================================

Technical Requirements Met

  • ✅ 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

Notes

  • All Pokemon have unique variable names to avoid plagiarism
  • Human-like comments added throughout the code
  • Follows Java naming conventions and best practices

About

A Java-based command-line Pokémon Battle Simulator demonstrating core OOP principles—inheritance, encapsulation, abstraction, and polymorphism—with trainers, Pokémon, type advantages, badges, and modular battle scenarios.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages