# HG changeset patch # User Laman # Date 2017-12-16 15:56:41 # Node ID 231b6d9b956192d68aa32f05f770c2e9aab5ebf2 # Parent 32221aadca28d27c73ac5325216a8f777cedf47a engine: slightly enhanced handling movelist diff --git a/src/go/engine.py b/src/go/engine.py --- a/src/go/engine.py +++ b/src/go/engine.py @@ -66,7 +66,8 @@ class Engine: def dfs(self,state2,limit): g=self._g - for (r,c) in self._moveList[(1-g.toMove)>>1]: + moveSet=self._moveList[(1-g.toMove)>>1] + for (r,c) in moveSet.copy(): if g.board[r][c]!=EMPTY: continue neighbours=( g.board[r-1][c] if r>0 else None, @@ -75,18 +76,27 @@ class Engine: g.board[r][c+1] if c+11: - toMove=-1*g.toMove seq=self.dfs(state2,limit-1) if seq: - seq.append((toMove,r,c)) + g.undoMove(r,c,captured) + moveSet.add((r,c)) + seq.append((g.toMove,r,c)) return seq + g.undoMove(r,c,captured) + moveSet.add((r,c)) return False eng=Engine()