Skip to content

A java based Object-Oriented Programming project that simulates a Virtual Pet sanctuary Where users can adopt, manage and care for virtual pets, events like illness, escape and natural disasters add unpredictablity to the simulation

Notifications You must be signed in to change notification settings

hassanshehzad1/virtual_pet_sanctuary_simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

virtual_pet_sanctuary_simulator

A java based Object-Oriented Programming project that simulates a Virtual Pet sanctuary Where users can adopt, manage and care for virtual pets, events like illness, escape and natural disasters add unpredictablity to the simulation

Featurs and functionality

User Managment System

  • User can register
  • Login System for careTakers and Managers
  • Role based System
  • CareTaker manage and care for pets.
  • Guest can browse and buy pets without an account.
  • Managers handle events pet, assignement, and events.
  • User is an abstract class extended by caretaker and manager.

Pet Managment System

  • Multiple pets types(Dog, Horse, Lion, Rabbit).
  • Pets have attribute name, age , type, Hunger, mood price, health
  • CareTakers can feed, play with and heal assigned pets
  • Pet manager allowing adding , removing and updating pets.
  • Pet is an abstract class exented for specific pet types.

Guest Managment System

  • Guest can view pets for sale without registrations.
  • Only pet marked as isForSale = True is available for sale.

Sanctuary finacial System and updates.

  • Managers can manage sanctuary funds.
  • Funds can be used as buy pets.
  • Playground (Improve pet hpppines).
  • Clinic (Increase pet health).
  • Feeding Station (Reducese pet hunger).

Event management System.

  • Random events affects pets.
  • Illness: (Pet health deacreases).
  • Escape: An unhappy pet leaves the sanctuary.
  • Natural Disasters Affects multiple pets.
  • Eventmanager stores and manage events.
  • CareTakers can resolve events for assigned pets.

File Handling for data persistence

  • users.txt->Store registered users.
  • pets.txt->stores pets details.
  • Events.txt-> Stores events history.

Technologies Used

  • Java(JDK + 17)-> Core programming language
  • OOP Principles ->Encapsulation, inheritance , polymorphism, Abstraction, Agggregtion, Composition.
  • File Hanlding ->Persientnce of users, pets, and events.
  • Git and Github ->Version control and Collaboration.

📦 Virtual-Pet-Sanctuary-Simulator ┣ 📂 src ┃ ┣ 📂 Sanctuary ┃ ┃ ┣ 📜 Sanctuary.java // Main System Controller ┃ ┃ ┣ 📜 Main.java // Entry point of program ┃ ┣ 📂 User ┃ ┃ ┣ 📜 User.java // Abstract Base Class ┃ ┃ ┣ 📜 Manager.java // Handles finances, upgrades, reports ┃ ┃ ┣ 📜 CareTaker.java // Manages pet interactions ┃ ┃ ┣ 📜 UserManager.java // Handles login & registration ┃ ┃ ┣ 📜 Interactable.java // Interface for user actions ┃ ┣ 📂 Pet ┃ ┃ ┣ 📜 Pet.java // Abstract Base Class for all pets ┃ ┃ ┣ 📜 Dog.java // Concrete Pet Class ┃ ┃ ┣ 📜 Rabbit.java // Concrete Pet Class ┃ ┃ ┣ 📜 Horse.java // Concrete Pet Class ┃ ┃ ┣ 📜 Lion.java // Concrete Pet Class ┃ ┃ ┣ 📜 PetManager.java // Handles pet creation & management ┃ ┃ ┣ 📜 InteractPet.java // Interface for pet actions ┃ ┣ 📂 Event ┃ ┃ ┣ 📜 Event.java // Event class (Illness, Escape, Disaster) ┃ ┃ ┣ 📜 EventManager.java // Handles event creation & resolution ┃ ┃ ┣ 📜 EventTriggerable.java // Interface for event behavior ┃ ┣ 📂 Guest ┃ ┃ ┣ 📜 Guest.java // Allows non-registered users to buy pets ┣ 📂 data ┃ ┣ 📜 users.txt // Stored user accounts ┃ ┣ 📜 pets.txt // Stored pet data ┃ ┣ 📜 events.txt // Stored event history

Set up and Installation

git clone https://github.com/your-username/Virtual-Pet-Sanctuary.git cd Virtual-Pet-Sanctuary

Compile And Run

javac -d bin src/**/*.java java -cp bin Main

📄 License

This project is open-source under the MIT License.

OOP Principles Used

1️ Encapsulation Private fields (e.g., username, password, hunger) Getters/Setters for controlled access

2️

Inheritance

User → Parent class of Manager & Caretaker Pet → Parent class of Dog, Rabbit, Horse, Lion

3️

Polymorphism

interactWithPet() (User Subclass) behaves differently for Manager vs CareTaker play(), eat(), heal() (Pet Subclasses) overridden in Dog, Rabbit, etc.

4️

Composition

Sanctuary contains UserManager, PetManager, and EventManager UserManager manages a list of users

5️

Aggregation

PetManager manages a list of pets EventManager triggers events on pets

About

A java based Object-Oriented Programming project that simulates a Virtual Pet sanctuary Where users can adopt, manage and care for virtual pets, events like illness, escape and natural disasters add unpredictablity to the simulation

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages