[gnome-games/gnome-2-30] 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/gnome-2-30] sudoku: Fix solver for new conflict resolution code
- Date: Mon, 26 Apr 2010 18:20:50 +0000 (UTC)
commit fe9aac07138c4cc1a54aaadd4bcbe52feb1e1160
Author: Jim Ross <jimbo dimensia com>
Date: Sun Apr 11 01:24:02 2010 +0000
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 c05d2a8..b7d7b44 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))
@@ -346,12 +347,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
@@ -505,7 +514,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]