summaryrefslogtreecommitdiffstats
path: root/core/src
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-09-24 16:08:20 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2014-09-24 16:08:20 +0200
commit99c197a15f73c7ab0f4c6c527a3c08265e085ae1 (patch)
treec061e705a4c1a6bfdd2bb792ee2ab964462a5239 /core/src
parent45cd3556d32e2ca11010e290486d6204b9149b3e (diff)
downloadRustAndDust-99c197a15f73c7ab0f4c6c527a3c08265e085ae1.zip
RustAndDust-99c197a15f73c7ab0f4c6c527a3c08265e085ae1.tar.gz
SearchBoard: update if roadMarch and (mvtLeft > bonus) overtake dst.mvtLeft
Diffstat (limited to 'core/src')
-rw-r--r--core/src/ch/asynk/tankontank/engine/SearchBoard.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/core/src/ch/asynk/tankontank/engine/SearchBoard.java b/core/src/ch/asynk/tankontank/engine/SearchBoard.java
index 1c7f67f..b4b0584 100644
--- a/core/src/ch/asynk/tankontank/engine/SearchBoard.java
+++ b/core/src/ch/asynk/tankontank/engine/SearchBoard.java
@@ -91,6 +91,8 @@ public class SearchBoard
start.roadMarch = true;
stack.push(start);
+ int roadMarchBonus = pawn.roadMarch();
+
boolean first = true;
while (stack.size() != 0) {
@@ -98,7 +100,7 @@ public class SearchBoard
if (src.mvtLeft <= 0) {
if (src.roadMarch) {
- src.mvtLeft = board.getTile(src.col, src.row).roadMarchBonus(pawn);
+ src.mvtLeft = roadMarchBonus;
roadMarch.push(src);
}
continue;
@@ -118,7 +120,7 @@ public class SearchBoard
boolean roadMarch = road && src.roadMarch;
if (dst.search == searchCount) {
- if ((r >= 0) && ((r > dst.mvtLeft) || roadMarch)) {
+ if ((r >= 0) && ((r > dst.mvtLeft) || (roadMarch && ((r + roadMarchBonus) >= dst.mvtLeft)))) {
dst.mvtLeft = r;
dst.parent = src;
dst.roadMarch = roadMarch;