Package epidemic.managers
Class ReproductionManager
java.lang.Object
epidemic.managers.ReproductionManager
Menedżer nadzorujący biologiczny proces rozmnażania populacji.
Odpowiada za wyszukiwanie potencjalnych partnerów w bliskim sąsiedztwie
i generowanie potomstwa na podstawie globalnych wskaźników płodności,
cyklów odnowienia (cooldown) oraz ograniczeń wiekowych.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AgentFactoryprivate final intprivate final intprivate final double -
Constructor Summary
ConstructorsConstructorDescriptionReproductionManager(AgentFactory agentFactory) Inicjalizuje menedżera reprodukcji, wczytując parametry prawdopodobieństwa oraz zakresów odpoczynku z globalnej konfiguracji. -
Method Summary
Modifier and TypeMethodDescriptionprivate booleancanParticipateInReproduction(Agent agent, int currentEpoch) voidhandleReproduction(WorldMap world, SpatialManager spatialManager, int currentEpoch) Główny cykl reprodukcyjny przetwarzany w każdej epoce.private voidspawnOffspring(WorldMap world, Agent a, Agent b, int currentEpoch)
-
Field Details
-
agentFactory
-
REPRODUCTION_CHANCE
private final double REPRODUCTION_CHANCE -
COOLDOWN_MIN
private final int COOLDOWN_MIN -
COOLDOWN_MAX
private final int COOLDOWN_MAX
-
-
Constructor Details
-
ReproductionManager
Inicjalizuje menedżera reprodukcji, wczytując parametry prawdopodobieństwa oraz zakresów odpoczynku z globalnej konfiguracji.- Parameters:
agentFactory- Fabryka agentów odpowiedzialna za polimorficzne tworzenie potomstwa.
-
-
Method Details
-
handleReproduction
Główny cykl reprodukcyjny przetwarzany w każdej epoce. Przeszukuje przestrzeń wokół płodnych agentów w celu znalezienia partnera tego samego gatunku. Sukces reprodukcyjny jest losowy, a dany agent może wygenerować maksymalnie jedno potomstwo na epokę z danym partnerem.- Parameters:
world- Stan mapy docelowej dla nowo narodzonych jednostek.spatialManager- Indeks przestrzenny ułatwiający szybkie zapytania o sąsiadów.currentEpoch- Aktualny krok czasowy symulacji (wykorzystywany do stemplowania cyklu odnowienia).
-
canParticipateInReproduction
-
spawnOffspring
-