r4517 - developers/erin_yueh/pythonEFL-sudoku/src
erin_yueh at docs.openmoko.org
erin_yueh at docs.openmoko.org
Wed Jul 9 08:32:21 CEST 2008
Author: erin_yueh
Date: 2008-07-09 08:32:20 +0200 (Wed, 09 Jul 2008)
New Revision: 4517
Modified:
developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py
Log:
add solve function (Erin Yueh)
Modified: developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py
===================================================================
--- developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py 2008-07-08 13:48:00 UTC (rev 4516)
+++ developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py 2008-07-09 06:32:20 UTC (rev 4517)
@@ -44,7 +44,19 @@
if(value == puzzle[i][j]):
isOK = False
return isOK
-
+
+def solve():
+ isOK = True
+ puzzle = ee.data["puzzle"]
+ for i in xrange (9):
+ for j in xrange(9):
+ value = puzzle[i][j]
+ g = (i/3)*3 + (j/3)
+ print i,j,g,value
+ if(checkRow(i,value) == False or checkColumn(j,value) == False or checkGroup(g,value) == False):
+ return False
+ return isOK
+
def analyze(button,value):
isOK = True
puzzle = ee.data["puzzle"]
@@ -57,16 +69,7 @@
print i,j,g
if(checkRow(i,value) == False or checkColumn(j,value) == False or checkGroup(g,value) == False):
return False
- '''
- if (checkRow(i,value) == False):
- return False
- elif(checkColumn(j,value) == False):
- return False
- elif(checkGroup(g,value) == False):
- return False
- '''
- #if not(checkRow(i,value) or checkColumn(j,value) or checkGroup(g,value)):
- # isOK = True
+
return isOK
def number_key_cb(zoom_in, emission, source):
@@ -94,7 +97,14 @@
elif(source =='undo' or source == 'redo'):
print 'undo or redo'
elif(source == 'solve'):
- print 'solve'
+ print 'is solved?!'
+ if(solve() == False):
+ print 'NO'
+ else:
+ print 'YES'
+ elif(source == 'create'):
+ print 'create'
+ createNewPuzzle()
else:
# fill in key number
if(ee.data["clicking"]):
@@ -144,6 +154,29 @@
return p
+def createNewPuzzle():
+
+ puzzle = get_puzzle()
+ print 'puzzle',puzzle
+ for i in xrange(9):
+ for j in xrange(9):
+ ee.data["puzzle"][i][j] = puzzle[i][j]
+ ee.data["puzzle_clone"][i][j] = puzzle[i][j]
+ value = puzzle[i][j]
+ addr = j + i *9
+ text_data = "button" + str(addr)
+ text = ee.data[text_data]
+ text.data["value"] = value
+ text.text_set(str(value))
+ if(value>0):
+ text.color_set(10,10,10,200)
+ text.data["fixed"] = True
+ elif(value==0):
+ text.color_set(0,255,255,255)
+ text.data["fixed"] = False
+
+ return True
+
def main():
global ee
@@ -214,10 +247,7 @@
text.data["fixed"] = False
text_data = "button" + str(addr)
ee.data[text_data] = text
- #print 'TRY:',text_data, ee.data[text_data]
-
-
ee.show()
#ecore.animator_add(animate_line)
#ecore.animator_frametime_set(1.0 / 30.0)
More information about the commitlog
mailing list