From af2c0ff9dffa4d66b9aa87d955eaaa9235be27dd Mon Sep 17 00:00:00 2001 From: Hamed Gorjiara Date: Thu, 27 Dec 2018 16:35:18 -0800 Subject: [PATCH] Bug fix --- killerSudoku/csolversudoku.py | 36 +++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/killerSudoku/csolversudoku.py b/killerSudoku/csolversudoku.py index a333277b..ed20da85 100644 --- a/killerSudoku/csolversudoku.py +++ b/killerSudoku/csolversudoku.py @@ -189,27 +189,27 @@ def generateKillerSudokuConstraints(N, killerRules, serialize): # Ensure there's no undefined element (for each cell we have a rule) validateElements(problem) # ensure each cell at least has one value! - for i,row in enumerate(problem): - for j, elem in enumerate(row): - constr = [] - for econst in elemConsts: - s1 = csolverlb.getElementRange(solver, elem) - sconst = csolverlb.getElementRange(solver,econst) - d = [s1,sconst] - domain = (c_void_p *len(d))(*d) - equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS)) - inp = [elem,econst] - inputs = (c_void_p*len(inp))(*inp) - constr.append( csolverlb.applyPredicate(solver,equals, inputs, c_uint(2))) - b = (c_void_p*len(constr))(*constr) - b = csolverlb.applyLogicalOperation(solver, ps.LogicOps.SATC_OR, b, len(constr)) - csolverlb.addConstraint(solver,b); +# for i,row in enumerate(problem): +# for j, elem in enumerate(row): +# constr = [] +# for econst in elemConsts: +# s1 = csolverlb.getElementRange(solver, elem) +# sconst = csolverlb.getElementRange(solver,econst) +# d = [s1,sconst] +# domain = (c_void_p *len(d))(*d) +# equals = csolverlb.createPredicateOperator(solver, c_uint(ps.CompOp.SATC_EQUALS)) +# inp = [elem,econst] +# inputs = (c_void_p*len(inp))(*inp) +# constr.append( csolverlb.applyPredicate(solver,equals, inputs, c_uint(2))) +# b = (c_void_p*len(constr))(*constr) +# b = csolverlb.applyLogicalOperation(solver, ps.LogicOps.SATC_OR, b, len(constr)) +# csolverlb.addConstraint(solver,b); #ensure each cell at least has one value -# for i,row in enumerate(problem): -# for j, elem in enumerate(row): -# csolverlb.mustHaveValue(solver, elem) + for i,row in enumerate(problem): + for j, elem in enumerate(row): + csolverlb.mustHaveValue(solver, elem) # ensure rows have distinct values for i in range( N): -- 2.34.1