Changeset 4509
- Timestamp:
- 07/07/08 12:40:01 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py
r4506 r4509 10 10 WINDOW_HEIGHT = 640 11 11 12 def button_cb(zoom_in, emission, source): 13 print 'emission,source:',emission,source 12 def checkRow(row,value): 13 isOK = True 14 15 return isOK 16 17 def checkLine(line,value): 18 isOK = True 19 20 return isOK 21 22 def checkGroup(group,value): 23 isOK = True 24 25 return isOK 26 27 def analyze(button,value): 28 isOK = False 29 puzzle = ee.data["puzzle"] 30 # button40 2 31 addr = button[6:] 32 print addr, value 33 i = int(addr) / 9 34 j = int(addr) % 9 35 g = (i/3)*3 + (j/3) 36 print i,j,g 37 if not(checkRow(i,value) or checkLine(j,value) or checkGroup(g,value)): 38 isOK = True 39 return isOK 40 41 def number_key_cb(zoom_in, emission, source): 42 print 'number_key_cb emission,source:',emission,source 43 44 if(source == 'clear'): 45 puzzle = ee.data["puzzle"] 46 for i in xrange (9): 47 for j in xrange(9): 48 value = puzzle[i][j] 49 addr = i + j *9 50 text_data = "button" + str(addr) 51 text = ee.data[text_data] 52 text.data["value"] = value 53 text.text_set(str(value)) 54 if(value>0): 55 text.color_set(10,10,10,200) 56 elif(value==0): 57 text.color_set(0,255,255,255) 58 print 'clear all data!!' 59 elif(source =='undo' or source == 'redo'): 60 print 'undo or redo' 61 elif(source == 'solve'): 62 print 'solve' 63 else: 64 # fill in key number 65 if(ee.data["clicking"]): 66 text = ee.data[ee.data["clicking"]] 67 text.text_set(source) 68 text.data["value"] = int(source) 69 if(analyze(ee.data["clicking"],source) == False): 70 text.color_set(255,0,0,255) 71 else: 72 text.color_set(255,255,255,255) 73 return True 74 75 def puzzle_key_cb(zoom_in, emission, source): 76 print 'puzzle_key_cb emission,source:',emission,source 77 78 text = ee.data[source] 79 if(int(text.data["value"]) ==0 ): 80 text.color_set(255,255,255,255) 81 ee.data["clicking"] = source 14 82 15 83 return True 16 84 17 18 def puzzle_but_number_cb(zoom_in, emission, source):19 print 'emission,source:',emission,source20 21 return True22 23 85 def get_puzzle(): 24 86 25 87 file_name = "/usr/share/sudoku/puzzle/1000" 26 88 fIn = open(file_name, 'r') 27 89 fIn.seek(82*(random.randint(1, 1000))) 28 90 l = fIn.readline() 29 91 30 92 if (len(l) != 82): 31 print " xxx"93 print "the puzzle is wrong!!" 32 94 33 95 p = [] … … 37 99 t.append(int(l[i * 9 + j])) 38 100 p.append(t) 39 40 101 41 102 return p 42 103 43 104 def main(): 44 105 … … 59 120 # create puzzle and icons 60 121 area = edje.Edje(canvas, file="/usr/share/sudoku/sudoku.edj", group="pythonEFL-sudoku/panel") 122 area.signal_callback_add("mouse,clicked,*", "*", number_key_cb) 61 123 area.pos = (0, 0) 62 124 area.size = canvas.size 63 125 area.show() 64 126 area.data["area"] = area 65 # set a signal callback for all buttons66 area.signal_callback_add("mouse,clicked,*", "*", button_cb)67 127 68 128 # create puzzle and icons 69 129 board = edje.Edje(canvas, file="/usr/share/sudoku/sudoku.edj", group="pythonEFL-sudoku/board") 70 board.signal_callback_add("mouse,clicked,*", "*", puzzle_ but_number_cb)130 board.signal_callback_add("mouse,clicked,*", "*", puzzle_key_cb) 71 131 board.pos = (0, 0) 72 #test.size = canvas.size73 132 board.show() 74 133 75 134 puzzle = get_puzzle() 135 ee.data["puzzle"] = puzzle 76 136 print puzzle 77 137 78 element_w = 4 80/ 979 element_h = 4 80/ 9138 element_w = 455 / 9 139 element_h = 455 / 9 80 140 # put all elements to Text objects 81 141 for i in xrange (9): 82 142 for j in xrange(9): 83 x = 5 + (element_w * (i))84 y = 5 + (element_h * (j))143 x = 15 + (element_w * (i)) 144 y = 15 + (element_h * (j)) 85 145 #print i,j 86 146 value = puzzle[i][j] 87 147 display = str(value) 88 addr = i *9 + j148 addr = i + j *9 89 149 text = canvas.Text(text=display, font=("sans serif", 16), color=(0,255,255,255)) 90 150 #print i,j,x,y 151 if(value>0): 152 text.color_set(10,10,10,200) 91 153 text.pos_set(x,y) 92 154 text.show() 155 text.data["value"] = value 93 156 text_data = "button" + str(addr) 94 157 ee.data[text_data] = text
Note: See TracChangeset
for help on using the changeset viewer.
