Academic project developed in Python, simulating an aquarium that contains different aquatic species interacting with each other.
Each species has its own behavior, movement, and life cycle, implemented through object-oriented programming (OOP) concepts such as inheritance and polymorphism.
- Simulation of an aquarium with multiple species:
Scalar,Molly,Ocypode, andShrimp
- Object-oriented hierarchy:
- Base class
Animalwith subclasses defining specific behavior
- Base class
- Step-based simulation:
- Movement, aging, hunger, and death mechanics
- Exception handling for invalid interactions or configurations
- Unit testing for selected classes (e.g.,
Molly)
- Animal.py – base class defining shared properties and actions
- Scalar.py, Molly.py, Ocypode.py, Shrimp.py – specific fish classes implementing unique movement patterns
- Aquarium.py – manages all animals, collisions, and simulation steps
- main.py – entry point for running the simulation
- test_molly.py – example of unit testing a subclass
- Language: Python
- Paradigm: Object-Oriented Programming
- Tools: PyCharm / VSCode, unittest
Developed by Hadar Shir
B.Sc. Information Systems and Software Engineering
Ben-Gurion University of the Negev
This project demonstrates practical application of inheritance, encapsulation, polymorphism, and modular software design in Python.