Skip to content

sbarczyk/darwin-world

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Darwin World

Autorzy: Jan Dyląg, Szymon Barczyk
Przedmiot: Programowanie obiektowe, Akademia Górniczo-Hutnicza w Krakowie


Opis projektu

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.


Kluczowe funkcjonalności

  • 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.

Legenda (kolory na mapie)

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).


Aspekty techniczne

  • 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.

Czego się nauczyliśmy

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.

Konfiguracja projektu

Grupa: 4
Modyfikacje: F3


Licencja

Projekt stworzony w celach edukacyjnych w ramach zajęć na AGH w Krakowie, wydział Informatyki.

About

Java project simulating animal evolution on a dynamic map, developed for the Object-Oriented Programming course at AGH UST.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages