From 7f782ac29d18e8758e699c64cb2dd79027c4279a Mon Sep 17 00:00:00 2001 From: Hiraoka Date: Sun, 20 Sep 2020 23:30:15 +0900 Subject: [PATCH] quick & dirty patch for #752 (Fox SGF) --- src/main/java/featurecat/lizzie/analysis/Leelaz.java | 9 +++++++++ src/main/java/featurecat/lizzie/rules/SGFParser.java | 3 +++ 2 files changed, 12 insertions(+) diff --git a/src/main/java/featurecat/lizzie/analysis/Leelaz.java b/src/main/java/featurecat/lizzie/analysis/Leelaz.java index 438f9f2fc..e1f5042f3 100644 --- a/src/main/java/featurecat/lizzie/analysis/Leelaz.java +++ b/src/main/java/featurecat/lizzie/analysis/Leelaz.java @@ -58,6 +58,9 @@ public class Leelaz { private boolean isPondering; private long startPonderTime; + // enable temporary detaching for efficiency + public boolean isAttached = true; + // fixed_handicap public boolean isSettingHandicap = false; @@ -559,6 +562,9 @@ public void endModifyingBoard() { * @param move coordinate of the coordinate */ public void playMove(Stone color, String move) { + if (!isAttached) { + return; + } synchronized (this) { String colorString; switch (color) { @@ -646,6 +652,9 @@ public void handicap(int num) { } public void undo() { + if (!isAttached) { + return; + } synchronized (this) { sendCommand("undo"); bestMoves = new ArrayList<>(); diff --git a/src/main/java/featurecat/lizzie/rules/SGFParser.java b/src/main/java/featurecat/lizzie/rules/SGFParser.java index f2e9cf733..28dc01aae 100644 --- a/src/main/java/featurecat/lizzie/rules/SGFParser.java +++ b/src/main/java/featurecat/lizzie/rules/SGFParser.java @@ -121,7 +121,10 @@ private static boolean parse(String value) { Lizzie.leelaz.supportScoremean = false; } + // Detach engine for avoiding useless "play" and "undo" (#752). + Lizzie.leelaz.isAttached = false; parseValue(value, null, false); + Lizzie.leelaz.isAttached = true; return true; }