Estoy desarrollando un juego / simulación donde los agentes están luchando por la tierra. Tengo la situación que se muestra en la imagen a continuación:
Estas criaturas están caminando y ocupando trozos de tierra que pisan si son libres. Para hacer esto más interesante, quiero introducir un comportamiento de "patrullaje", de modo que los agentes estén caminando por sus tierras para patrullar de cualquier intruso que quiera tomarlo.
En el lado técnico, cada cuadrado se representa como una x,y
posición, así como una dimensión que representa la longitud de su lado. También contiene información sobre quién ocupa la plaza. Todos los cuadrados se almacenan en un ArrayList
.
¿Cómo puedo introducir el comportamiento de patrullaje? Lo que quiero es que cada agente patrulle una determinada parte del área (se dividen entre sí qué áreas patrullarán). El problema principal que he encontrado son los siguientes:
- El área de tierra es muy aleatoria, como se ve en la imagen. Es bastante difícil entender dónde están los límites en cada dirección.
- ¿Cómo deberían los agentes dividir las regiones para patrullar?
- Las áreas de tierra pueden ser disjuntas, ya que el equipo contrario puede tomar territorio desde el medio.
Tuve la idea de tomar el cuadrado más alejado en cada dirección, tratarlos como los límites del área y dividir las regiones en función de esos límites, pero esto podría incluir muchas tierras irrelevantes.
¿Cómo debería abordar este problema?