我正在练习python的基本概念,并尝试在Tkinter的帮助下对'SUDOKU'游戏进行编程。但是,当我尝试使用reset函数清除所有Entry字段时,程序发生冲突,因为只有最后一行的Entries被执行,除了整个2D列表。
def reset():
for i in range(0,rows,1):
for j in range(0,cols,1):
col[i][j].delete(0,"end")
from Tkinter import Tk,Canvas,Entry,Button,CENTER,IntVar
root = Tk()
screen = Canvas(root,height = 430,width = 460)
screen.pack()
screen.create_text(200,15,text = 'SUDOKU',font = 'calibri 20 bold')
screen.create_line(127,54,127,408)
screen.create_line(232,232,408)
screen.create_line(24,170,336,170)
screen.create_line(24,290,290)
check_button = Button(root,text = 'Check',font = 'Calibri 10 bold',bd = 0,bg = 'Green',fg = 'white',padx = 10,pady = 5)
screen.create_window(400,70,window = check_button)
reset_button = Button(root,text = 'Reset',bg = 'Red',pady = 5,command = reset)
screen.create_window(400,110,window = reset_button)
x,y,n = 0,0
cols,values = 9,9,81
col = [[None]*cols]*rows
val = [[IntVar]*cols]*rows
for i in range(0,1):
x = 0
if i == 0:
y += 70
else:
y += 40
for j in range(0,1):
x += 40
col[i][j] = Entry(root,width = 2,font = 'Calibri 20',justify = CENTER)
screen.create_window(x,window = col[i][j])
x -= 5
root.mainloop()