Sto sviluppando un gioco / simulazione in cui gli agenti stanno combattendo per la terra. Ho la situazione mostrata nella foto qui sotto:
Queste creature stanno camminando e occupando pezzi di terra su cui calpestano se sono libere. Per renderlo più interessante, voglio introdurre un comportamento di "pattugliamento", in modo tale che gli agenti stiano effettivamente camminando intorno alla loro terra per pattugliare eventuali intrusi che potrebbero voler prenderlo.
Dal punto di vista tecnico, ogni quadrato è rappresentato sia come x,y
posizione che come dimensione che rappresenta la sua lunghezza laterale. Contiene anche informazioni su chi occupa la piazza. Tutti i quadrati sono memorizzati in un ArrayList
.
Come posso introdurre un comportamento di pattugliamento? Quello che voglio è che ogni agente pattuglia una certa porzione dell'area (si dividono tra loro le aree che pattugliano). Il problema principale che ho riscontrato sono i seguenti:
- L'area di terra è molto casuale, come si vede nella foto. È piuttosto difficile capire dove siano i limiti in ogni direzione.
- In che modo gli agenti dovrebbero dividere le regioni per pattugliare?
- Le aree di terra possono essere disgiunte, poiché la squadra avversaria può prendere il territorio dal centro.
Ho avuto l'idea di prendere il quadrato più lontano in ogni direzione, trattando quelli come i confini dell'area e dividere le regioni in base a quei confini, ma questo potrebbe includere un sacco di terra irrilevante.
Come dovrei affrontare questo problema?