Я розробляю гру / симуляцію, де агенти борються за землю. У мене ситуація показана на малюнку нижче:
Ці істоти гуляють навколо і займають шматки землі, на яку наступають, якщо вони вільні. Щоб зробити це більш цікавим, я хочу ввести "патрульну" поведінку, щоб агенти насправді ходили по своїй землі, щоб патрулювати будь-яких зловмисників, які, можливо, захочуть її взяти.
З технічної сторони кожен квадрат представлений у вигляді а x,y
позиція, а також розмір, що представляє його бічну довжину. Він також містить інформацію про те, хто займає площу. Усі квадрати зберігаються в ArrayList
.
Як можна ввести поведінку патрулювання? Я хочу, щоб кожен агент мав патруль певної частини району (вони поділяють між собою, на які ділянки вони будуть патрулювати). Основна проблема, яку я знайшов, полягає в наступному:
- Площа суші дуже випадкова, як видно на малюнку. Досить складно зрозуміти, де межі в кожному напрямку.
- Як вони повинні агенти розділити регіони на патрулювання?
- Земельні ділянки можуть бути непересічними, оскільки протилежна команда може зайняти територію з середини.
У мене виникла ідея взяти найдальшу площу в кожному напрямку, розглядати їх як межі району та розділити регіони на основі цих меж, але це може включати безліч невідповідних земель.
Як слід підходити до цієї проблеми?