Decision tree
Going into the competition, we knew that Botchon's mechanical design was not optimized to be disruptive. While other teams could capture several MINERS and push MINERS into hard-to-reach regions of the board, Botchon could only capture one MINER at a time and was not able to drive into corners.
However, humble Botchon made up for its pacifist nature with robustness. We knew it would reliably transport MINERs to any square we told it to, so we decided to optimize our strategy for which MINER to target and where to take it.
In the 24 hours before the competition, we implemented this decision tree to choose a MINER which takes into account not only where our MINERs are, whether they're mining, and whether they're detectable, but what the opponent team's MINERs are doing. From there, we would always transport the captured MINER into the nearest valid square (if we had captured our own MINER) or invalid square (if we had captured an enemy MINER).
The combination of Botchon's ability to reliably move MINERS and our strategic decision making meant that we were able to consistently collect points and protect our ability to do so. This ended up being a game winning strategy.
However, humble Botchon made up for its pacifist nature with robustness. We knew it would reliably transport MINERs to any square we told it to, so we decided to optimize our strategy for which MINER to target and where to take it.
In the 24 hours before the competition, we implemented this decision tree to choose a MINER which takes into account not only where our MINERs are, whether they're mining, and whether they're detectable, but what the opponent team's MINERs are doing. From there, we would always transport the captured MINER into the nearest valid square (if we had captured our own MINER) or invalid square (if we had captured an enemy MINER).
The combination of Botchon's ability to reliably move MINERS and our strategic decision making meant that we were able to consistently collect points and protect our ability to do so. This ended up being a game winning strategy.
The code for our decision library:
DecisionLib.h | |
File Size: | 0 kb |
File Type: | h |
DecisionLib.c | |
File Size: | 15 kb |
File Type: | c |