From 7461e96feeac507345ec454fe0b3b097162c6ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Zurcher?= Date: Thu, 29 Oct 2015 14:13:55 +0100 Subject: SearchBoard: fix isFlankAttack() --- core/src/ch/asynk/rustanddust/engine/SearchBoard.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/core/src/ch/asynk/rustanddust/engine/SearchBoard.java b/core/src/ch/asynk/rustanddust/engine/SearchBoard.java index 923c263..eda9055 100644 --- a/core/src/ch/asynk/rustanddust/engine/SearchBoard.java +++ b/core/src/ch/asynk/rustanddust/engine/SearchBoard.java @@ -355,13 +355,15 @@ public class SearchBoard private boolean isFlankAttack(int angle, List los) { - Node before = los.get(los.size() - 3); Node from = los.get(los.size() - 2); Node to = los.get(los.size() - 1); - boolean special = (distance(from, to) == distance(before, to)); - Orientation o = Orientation.fromMove(to.col, to.row, from.col, from.row); - if (!special) + + if (los.size() < 3) + return o.isInSides(angle); + + Node before = los.get(los.size() - 3); + if (distance(before, to) > 1) return o.isInSides(angle); Orientation o2 = Orientation.fromMove(to.col, to.row, before.col, before.row); -- cgit v1.1-2-g2b99