Strategy

Our strategy was simply to outscore the opposition so we built and coded the robot to run quickly and reliably. We obeserved during testing that collisions with the other robot were common and dangerous. Therefore we had our robot avoid the opposing robot for as long as practical to minimize the chances of collision. We also observed that dumping took a long time and so we waited to dump until the end of the round. Finally, we included timeouts on every loop of the code to minimize the chances that we would get stuck on the board or on the other robot and fail to score or dump.


Implementation

In the first ten seconds, we explored the board as quickly as we could to take advantage of the exploring bonus. Then, we moved on to our main strategy algorithm. Each territory was given a score based upon whether we had captured it, how many balls it had left, its distance from our current position, whether the opponent was in it, and its proximity to the opponent. We wanted to move to territories that had many balls left, didn't belong to us, and was far away from the opponent. The strategy code generates a score for each territory and finds the territory with the maximum score. Next, the robot moves to the selected territory and captures it if we don't already own it, mines the territory to exhaustion, and then calls the strategy code again. This cycle repeats until we have filled the basket or the round is close to ending. At that point, we run the dump code which dumps the balls in our scoring area while avoiding the other robot.