Class SeekMateStrategy

java.lang.Object
epidemic.strategies.movement.SeekMateStrategy
All Implemented Interfaces:
MovementStrategy

public class SeekMateStrategy extends Object implements MovementStrategy
Strategia prokreacyjna (wzorzec Strategy) ukierunkowująca agenta na poszukiwanie najbliższego, potencjalnego partnera do rozrodu. Wykorzystuje mechanizm zachłannego wyszukiwania (greedy search) w określonym promieniu, priorytetyzując przetrwanie gatunku poprzez dobór zdrowych jednostek.
  • Constructor Details

    • SeekMateStrategy

      public SeekMateStrategy()
  • Method Details

    • calculateNextPosition

      public Point2D calculateNextPosition(Agent agent, WorldMap world)
      Wyznacza wektor ruchu skierowany w stronę najbliższego, kompatybilnego partnera. Algorytm skanuje otoczenie w promieniu zdefiniowanym konfiguracją (movement.seekMate.radius) i filtruje jednostki pod kątem zgodności gatunkowej, osiągnięcia dojrzałości płciowej oraz pełnego zdrowia (status HEALTHY). W przypadku braku odpowiednich kandydatów, strategia uruchamia mechanizm zapasowy (fallback), przechodząc w tryb błądzenia losowego.
      Specified by:
      calculateNextPosition in interface MovementStrategy
      Parameters:
      agent - Agent poszukujący partnera.
      world - Aktualny stan mapy dostarczający indeks przestrzenny sąsiadów.
      Returns:
      Nowa pozycja przybliżająca agenta do partnera lub losowy krok w terenie.