Changeset 4514
- Timestamp:
- 07/08/08 14:05:53 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
developers/erin_yueh/pythonEFL-sudoku/src/sudoku_ui.py
r4509 r4514 9 9 WINDOW_WIDTH = 455 10 10 WINDOW_HEIGHT = 640 11 11 GROUP_ROWCOL = { 12 '0': (0,0,0), '1':(1,0,3), '2':(2,0,6), 13 '3': (3,3,0), '4':(4,3,3), '5':(5,3,6), 14 '6': (6,6,0), '7':(7,6,3), '8':(8,6,6), 15 } 12 16 def checkRow(row,value): 13 17 isOK = True 14 15 return isOK 16 17 def checkLine(line,value): 18 isOK = True 19 18 puzzle = ee.data["puzzle"] 19 print 'checkRow',row,value 20 for j in xrange(9): 21 print puzzle[row][j] 22 if(value == puzzle[row][j]): 23 isOK = False 24 return isOK 25 26 def checkColumn(column,value): 27 isOK = True 28 puzzle = ee.data["puzzle"] 29 print 'checkColumn',column,value 30 for i in xrange(9): 31 print puzzle[i][column] 32 if(value == puzzle[i][column]): 33 isOK = False 20 34 return isOK 21 35 22 36 def checkGroup(group,value): 23 37 isOK = True 24 38 puzzle = ee.data["puzzle"] 39 print 'checkGroup',group,value 40 (group,r,c) = GROUP_ROWCOL[str(group)] 41 for i in xrange (r,r+3): 42 for j in xrange(c,c+3): 43 print puzzle[i][j] 44 if(value == puzzle[i][j]): 45 isOK = False 25 46 return isOK 26 47 27 48 def analyze(button,value): 28 isOK = False49 isOK = True 29 50 puzzle = ee.data["puzzle"] 30 51 # button40 2 … … 35 56 g = (i/3)*3 + (j/3) 36 57 print i,j,g 37 if not(checkRow(i,value) or checkLine(j,value) or checkGroup(g,value)): 38 isOK = True 58 if(checkRow(i,value) == False or checkColumn(j,value) == False or checkGroup(g,value) == False): 59 return False 60 ''' 61 if (checkRow(i,value) == False): 62 return False 63 elif(checkColumn(j,value) == False): 64 return False 65 elif(checkGroup(g,value) == False): 66 return False 67 ''' 68 #if not(checkRow(i,value) or checkColumn(j,value) or checkGroup(g,value)): 69 # isOK = True 39 70 return isOK 40 71 … … 43 74 44 75 if(source == 'clear'): 76 puzzle_clone = ee.data["puzzle_clone"] 45 77 puzzle = ee.data["puzzle"] 46 78 for i in xrange (9): 47 79 for j in xrange(9): 48 value = puzzle[i][j] 49 addr = i + j *9 80 value = puzzle_clone[i][j] 81 82 print 'i,j,value,puzzle[i][j]',i,j,value,puzzle[i][j] 83 puzzle[i][j] = value 84 addr = j + i *9 50 85 text_data = "button" + str(addr) 51 86 text = ee.data[text_data] … … 67 102 text.text_set(source) 68 103 text.data["value"] = int(source) 69 if(analyze(ee.data["clicking"],source) == False): 104 button = ee.data["clicking"] 105 addr = button[6:] 106 i = int(addr) / 9 107 j = int(addr) % 9 108 print i,j,addr 109 110 if(analyze(ee.data["clicking"],int(source)) == False): 70 111 text.color_set(255,0,0,255) 71 112 else: 72 113 text.color_set(255,255,255,255) 114 puzzle = ee.data["puzzle"] 115 puzzle[i][j] = int(source) 73 116 return True 74 117 … … 77 120 78 121 text = ee.data[source] 79 if( int(text.data["value"]) ==0):122 if(text.data["fixed"] == False): 80 123 text.color_set(255,255,255,255) 81 124 ee.data["clicking"] = source … … 133 176 134 177 puzzle = get_puzzle() 178 print 'puzzle',puzzle 179 puzzle_clone = [] 180 for i in xrange(9): 181 row = [] 182 for j in xrange(9): 183 row.append(puzzle[i][j]) 184 puzzle_clone.append(row) 185 print 'puzzle_clone', puzzle_clone 186 135 187 ee.data["puzzle"] = puzzle 136 print puzzle 188 ee.data["puzzle_clone"] = puzzle_clone 189 137 190 138 191 element_w = 455 / 9 … … 143 196 x = 15 + (element_w * (i)) 144 197 y = 15 + (element_h * (j)) 145 #print i,j 146 value = puzzle[i][j] 198 199 value = puzzle[j][i] 200 147 201 display = str(value) 148 addr = i + j *9 202 addr = j *9 + i 203 print 'row,column,value,addr: ',i,j,value,addr 149 204 text = canvas.Text(text=display, font=("sans serif", 16), color=(0,255,255,255)) 150 205 #print i,j,x,y … … 154 209 text.show() 155 210 text.data["value"] = value 211 if(value>0): 212 text.data["fixed"] = True 213 else: 214 text.data["fixed"] = False 156 215 text_data = "button" + str(addr) 157 216 ee.data[text_data] = text 158 print 'TRY:',text_data, ee.data[text_data]217 #print 'TRY:',text_data, ee.data[text_data] 159 218 160 219
Note: See TracChangeset
for help on using the changeset viewer.
