summaryrefslogtreecommitdiff
path: root/digital/io-hub/src/guybrush/strat.c
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-19 22:01:46 +0200
committerNicolas Schodet2012-05-19 22:01:46 +0200
commit71c6cc5f01a5914deaa381784cae31d11b2d0b60 (patch)
tree0aa7a405ec8229125593fe2e3d159298d901a44e /digital/io-hub/src/guybrush/strat.c
parent4b54db4a3d5bfc0e3c3e05d5b03fa2d6494a9bca (diff)
digital/io-hub/src/guybrush: prefer to unload in holds the first time
Diffstat (limited to 'digital/io-hub/src/guybrush/strat.c')
-rw-r--r--digital/io-hub/src/guybrush/strat.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/digital/io-hub/src/guybrush/strat.c b/digital/io-hub/src/guybrush/strat.c
index a07c1822..308bdd49 100644
--- a/digital/io-hub/src/guybrush/strat.c
+++ b/digital/io-hub/src/guybrush/strat.c
@@ -117,6 +117,8 @@ struct strat_t
vect_t prepared_pos;
/** Robot content estimation. */
uint8_t load;
+ /** Number of time the robot unloaded. */
+ uint8_t unload_nb;
/** Upper clamp is dead. */
uint8_t upper_clamp_dead;
/** Places information. */
@@ -210,7 +212,7 @@ strat_place_score (uint8_t i)
if (strat.upper_clamp_dead
&& strat_place[i].decision == STRAT_DECISION_TOTEM)
score -= 3000;
- if (strat.load <= 4
+ if (strat.load <= 4 && strat.unload_nb != 0
&& (i == STRAT_PLACE_CAPTAIN0 || i == STRAT_PLACE_CAPTAIN1))
score += 2000;
return score;
@@ -273,6 +275,7 @@ strat_success (void)
break;
case STRAT_DECISION_UNLOAD:
strat.load = 0;
+ strat.unload_nb++;
if (strat.last_place == STRAT_PLACE_CAPTAIN0
|| strat.last_place == STRAT_PLACE_CAPTAIN1)
{