From 496a3be3cd66969c5c7335750494eddefed2cb93 Mon Sep 17 00:00:00 2001 From: Hiraoka Date: Sat, 2 Jun 2018 21:08:31 +0900 Subject: [PATCH 1/3] Skip empty content of KM[] in SGF --- src/main/java/featurecat/lizzie/rules/SGFParser.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/featurecat/lizzie/rules/SGFParser.java b/src/main/java/featurecat/lizzie/rules/SGFParser.java index d496c23a3..1c5898f45 100644 --- a/src/main/java/featurecat/lizzie/rules/SGFParser.java +++ b/src/main/java/featurecat/lizzie/rules/SGFParser.java @@ -164,7 +164,11 @@ private static boolean parse(String value) { } else if (tag.equals("PW")) { whitePlayer = tagContent; } else if (tag.equals("KM")) { - Lizzie.board.getHistory().getGameInfo().setKomi(Double.parseDouble(tagContent)); + try { + Lizzie.board.getHistory().getGameInfo().setKomi(Double.parseDouble(tagContent)); + } catch (NumberFormatException e) { + e.printStackTrace(); + } } break; case ';': From 2121e955ad7edb70dd005c3218a41c6ec178be19 Mon Sep 17 00:00:00 2001 From: Hiraoka Date: Sat, 2 Jun 2018 21:08:39 +0900 Subject: [PATCH 2/3] Keep GameInfo for handicapped games --- src/main/java/featurecat/lizzie/rules/Board.java | 2 ++ src/main/java/featurecat/lizzie/rules/BoardHistoryList.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/featurecat/lizzie/rules/Board.java b/src/main/java/featurecat/lizzie/rules/Board.java index fcac07cc7..f04e96767 100644 --- a/src/main/java/featurecat/lizzie/rules/Board.java +++ b/src/main/java/featurecat/lizzie/rules/Board.java @@ -283,8 +283,10 @@ public void flatten() { Stone[] stones = history.getStones(); boolean blackToPlay = history.isBlacksTurn(); Zobrist zobrist = history.getZobrist().clone(); + BoardHistoryList oldHistory = history; history = new BoardHistoryList(new BoardData(stones, null, Stone.EMPTY, blackToPlay, zobrist, 0, new int[BOARD_SIZE * BOARD_SIZE], 0, 0, 0.0, 0)); + history.setGameInfo(oldHistory.getGameInfo()); } /** diff --git a/src/main/java/featurecat/lizzie/rules/BoardHistoryList.java b/src/main/java/featurecat/lizzie/rules/BoardHistoryList.java index aaf6764d5..4ecee7644 100644 --- a/src/main/java/featurecat/lizzie/rules/BoardHistoryList.java +++ b/src/main/java/featurecat/lizzie/rules/BoardHistoryList.java @@ -25,6 +25,10 @@ public GameInfo getGameInfo() { return gameInfo; } + public void setGameInfo(GameInfo gameInfo) { + this.gameInfo = gameInfo; + } + /** * Clear history. */ From 153c4e7ec44361b387f65027c542556928354ffe Mon Sep 17 00:00:00 2001 From: Hiraoka Date: Sat, 2 Jun 2018 21:08:46 +0900 Subject: [PATCH 3/3] Assume komi = 0.0 for empty content of KM[] in SGF --- src/main/java/featurecat/lizzie/rules/SGFParser.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/featurecat/lizzie/rules/SGFParser.java b/src/main/java/featurecat/lizzie/rules/SGFParser.java index 1c5898f45..dbe5e5f16 100644 --- a/src/main/java/featurecat/lizzie/rules/SGFParser.java +++ b/src/main/java/featurecat/lizzie/rules/SGFParser.java @@ -165,6 +165,9 @@ private static boolean parse(String value) { whitePlayer = tagContent; } else if (tag.equals("KM")) { try { + if (tagContent.trim().isEmpty()) { + tagContent = "0.0"; + } Lizzie.board.getHistory().getGameInfo().setKomi(Double.parseDouble(tagContent)); } catch (NumberFormatException e) { e.printStackTrace();