From 7a56763a4715aa61024bb31a6f2b5455ea1207ea Mon Sep 17 00:00:00 2001 From: melvinzhang Date: Wed, 29 Apr 2015 21:24:52 +0800 Subject: [PATCH] compute child desc before executeNextEvent as the executeEvent may alter result of choice[0].toString, for example, in the case of revealing cards --- src/magic/ai/MCTSAI.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/magic/ai/MCTSAI.java b/src/magic/ai/MCTSAI.java index e96956d55b..c00e12d3c5 100644 --- a/src/magic/ai/MCTSAI.java +++ b/src/magic/ai/MCTSAI.java @@ -378,9 +378,10 @@ public class MCTSAI implements MagicAI { if (curr.size() < choices.size()) { final int idx = curr.size(); final Object[] choice = choices.get(idx); + final String choiceStr = MCTSGameTree.obj2String(choice[0]); game.executeNextEvent(choice); final MCTSGameTree child = new MCTSGameTree(curr, idx, game.getScore()); - assert (child.desc = MCTSGameTree.obj2String(choice[0])).equals(child.desc); + assert (child.desc = choiceStr).equals(child.desc); curr.addChild(child); path.add(child); return path;