summaryrefslogtreecommitdiffstats
path: root/core/src/ch/asynk/rustanddust/engine
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/ch/asynk/rustanddust/engine')
-rw-r--r--core/src/ch/asynk/rustanddust/engine/Board.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/src/ch/asynk/rustanddust/engine/Board.java b/core/src/ch/asynk/rustanddust/engine/Board.java
index f1e1583..1bc11c9 100644
--- a/core/src/ch/asynk/rustanddust/engine/Board.java
+++ b/core/src/ch/asynk/rustanddust/engine/Board.java
@@ -385,7 +385,17 @@ public abstract class Board implements Disposable, Animation
o = o.opposite();
boolean r = to.roadFrom(o);
int c = to.costFrom(pawn, o);
- if ((c < cost) || (r && (c == cost))) {
+ if (
+ // cheaper or same cost and ...
+ (c < cost) || ((c == cost) && (
+ // now road or same and ...
+ (!road && r) || ((road == r) && (
+ // nicer looking move
+ (o == Orientation.SOUTH || o == Orientation.NORTH)
+ ))
+ ))
+ )
+ {
entry = o;
cost = c;
road = r;