Я разрабатываю игру / симулятор, где агенты сражаются за землю. У меня есть ситуация, показанная на картинке ниже:
Эти существа ходят вокруг и занимают участки земли, на которые они ступают, если они свободны. Чтобы сделать это более интересным, я хочу представить «патрулирующее» поведение, чтобы агенты фактически ходили по своей земле, чтобы патрулировать от любых злоумышленников, которые могут захотеть взять это.
С технической стороны каждый квадрат представлен как x,y
позиция, а также размер, представляющий длину его стороны. Он также содержит информацию о том, кто занимает площадь. Все квадраты хранятся в ArrayList
.
Как я могу представить патрулирование? Я хочу, чтобы каждый агент патрулировал определенную часть области (они делят между собой, какие области они будут патрулировать). Основная проблема, которую я обнаружил, заключается в следующем:
- Площадь земли очень случайная, как видно на картинке. Довольно сложно понять, где находятся границы в каждом направлении.
- Как им агенты должны разделить регионы для патрулирования?
- Участки земли могут быть непересекающимися, так как противоборствующая команда может захватить территорию с середины.
У меня была идея взять самый дальний квадрат в каждом направлении, рассматривая их как границы области, и разделить регионы на основе этих границ, но это может включать в себя множество не относящихся к делу земель.
Как мне подойти к этой проблеме?