[gnome-games] sudoku: Fix solver for new conflict resolution code
- From: Thomas Hindoe Paaboel Andersen <thomashpa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games] sudoku: Fix solver for new conflict resolution code
- Date: Sun, 11 Apr 2010 20:11:47 +0000 (UTC)
commit 277f2dc91426066296abfa1c3fdf1952fcc0fb68
Author: Jim Ross <jimbo dimensia com>
Date: Sat Apr 10 21:24:02 2010 -0400
sudoku: Fix solver for new conflict resolution code
GNOME bug #608907
gnome-sudoku/src/lib/sudoku.py | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/sudoku.py b/gnome-sudoku/src/lib/sudoku.py
index aa4fda2..7d0a62b 100644
--- a/gnome-sudoku/src/lib/sudoku.py
+++ b/gnome-sudoku/src/lib/sudoku.py
@@ -111,6 +111,7 @@ class SudokuGrid(object):
self.cols = []
self.rows = []
self.boxes = []
+ self.conflicts = ParallelDict()
self.group_size = int(group_size)
self.verbose = False
self.gen_set = set(range(1, self.group_size + 1))
@@ -347,12 +348,20 @@ class SudokuSolver (SudokuGrid):
('Row', self.row_coords, self.rows),
('Box', self.box_coords, self.boxes)]:
for n, coord_set in coord_dic.items():
+ skip_set = False
+ for coord in coord_set:
+ if self.conflicts.has_key(coord):
+ skip_set = True
+ break
+ if skip_set:
+ continue
needs = dict([(n, False) for n in range(1, self.group_size + 1)])
for coord in coord_set:
val = self._get_(*coord)
if val:
# We already have this value set...
- del needs[val]
+ if needs.has_key(val):
+ del needs[val]
else:
# Otherwise, register ourselves as possible
# for each number we could be
@@ -510,7 +519,6 @@ class InteractiveSudoku (SudokuSolver):
solving."""
def __init__ (self, grid = False, verbose = False, group_size = 9):
SudokuSolver.__init__(self, grid, verbose, group_size)
- self.conflicts = ParallelDict()
self.cleared_conflicts = []
def to_string (self):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]