Rozwijam grę / symulację, w której agenci walczą o ziemię. Mam sytuację pokazaną na poniższym obrazku:
Te stworzenia chodzą i zajmują fragmenty ziemi, po których nadepną, jeśli są wolne. Aby uczynić to bardziej interesującym, chcę wprowadzić zachowanie „patrolujące”, tak że agenci faktycznie chodzą po swojej ziemi, aby patrolować od intruzów, którzy mogą chcieć ją wziąć.
Po stronie technicznej każdy kwadrat jest reprezentowany jako x,y
pozycja oraz wymiar reprezentujący jego długość boku. Zawiera także informacje o tym, kto zajmuje plac. Wszystkie kwadraty są przechowywane w ArrayList
.
Jak mogę wprowadzić zachowanie patrolujące? Chcę, aby każdy agent patrolował określoną część obszaru (dzielą między sobą, które obszary będą patrolować). Główny problem, który znalazłem, jest następujący:
- Obszar lądu jest bardzo przypadkowy, jak widać na zdjęciu. Trudno jest zrozumieć, gdzie są granice w każdym kierunku.
- Jak powinni rozdzielić regiony na patrole?
- Obszary lądowe mogą być rozłączne, ponieważ drużyna przeciwna może zajmować terytorium od środka.
Wpadłem na pomysł, by obrać najbliższy kwadrat w każdym kierunku, traktując je jak granice obszaru i podzielić regiony na podstawie tych granic, ale może to obejmować wiele nieistotnych gruntów.
Jak mam podejść do tego problemu?