Open rafaelcaue opened 5 years ago
@AngeloFerrando instead of getting the first goal we will need something smarter, at least trying to find the best cluster from the ones we know.
Later on we should have some code for switching to a better cluster (that we didn't know before) too.
After looking at the code, goal areas are created in a way similar to the vision of an agent (with a smaller radius). A possible approach could be to store the center position and its radius instead of all possible goal positions (i.e., storing that the center goal position is (2,0) and radius 2). In this way we would automatically store information on different clusters since we store information only of different centers of goal areas. For doing this we could require an agent to go to a new goal position when it sees one, so that it will have enough vision to gather the required information and update its local map.
Regarding the selection of goal cluster, for the qualification I'd suggest to select simply the one that is closer to the involved agent (to be computed when the prerequisite for stopping the exploration are met).
After looking at the code, goal areas are created in a way similar to the vision of an agent (with a smaller radius). A possible approach could be to store the center position and its radius instead of all possible goal positions (i.e., storing that the center goal position is (2,0) and radius 2). In this way we would automatically store information on different clusters since we store information only of different centers of goal areas. For doing this we could require an agent to go to a new goal position when it sees one, so that it will have enough vision to gather the required information and update its local map.
I like that, I will try to have a think about how to implement it.
Regarding the selection of goal cluster, for the qualification I'd suggest to select simply the one that is closer to the involved agent (to be computed when the prerequisite for stopping the exploration are met).
This one is a bit more complicated. In a scenario such as the one below, it is possible to actually select the cluster to the south, which is a horrible position and we probably wouldn't be able to submit any tasks from there, unless we picked the top position in that cluster as origin (assuming there are no enemy agents there too).
We need a way to detect that there are multiple goal clusters, and which cluster is the best, and switching clusters if for example the enemy is occupying all goals in a cluster.