Autorzy: Jan Dyląg, Szymon Barczyk
Przedmiot: Programowanie obiektowe, Akademia Górniczo-Hutnicza w Krakowie
Darwin World to symulacja ewolucji zwierząt na prostokątnej mapie.
Zwierzęta poruszają się, jedzą trawę, rozmnażają się i umierają, a ich populacja zmienia się w czasie w zależności od przyjętych parametrów i środowiska.
Celem projektu było zbadanie, jak różne czynniki — takie jak poziom energii, strategia rozmnażania czy sposób wzrostu roślin — wpływają na dynamikę ekosystemu i równowagę populacji.
Projekt został zrealizowany zespołowo w ramach przedmiotu Programowanie obiektowe na Wydziale Informatyki AGH w Krakowie.
- Poruszanie się zwierząt – każde zwierzę porusza się zgodnie ze swoim genotypem i strategią genetyczną.
- Jedzenie trawy – zwierzęta konkurują o pożywienie, a zwycięzca zyskuje energię.
- Rozmnażanie – osobniki o wystarczającej energii tworzą potomstwo z połączonym genotypem.
- Wzrost roślin – trawa pojawia się według różnych strategii (losowo lub w strefie równikowej).
- Wizualizacja – mapa symulacji z kolorowym odwzorowaniem elementów i dominujących genotypów w czasie rzeczywistym.
| Kolor | Znaczenie |
|---|---|
| Czerwony | Zwierzęta – odcień zależy od poziomu energii |
| Zielony | Trawa |
| Niebieski | Aktualnie śledzone zwierzę |
| Fioletowy | Preferowane pola lub dominujący genotyp |
| Jasnoszary | Puste pola |
W przypadku obecności kilku zwierząt na jednym polu, wyświetlane jest to najsilniejsze (kolejność: najwyższa energia → najstarsze → najwięcej potomków → losowy wybór).
- Projekt zrealizowany w Javie z wykorzystaniem zasad programowania obiektowego.
- Wykorzystano dziedziczenie, polimorfizm, enkapsulację oraz podział odpowiedzialności między moduły.
- Architektura umożliwia łatwą konfigurację parametrów środowiska i eksperymentowanie z różnymi strategiami.
- Aplikacja posiada prostą wizualizację w czasie rzeczywistym ułatwiającą analizę symulacji.
Podczas realizacji projektu nauczyliśmy się:
- projektować systemy oparte o zasady OOP (Object-Oriented Programming),
- tworzyć modularne i rozszerzalne aplikacje w Javie,
- analizować zależności w symulacjach wieloagentowych,
- zarządzać złożonym stanem programu i optymalizować jego wydajność,
- efektywnie współpracować w zespole przy realizacji większego projektu programistycznego.
Grupa: 4
Modyfikacje: F3
Projekt stworzony w celach edukacyjnych w ramach zajęć na AGH w Krakowie, wydział Informatyki.