The Strategy

One of the first things our team agreed on going in is that strategy is a very important point.  We decided to first come up with a simple but effective strategy, then build our robot around it.

Based on the placement of the pockets and the necessity of the 4-pocket to either team's score, we decided to somehow prevent our opponent from scoring in its 4-pocket and score all our points in our 2-pocket.  This way, we would end up with 12 points, and the only way our opponent could win is by:

(1a) realizing their 4-pocket is blocked and adjusting their strategy mid-match to dump the remaining balls in their 2-pocket
OR
(1b) performing a similar strategy at the beginning of the game

AND
(2) putting the skunk ball in our starting area. 

Robots heading for the 4-pocket directly would get stuck or disoriented when they hit us, and robots wandering the other way around the board would have already dumped the necessary balls in the 1 and 2 pockets, ending up with only 1, 2, or 3 points.  It seemed unlikely that another robot would be able to realize its 4-pocket was blocked and proceed to scoring in the 2-pocket.

The first strategy we attempted to implement was going straight to the opponent's 4-pocket (the closest pocket to our starting area) and sitting there.  This robot would extend an arm over our 2-pocket, letting the balls roll down into it.  With this strategy, we would never leave the 4-pocket.

Against a robot that could successfully navigate around the board and score all the points requested, blocking the opponent's 4-pocket is essentially the same as scoring in ours.  However, against a placebo, blocking the 4-pocket does nothing.  After the mock competition, we realized we were placing more emphasis on blocking our opponent than scoring our own points.  With this strategy (or at least our implementation of it), the many things that could go wrong in a robot affected our chance to score any points at all, which would have automatically disqualified us from the match.

Although we couldn't eliminate the chance for errors, we could shift the majority of the things that could go wrong until after we had scored our points.  We immediately rebuilt the scoring mechanism of our robot, taking on a new strategy.  This time our robot would go directly to our 2-pocket, dump all our balls, and return to our opponent's 4-pocket, waiting out the rest of the match.  This method was very simple and very reliable.

Realizing many teams were coming up with the same strategy and not wanting matches to be decided by coin toss, we, with a few days left, decided our robot would make a mad dash for the skunk ball.  With our robot fully decorated in sensors, our robot planned to sit in front of the 4-pocket, waiting to be hit.  If we were hit, our opponent was depending on their 4-pocket and we could just stay there, assuming they had leftover balls and had scored less than 12 points.  Otherwise, it was likely our opponent had the same strategy as us, and our robot needed to break the tie.

Unfortunately, after many battery switches, two happyboards, a lot of pauses in the code, and much frustration, the skunk ball dash worked sometimes but was often cut off in the middle by a board reset or panic.

We won the competition though, without successfully retrieving the skunk ball, proving the earlier part of our strategy sufficient, and much more important.  Although our robot was very simple, the fact that it reliably and quickly scored every time won us all our matches.