From 87cfcbf7c046abe40ef9b6303adcc3fb6d49309c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20W=C3=B6lfer?= Date: Sat, 20 Apr 2019 03:03:49 +0200 Subject: [PATCH] Added debug branch, to make optimized run faster --- shenzhen_solitaire/board_actions.py | 8 ++++---- shenzhen_solitaire/solver.py | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/shenzhen_solitaire/board_actions.py b/shenzhen_solitaire/board_actions.py index cd0dc8b..0d91258 100644 --- a/shenzhen_solitaire/board_actions.py +++ b/shenzhen_solitaire/board_actions.py @@ -16,15 +16,15 @@ class Action: pass def apply(self, action_board: board.Board) -> None: - #print(f"Applying {str(self)}") assert self._before_state == 0 assert self._after_state == 0 - self._before_state = action_board.state_identifier + if __debug__: + self._before_state = action_board.state_identifier self._apply(action_board) - self._after_state = action_board.state_identifier + if __debug__: + self._after_state = action_board.state_identifier def undo(self, action_board: board.Board) -> None: - #print(f"Undoing {str(self)}") assert action_board.state_identifier == self._after_state self._undo(action_board) assert action_board.state_identifier == self._before_state diff --git a/shenzhen_solitaire/solver.py b/shenzhen_solitaire/solver.py index 9cd0a51..c24b938 100644 --- a/shenzhen_solitaire/solver.py +++ b/shenzhen_solitaire/solver.py @@ -56,6 +56,11 @@ class SolitaireSolver: def solve(self) -> Iterator[List[board_actions.Action]]: while self.stack: + if len(self.stack) == -1: + self.stack.pop() + self.stack.action_stack[-1].undo(self.search_board) + assert (self.search_board.state_identifier + in self.state_set) assert (self.search_board.state_identifier == self.stack.state_stack[-1])