Class ReproductionManager

java.lang.Object
epidemic.managers.ReproductionManager

public class ReproductionManager extends Object
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 Details

    • agentFactory

      private final AgentFactory 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

      public ReproductionManager(AgentFactory agentFactory)
      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

      public void handleReproduction(WorldMap world, SpatialManager spatialManager, int currentEpoch)
      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

      private boolean canParticipateInReproduction(Agent agent, int currentEpoch)
    • spawnOffspring

      private void spawnOffspring(WorldMap world, Agent a, Agent b, int currentEpoch)