Ich entwickle ein Spiel / eine Simulation, in der Agenten um Land kämpfen. Ich habe die Situation in der Abbildung unten gezeigt:
Diese Kreaturen laufen umher und besetzen Landstücke, auf die sie treten, wenn sie frei sind. Um dies interessanter zu gestalten, möchte ich "Patrouillen" -Verhalten einführen, sodass Agenten tatsächlich in ihrem Land herumlaufen, um vor Eindringlingen zu patrouillieren, die es möglicherweise übernehmen möchten.
Auf der technischen Seite wird jedes Quadrat als x,y
Position sowie als Maß für seine Seitenlänge dargestellt. Es enthält auch Informationen darüber, wer den Platz belegt. Alle Quadrate werden in einem gespeichert ArrayList
.
Wie kann ich Patrouillenverhalten einführen? Ich möchte, dass jeder Agent einen bestimmten Teil des Gebiets überwacht (sie teilen untereinander auf, welche Gebiete überwacht werden). Das Hauptproblem, das ich gefunden habe, ist wie folgt:
- Die Landfläche ist sehr zufällig, wie auf dem Bild zu sehen. Es ist ziemlich schwer zu verstehen, wo die Grenzen in jeder Richtung liegen.
- Wie sollten Agenten die Regionen aufteilen, um zu patrouillieren?
- Landflächen können unzusammenhängend sein, da das gegnerische Team Gebiet von der Mitte aus einnehmen kann.
Ich hatte die Idee, das am weitesten entfernte Quadrat in jede Richtung zu nehmen, diese als die Grenzen des Gebiets zu behandeln und Regionen basierend auf diesen Grenzen zu unterteilen, aber dies könnte viele irrelevante Flächen einschließen.
Wie soll ich dieses Problem angehen?