Darwin World is a simulation project, where in a virtual world population of animals evolves over time. The project is implemented in Java using the JavaFX library for the graphical user interface. The simulation allows users to configure various parameters and observe the evolution of species in a changing environment.
The project is structured into several key components:
- World Map: A rectangular grid representing the environment, divided into steppes and jungles.
- Animals: Creatures that consume plants, and reproduce. Each animal has a genome that determines its behavior.
- Plants: Food sources for animals that grow in specific patterns across the map.
- Simulation Engine: Manages the daily cycles of the world, including animal movement, plant growth, and reproduction.
- User Interface: Provides a graphical representation of the simulation, allowing users to configure, start, stop, and observe the simulation.
- Map Dimensions: Width and height of the world map.
- Plant Growth Variants: Different patterns of plant growth (e.g., forested equator, creeping jungle).
- Animal Behavior Variants: Different mutation and behavior patterns (e.g., full randomness, swap mutation).
- Initial Conditions: Starting number of plants and animals, initial energy levels, energy required for reproduction, etc.
- Daily Cycle: Each day consists of several steps:
- Remove dead animals.
- Turn and move each animal.
- Consume plants by animals.
- Reproduce animals if conditions are met.
- Grow new plants.
- Animal Genome: Each animal has a genome that determines its movement and behavior. The genome is a sequence of genes, each representing a direction.
- Reproduction: Animals reproduce if they have sufficient energy. The offspring's genome is a crossover of the parents' genomes, with possible mutations.
- Configuration: Users can select from predefined configurations or create new ones.
- Simulation Control: Start, stop, and pause the simulation.
- Statistics: Display various statistics about the current state of the simulation, such as the number of animals and plants, average energy levels, and popular genotypes.
- Tracking: Users can select an animal to track its status and history, including its genome, energy, and offspring.
- JavaFX: The project uses JavaFX for the graphical user interface.
- Gradle: The project can be built and run using Gradle.
Clone the Repository:
git clone https://github.com/wmaqk1/PROJ_WOJCIK_SAWIEC.gitThis project was created by Mateusz Wójcik and Maciej Sawiec


