diff --git a/src/go/core.py b/src/go/core.py --- a/src/go/core.py +++ b/src/go/core.py @@ -35,7 +35,7 @@ class Go: self._helper.clear() if not self._helper.floodFill(-color,row+r,col+c,EMPTY): self._remove() - # check for suicide + # check for suicide and prevent it self._helper.clear() if not self._helper.floodFill(color,row,col,EMPTY): self.board[row][col]=EMPTY @@ -46,7 +46,7 @@ class Go: return True def undoMove(self,r,c,captures): - assert self.board[r][c]==-1*self.toMove + assert self.board[r][c]==-1*self.toMove, "{0}!={1}".format(self.board[r][c],-1*self.toMove) self.toMove*=-1 self.board[r][c]=self.toMove if len(captures)>0: @@ -62,6 +62,11 @@ class Go: (r,c,color)=res return self.doMove(color,r,c) + def load(self,board): + for (r,row) in enumerate(board): + for (c,x) in enumerate(row): + self.board[r][c]=x + def hash(self): return hashBoard(self.board)