* MOVEMENT STATES
************************************************************************/
+static enum strategy {
+ OPPONENTS_ORAGES_TOO,
+ CORNS_ONLY
+} strategy = OPPONENTS_ORAGES_TOO;
+
static enum which_side which_slope;
static int slope_cnt = 0;
FSM_STATE(approach_the_slope)
{
switch(FSM_EVENT) {
case EV_ENTRY:
- if (slope_cnt == 0) {
- which_slope = MINE;
- FSM_TRANSITION(climb_the_slope);
- } else if (slope_cnt == 1) {
- which_slope = OPPONENTS;
-
- robot_goto_trans(
- x_coord(0.3, which_slope),
- PLAYGROUND_HEIGHT_M - ROBOT_WIDTH_M/2 - 0.03,
- ARRIVE_FROM(DEG2RAD(0), 0.02),
- &tcFast);
- } else {
- which_slope = MINE;
- FSM_TRANSITION(approach_next_corn);
+ if (strategy == OPPONENTS_ORAGES_TOO) {
+ if (slope_cnt == 0) {
+ which_slope = MINE;
+ FSM_TRANSITION(climb_the_slope);
+ } else if (slope_cnt == 1) {
+ which_slope = OPPONENTS;
+ robot_goto_trans(
+ x_coord(0.3, which_slope),
+ PLAYGROUND_HEIGHT_M - ROBOT_WIDTH_M/2 - 0.03,
+ ARRIVE_FROM(DEG2RAD(0), 0.02),
+ &tcFast);
+ } else {
+ which_slope = MINE;
+ FSM_TRANSITION(approach_next_corn);
+ }
+ } else if (strategy == CORNS_ONLY) {
}
slope_cnt++;
break;