summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Schodet2013-05-09 12:19:58 +0200
committerNicolas Schodet2013-05-09 12:19:58 +0200
commitb1e468bbe07f5e0ec19066d6f9881cf4159e5a12 (patch)
tree27aad39d36424e644aee8f5c24831aa65378e3f7
parentd8ccdea2cb5315582d4129e22ae2b87c01736964 (diff)
digital/io-hub/src/apbirthday: give up candles after many tries
-rw-r--r--digital/io-hub/src/apbirthday/strat.cc4
-rw-r--r--digital/io-hub/src/apbirthday/strat.hh2
2 files changed, 6 insertions, 0 deletions
diff --git a/digital/io-hub/src/apbirthday/strat.cc b/digital/io-hub/src/apbirthday/strat.cc
index 29d6eb7d..c2ab4d61 100644
--- a/digital/io-hub/src/apbirthday/strat.cc
+++ b/digital/io-hub/src/apbirthday/strat.cc
@@ -181,6 +181,7 @@ Strat::decision (Position &pos)
pos.v = pg_cake_pos;
pos.a = 0;
last_decision_ = CANDLES;
+ candles_tries_ = 0;
return CANDLES;
case 2:
if (team_color)
@@ -211,6 +212,9 @@ strat_candles_score (int first, int last)
bool
Strat::decision_candles (CandlesDecision &decision, uint16_t robot_angle)
{
+ if (candles_tries_ > 5)
+ return false;
+ candles_tries_++;
// Make an evaluation of the best direction to follow.
// TODO: +1/-1 until candles at ends can be reached.
int limit, score_forward, score_backward;
diff --git a/digital/io-hub/src/apbirthday/strat.hh b/digital/io-hub/src/apbirthday/strat.hh
index 1f4365c6..76729bb7 100644
--- a/digital/io-hub/src/apbirthday/strat.hh
+++ b/digital/io-hub/src/apbirthday/strat.hh
@@ -98,6 +98,8 @@ class Strat
private:
/// Last taken decision.
Decision last_decision_;
+ /// Number of candles tries.
+ int candles_tries_;
/// Last plate decision.
PlateDecision plate_decision_;
/// Last gifts decision.