Estou desenvolvendo um jogo / simulação em que agentes estão lutando por terra. Eu tenho a situação mostrada na figura abaixo:
Essas criaturas estão andando e ocupando pedaços de terra em que pisam se estiverem livres. Para tornar isso mais interessante, quero introduzir um comportamento de "patrulhamento", de modo que os agentes estejam realmente andando por suas terras para patrulhar qualquer intruso que queira levá-la.
No lado técnico, cada quadrado é representado como uma x,y
posição e como uma dimensão representando seu comprimento lateral. Ele também contém informações sobre quem ocupa a praça. Todos os quadrados são armazenados em um ArrayList
.
Como posso introduzir um comportamento de patrulhamento? O que eu quero é que cada agente patrulhe uma certa parte da área (eles dividem entre si quais áreas patrulharão). O principal problema que encontrei é o seguinte:
- A área de terra é muito aleatória, como pode ser visto na figura. É bastante difícil entender onde estão os limites em cada direção.
- Como os agentes deveriam dividir as regiões para patrulhar?
- Áreas de terra podem ser desarticuladas, pois a equipe adversária pode tomar o território do meio.
Tive a ideia de tomar o quadrado mais distante em cada direção, tratando-os como limites da área e dividir regiões com base nesses limites, mas isso pode incluir muitas terras irrelevantes.
Como devo abordar esse problema?