Author: abaine Date: Tue Aug 21 13:30:41 2007 New Revision: 213
Modified: trunk/funds/examples/sudoku.lisp Log: Eliminated un-needed functions from solver.
Modified: trunk/funds/examples/sudoku.lisp ============================================================================== --- trunk/funds/examples/sudoku.lisp (original) +++ trunk/funds/examples/sudoku.lisp Tue Aug 21 13:30:41 2007 @@ -46,15 +46,10 @@ (round (expt (puzzle-size puzzle) 3))))
(defun puzzle-solved-p (puzzle) - (= (round (expt (puzzle-size puzzle) 2)) - (tree-count +true+ (puzzle-tree puzzle) :key #'bt-value :test #'=))) - -(defun puzzle-solvable-p (puzzle) (let ((size (puzzle-size puzzle))) - (iter (for f in x-y-z-functions) - (always (iter (for x below size) - (always (iter (for y below size) - (always (group-solvable puzzle f x y))))))))) + (= (round (expt size 2)) + (tree-count +true+ (puzzle-tree + puzzle) :key #'bt-value :test #'=))))
(defun fill-true (puzzle i j k) (fill-falses (set-to-true puzzle i j k) i j k)) @@ -190,21 +185,6 @@ (mod x order)) k)))
-(defun group-solved (puzzle x-y-z-function x y) - (let ((size (puzzle-size puzzle))) - (= 1 (iter (for z below size) - (count (elt-true-p (multiple-value-call - #'puzzle-elt puzzle - (funcall x-y-z-function x y z size)))))))) - -(defun group-solvable (puzzle x-y-z-function x y) - (let ((size (puzzle-size puzzle))) - (iter (for z below size) - (for elt = (multiple-value-call #'puzzle-elt - puzzle (funcall x-y-z-function x y z size))) - (thereis (or (elt-unknown-p elt) - (elt-true-p elt)))))) - (defvar x-y-z-functions (list #'i-j-k-coordinates #'i-k-j-coordinates #'j-k-i-coordinates