diff --git a/src/statebag/boardstate.py b/src/statebag/boardstate.py --- a/src/statebag/boardstate.py +++ b/src/statebag/boardstate.py @@ -31,6 +31,19 @@ class GameTreeNode: self.prev=v self.weight=w + def exportRecord(self): + """:return: [(c,row,col), ...]. c in {BLACK,WHITE} == {1,-1}""" + sequence=[] + v=self + while v is not None: + sequence.append(v) + v=v.prev + + res=[] + for v in reversed(sequence): + res.extend(v.moves) + return res + class BoardState: def __init__(self,board): @@ -59,6 +72,11 @@ class BoardState: def exportDiff(self,s2): return "vvv\n{0}\n=== {1} ===\n{2}\n^^^".format(self.export(), s2-self, s2.export()) + def exportRecord(self): + """:return: [(c,row,col), ...]. c in {BLACK,WHITE} == {1,-1}""" + v=self.nodes[0] if self.nodes[0].weight>self.nodes[1].weight else self.nodes[1] + return v.exportRecord() + def __iter__(self): return iter(self._board) def __getitem__(self,key): return self._board[key]