This program models interactive Pokémon companions using Java classes. The project demonstrates core object-oriented programming principles such as encapsulation, composition, constructors, method overloading, and dynamic behaviors.
The Pokémon Virtual Pet Simulation allows users to adopt Pokémon, feed them, train them, evolve them, and monitor their happiness, energy, and unique type-based responses. Each Pokémon species behaves differently depending on its typing, environment, and user interactions.
src: contains the Java source files (shinx.java,cleffa.java,riolu.java,litwick.java,main.java)lib: contains any dependencies if addedbin: the folder where compiled.classfiles are generated by default
If you want to customize the folder structure, open .vscode/settings.json and update the related settings there.
- Flowchart
Please check this flowchart for more detailed information.
Represents the main class for the Pokémon simulation. This class serves as the entry point for the program and manages the overall flow of the simulation.
Includes:
- User interface for adopting, feeding, training, and evolving Pokémon.
- Tracks and updates Pokémon stats (happiness, energy, etc.).
- Handles user input and displays menus.
Represents the Electric-type Pokémon, Shinx. This class models Shinx's unique behaviors and stats.
Includes:
- Methods for feeding, training, and evolving Shinx.
- Tracks happiness and energy levels.
- Implements type-specific responses to user actions.
Represents the Fairy-type Pokémon, Cleffa. This class models Cleffa's unique behaviors and stats.
Includes:
- Methods for feeding, training, and evolving Cleffa.
- Tracks happiness and energy levels.
- Implements type-specific responses to user actions.
Represents the Fighting-type Pokémon, Riolu. This class models Riolu's unique behaviors and stats.
Includes:
- Methods for feeding, training, and evolving Riolu.
- Tracks happiness and energy levels.
- Implements type-specific responses to user actions.
Represents the Ghost/Fire-type Pokémon, Litwick. This class models Litwick's unique behaviors and stats.
Includes:
- Methods for feeding, training, and evolving Litwick.
- Tracks happiness and energy levels.
- Implements type-specific responses to user actions.
- Open the project folder in Visual Studio Code.
- Compile the Java files:
javac -d bin src/*.java - Run the tester class:
java -cp bin BirdTester
Some actions, like feeding candy when none is available, may cause unexpected behavior. Future updates could include inventory checks, a Graphical User Interface, save/load features, and a more advanced battle system.
Which pokemon do you want? (shinx, cleffa, litwick, riolu): shinx
You created a pokemon!
1. Show stats
2. Feed
3. Play
4. Give Bath
5. Heal
6. Evolve
7. Fight Trainer
8. Feed Candy
9. Rest
0. Exit
1
Evolution: Shinx
Health: 100
Happiness: 0
Energy: 50
Hunger: 20
- Write and call constructors, including overloaded constructors.
- Write methods with parameters and return values.
- Write and use custom classes in Java.
The JAVA PROJECTS view in Visual Studio Code allows you to manage dependencies. More details can be found in the VS Code Java Dependency Guide.
- Jacob Le (Technical Writer)
- Ashlynn Kirchoff (Project Manager)
- Natalee Ngo (Quality Assurance Tester)
- Rin Ryu (Programming Lead)