如何检查我的python乌龟中的sudoku是否正确?

发布于 2025-02-11 17:06:06 字数 20779 浏览 0 评论 0原文

我正在尝试编写一个Sudoku程序。它有效,绘制板子,您可以通过单击屏幕,选择一个框(A2或C7或G4等),然后输入1到9的数字来自己填充缺失的数字。我还添加了一个重置​​按钮这清除了您添加的所有数字。但是现在我也想做,以便检查sudoku是否正确。但是我想不出一种方法。我尝试使用:

#checks for a win
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9:
        win.goto(0,0)
        win.color("green")
        win.write("Correct", font=("Arial", 64, "bold"), align="center")
    else:
        win.clear()
        pass

部分,但是每当我输入一个数字时,我都会遇到错误。我仍然可以继续播放THO,每次输入一个数字时,它只是给我一个错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Applications/Thonny.app/Contents/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "/Applications/Thonny.app/Contents/Frameworks/Python.framework/Versions/3.7/lib/python3.7/turtle.py", line 675, in eventfun
    fun(x, y)
  File "/Users/xxx/Library/CloudStorage/OneDrive-xxx/python/sudoku 4 .py", line 480, in play
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9:
NameError: name 'a5' is not defined

但是变量定义正确吗?输入号码时,我会添加它们。因此,我所做的是,每个空盒子都有一个变量,每次您在一个空框中输入一个数字时,它都会更改为您放入的数字。然后,当所有数字正确时,它都会告诉您。这是整个代码,对不起,如果它太长或有点混乱,我正在努力:

import turtle

tur = turtle.Turtle() #turtle for writing missing numbers
tur.speed(0)
tur.up()
tur.ht()

pen = turtle.Turtle() #turtle for drawing the whole board and known numbers
pen.speed(0)
pen.up()
pen.ht()

win = turtle.Turtle() #turtle for when you have it correct
win.ht()
win.speed(0)
win.up()

screen = turtle.Screen()
screen.setup(800,800)
screen.tracer(0)

LENGTH_BOARD = 600

fontBoard = ("Arial", 14,)
fontNumbers = ("Arial", 36)

#this is function for writing the known numbers
def sudokuSetup(x,y,height,length,text,color):
    pen.goto(x,y)
    pen.color(color)
    pen.right(90)
    pen.forward(height)
    pen.left(90)
    pen.backward(LENGTH_BOARD/19)
    pen.forward(length)
    pen.write(text, font=fontNumbers, align="center")

#this is function for writing the missing numbers put in by the user
def sudokuPlay(x,y,height,length,text):
    #drawing white square/erase previous number
    tur.goto(x,y)
    tur.color("white")
    tur.fillcolor("white")
    tur.right(90)
    tur.forward(height-50)
    tur.left(90)
    tur.backward(LENGTH_BOARD/19)
    tur.forward(length-30)
    tur.down()
    tur.begin_fill()
    for i in range(3):
        tur.forward(60)
        tur.right(90)
    tur.forward(60)
    tur.end_fill()
    tur.up()

    #going to right position and writing the number
    tur.goto(x,y)
    tur.color("dark blue")
    tur.right(180)
    tur.forward(height)
    tur.left(90)
    tur.backward(LENGTH_BOARD/19)
    tur.forward(length)
    tur.write(text, font=fontNumbers, align="center")

#letters on left side
def letters(text,length):
    pen.forward(length/9)
    pen.write(text, font=fontBoard, align="center")

#the board itself
def board(x,y,length):
    pen.goto(x,y)
    pen.down()
    
    #border
    for i in range(4):
        pen.width(2)
        pen.forward(length)
        pen.right(90)
    
    #lines vertical
    for i in range(3):
        for i in range(2):
            pen.width(1)
            pen.forward(length/9)
            pen.right(90)
            pen.forward(length)
            pen.right(180)
            pen.forward(length)
            pen.right(90)
            
        pen.forward(length/9)
        pen.right(90)
        pen.width(2)
        pen.forward(length)
        pen.right(180)
        pen.forward(length)
        pen.right(90)
        
    pen.up()
    pen.width(1)
    pen.goto(x,y)
    pen.right(90)
    pen.down() 
    
    #horizontal lines
    for i in range(3):
        for i in range(2):
            pen.width(1)
            pen.forward(length/9)
            pen.left(90)
            pen.forward(length)
            pen.left(180)
            pen.forward(length)
            pen.left(90)
            
        pen.forward(length/9)
        pen.left(90)
        pen.width(2)
        pen.forward(length)
        pen.left(180)
        pen.forward(length)
        pen.left(90)
    
    #numbers on top
    numb = 1
    pen.up()
    pen.goto(x,y)
    pen.left(180)
    pen.forward(20)
    pen.right(90)
    pen.backward(length/18)
    for i in range(9):
        pen.forward(length/9)
        pen.write(f"{numb}", font=fontBoard, align="center")
        numb += 1
    
    #letters on left side
    pen.goto(x,y)
    pen.left(180)
    pen.forward(20)
    pen.left(90)
    pen.backward(length/20)
    letters("A",length)
    letters("B",length)
    letters("C",length)
    letters("D",length)
    letters("E",length)
    letters("F",length)
    letters("G",length)
    letters("H",length)
    letters("I",length)
    
    pen.left(90)
    
    #these are the known numbers
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*1, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*3, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*4, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*6, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*7, "4","black")

    sudokuSetup(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*1, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*2, "2","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*2, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*3, "7","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*8, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*9, "1","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*3, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*5, "1","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*8, "8","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*1, "9","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*4, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*5, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*6, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*9, "5","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*2, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*5, "9","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*7, "6","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*1, "1","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*2, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*7, "2","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*8, "5","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*8, "7","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*9, "4","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*3, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*4, "2","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*6, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*7, "3","black")

#the reset button
def reset_button():
    pen.goto(-100,-320)
    pen.down()
    for i in range(2):
        pen.forward(200)
        pen.right(90)
        pen.forward(65)
        pen.right(90)
    pen.up()
    pen.goto(0,-360)
    pen.write("Reset board", font= ("Arial", 20, "normal"), align="center")

#draws everything
def draw_board():
    board(-300,300,LENGTH_BOARD)
    reset_button()
    screen.update()

#the game
def play(x,y):
   
    if x > -300 and x < 300 and y > -300 and y < 300: #if you click on the board
        which_one = turtle.textinput("Welk vakje?" , "In welk vakje wil je een nummer plaatsen?") #it asks for the box
        what_number = turtle.numinput("Welk nummer?", "Welk nummer wil je invoeren?", minval=1, maxval=9) #and then for a number 1-9
        
        if which_one == "A2" or which_one == "a2": #when you choose box a2
            a2 = 0 #variable a2 is set to 0 
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*2, int(what_number)) #fills in the number in the right box
            a2 += what_number #changes the a2 variable to the number you entered
        
        elif which_one == "B3" or which_one == "b3": #then it repeats for all the empty boxes
            b3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*3, int(what_number))
            b3 += what_number
        
        elif which_one == "C1" or which_one == "c1":
            c1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*1, int(what_number))
            c1 += what_number
    
        elif which_one == "A5" or which_one == "a5":
            a5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*5, int(what_number))
            a5 += what_number
    
        elif which_one == "B4" or which_one == "b4":
            b4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*4, int(what_number))
            b4 += what_number
        
        elif which_one == "B5" or which_one == "b5":
            b5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*5, int(what_number))
            b5 += what_number
        
        elif which_one == "B6" or which_one == "b6":
            b6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*6, int(what_number))
            b6 += what_number
        
        elif which_one == "C4" or which_one == "c4":
            c4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*4, int(what_number))
            c4 += what_number
        
        elif which_one == "C5" or which_one == "c5":
            c5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*5, int(what_number))
            c5 += what_number
        
        elif which_one == "C6" or which_one == "c6":
            c6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*6, int(what_number))
            c6 += what_number
    
        elif which_one == "A8" or which_one == "a8":
            a8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*8, int(what_number))
            a8 += what_number
        
        elif which_one == "A9" or which_one == "a9":
            a9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*9, int(what_number))
            a9 += what_number
        
        elif which_one == "B7" or which_one == "b7":
            b7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*7, int(what_number))
            b7 += what_number
        
        elif which_one == "B8" or which_one == "b8":
            b8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*8, int(what_number))
            b8 += what_number
        
        elif which_one == "B9" or which_one == "b9":
            b9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*9, int(what_number))
            b9 += what_number
        
        elif which_one == "C7" or which_one == "c7":
            c7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*7, int(what_number))
            c7 += what_number
    
        elif which_one == "D1" or which_one == "d1":
            d1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*1, int(what_number))
            d1 += what_number
        
        elif which_one == "D2" or which_one == "d2":
            d2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*2, int(what_number))
            d2 += what_number
        
        elif which_one == "E2" or which_one == "e2":
            e2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*2, int(what_number))
            e2 += what_number
        
        elif which_one == "E3" or which_one == "e3":
            e3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*3, int(what_number))
            e3 += what_number
        
        elif which_one == "F1" or which_one == "f1":
            f1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*1, int(what_number))
            f1 += what_number
        
        elif which_one == "F3" or which_one == "f3":
            f3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*3, int(what_number))
            f3 += what_number
    
        elif which_one == "D4" or which_one == "d4":
            d4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*4, int(what_number))
            d4 += what_number
        
        elif which_one == "D6" or which_one == "d6":
            d6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*6, int(what_number))
            d6 += what_number
        
        elif which_one == "F4" or which_one == "f4":
            f4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*4, int(what_number))
            f4 += what_number
        
        elif which_one == "F6" or which_one == "f6":
            f6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*6, int(what_number))
            f6 += what_number
    
        elif which_one == "D7" or which_one == "d7":
            d7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*7, int(what_number))
            d7 += what_number
        
        elif which_one == "D9" or which_one == "d9":
            d9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*9, int(what_number))
            d9 += what_number
        
        elif which_one == "E7" or which_one == "e7":
            e7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*7, int(what_number))
            e7 += what_number
        
        elif which_one == "E8" or which_one == "e8":
            e8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*8, int(what_number))
            e8 += what_number
        
        elif which_one == "F8" or which_one == "f8":
            f8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*8, int(what_number))
            f8 += what_number
            
        elif which_one == "F9" or which_one == "f9":
            f9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*9, int(what_number))
            f9 += what_number
    
        elif which_one == "G3" or which_one == "g3":
            g3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*3, int(what_number))
            g3 += what_number
        
        elif which_one == "H1" or which_one == "h1":
            h1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*1, int(what_number))
            h1 += what_number
        
        elif which_one == "H2" or which_one == "h2":
            h2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*2, int(what_number))
            h2 += what_number
        
        elif which_one == "H3" or which_one == "h3":
            h3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*3, int(what_number))
            h3 += what_number
        
        elif which_one == "I1" or which_one == "i1":
            i1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*1, int(what_number))
            i1 += what_number
            
        elif which_one == "I2" or which_one == "i2":
            i2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*2, int(what_number))
            i2 += what_number
    
        elif which_one == "G4" or which_one == "g4":
            g4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*4, int(what_number))
            g4 += what_number
        
        elif which_one == "G5" or which_one == "g5":
            g5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*5, int(what_number))
            g5 += what_number
        
        elif which_one == "G6" or which_one == "g6":
            g6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*6, int(what_number))
            g6 += what_number
        
        elif which_one == "H4" or which_one == "h4":
            h4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*4, int(what_number))
            h4 += what_number
        
        elif which_one == "H5" or which_one == "h5":
            h5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*5, int(what_number))
            h5 += what_number
            
        elif which_one == "H6" or which_one == "h6":
            h6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*6, int(what_number))
            h6 += what_number
        
        elif which_one == "I5" or which_one == "i5":
            i5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*5, int(what_number))
            i5 += what_number
    
        elif which_one == "G9" or which_one == "g9":
            g9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*9, int(what_number))
            g9 += what_number
        
        elif which_one == "H7" or which_one == "h7":
            h7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*7, int(what_number))
            h7 += what_number
        
        elif which_one == "I8" or which_one == "i8":
            i8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*8, int(what_number))
            i8 += what_number
        
        elif which_one == "I9" or which_one == "i9":
            i9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*9, int(what_number))
            i9 += what_number
        
        else: #when you fill in anything else
            pass
    
    #this is the reset button
    elif x > -100 and x < 100 and y > -400 and y < -320: #if you click on the reset button
        tur.clear() #it resets the numbers you put in
        win.clear() #it resets the win turtle if you won and want to do it again for some reason :p
        
    #checks for a win
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9: 
#if all the variables have the right number
        win.goto(0,0)
        win.color("green")
        win.write("Correct", font=("Arial", 64, "bold"), align="center") #it writes "Correct" on screen
    else: #if the variables dont have the right number
        win.clear() #it clears win turtle just in case
        pass #and it passes so you can keep playing

draw_board() #draws everything
turtle.onscreenclick(play, 1, True) #makes sure you can click
turtle.done()

我希望我在代码中做什么很清楚!如果没有,请告诉我,那我可以更改或更好地解释。 :)

I'm trying to write a sudoku program. It works, it draws the board and you can fill in the missing numbers yourself by clicking on the screen, selecting a box (A2 or C7 or G4 etc.) and then entering a number from 1 to 9. I also added a reset button that clears all the numbers you added. But now I also wanted to make it so that it checks whether the sudoku is correct or not. But I can't think of a way to do that. I tried it with the:

#checks for a win
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9:
        win.goto(0,0)
        win.color("green")
        win.write("Correct", font=("Arial", 64, "bold"), align="center")
    else:
        win.clear()
        pass

part, but then I get the error whenever I enter a number. I can still keep playing tho, it just gives me an error everytime I enter a number:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/Applications/Thonny.app/Contents/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 1705, in __call__
    return self.func(*args)
  File "/Applications/Thonny.app/Contents/Frameworks/Python.framework/Versions/3.7/lib/python3.7/turtle.py", line 675, in eventfun
    fun(x, y)
  File "/Users/xxx/Library/CloudStorage/OneDrive-xxx/python/sudoku 4 .py", line 480, in play
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9:
NameError: name 'a5' is not defined

But the variables are defined right? I add them when you enter a number. So what I did was, every empty box has a variable and everytime you enter a number in an empty box, it changes that variable to the number you put in. And then when all the numbers are correct, it tells you so. This is the whole code, sorry if it's too long or a bit messy, I'm working on that:

import turtle

tur = turtle.Turtle() #turtle for writing missing numbers
tur.speed(0)
tur.up()
tur.ht()

pen = turtle.Turtle() #turtle for drawing the whole board and known numbers
pen.speed(0)
pen.up()
pen.ht()

win = turtle.Turtle() #turtle for when you have it correct
win.ht()
win.speed(0)
win.up()

screen = turtle.Screen()
screen.setup(800,800)
screen.tracer(0)

LENGTH_BOARD = 600

fontBoard = ("Arial", 14,)
fontNumbers = ("Arial", 36)

#this is function for writing the known numbers
def sudokuSetup(x,y,height,length,text,color):
    pen.goto(x,y)
    pen.color(color)
    pen.right(90)
    pen.forward(height)
    pen.left(90)
    pen.backward(LENGTH_BOARD/19)
    pen.forward(length)
    pen.write(text, font=fontNumbers, align="center")

#this is function for writing the missing numbers put in by the user
def sudokuPlay(x,y,height,length,text):
    #drawing white square/erase previous number
    tur.goto(x,y)
    tur.color("white")
    tur.fillcolor("white")
    tur.right(90)
    tur.forward(height-50)
    tur.left(90)
    tur.backward(LENGTH_BOARD/19)
    tur.forward(length-30)
    tur.down()
    tur.begin_fill()
    for i in range(3):
        tur.forward(60)
        tur.right(90)
    tur.forward(60)
    tur.end_fill()
    tur.up()

    #going to right position and writing the number
    tur.goto(x,y)
    tur.color("dark blue")
    tur.right(180)
    tur.forward(height)
    tur.left(90)
    tur.backward(LENGTH_BOARD/19)
    tur.forward(length)
    tur.write(text, font=fontNumbers, align="center")

#letters on left side
def letters(text,length):
    pen.forward(length/9)
    pen.write(text, font=fontBoard, align="center")

#the board itself
def board(x,y,length):
    pen.goto(x,y)
    pen.down()
    
    #border
    for i in range(4):
        pen.width(2)
        pen.forward(length)
        pen.right(90)
    
    #lines vertical
    for i in range(3):
        for i in range(2):
            pen.width(1)
            pen.forward(length/9)
            pen.right(90)
            pen.forward(length)
            pen.right(180)
            pen.forward(length)
            pen.right(90)
            
        pen.forward(length/9)
        pen.right(90)
        pen.width(2)
        pen.forward(length)
        pen.right(180)
        pen.forward(length)
        pen.right(90)
        
    pen.up()
    pen.width(1)
    pen.goto(x,y)
    pen.right(90)
    pen.down() 
    
    #horizontal lines
    for i in range(3):
        for i in range(2):
            pen.width(1)
            pen.forward(length/9)
            pen.left(90)
            pen.forward(length)
            pen.left(180)
            pen.forward(length)
            pen.left(90)
            
        pen.forward(length/9)
        pen.left(90)
        pen.width(2)
        pen.forward(length)
        pen.left(180)
        pen.forward(length)
        pen.left(90)
    
    #numbers on top
    numb = 1
    pen.up()
    pen.goto(x,y)
    pen.left(180)
    pen.forward(20)
    pen.right(90)
    pen.backward(length/18)
    for i in range(9):
        pen.forward(length/9)
        pen.write(f"{numb}", font=fontBoard, align="center")
        numb += 1
    
    #letters on left side
    pen.goto(x,y)
    pen.left(180)
    pen.forward(20)
    pen.left(90)
    pen.backward(length/20)
    letters("A",length)
    letters("B",length)
    letters("C",length)
    letters("D",length)
    letters("E",length)
    letters("F",length)
    letters("G",length)
    letters("H",length)
    letters("I",length)
    
    pen.left(90)
    
    #these are the known numbers
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*1, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*3, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*4, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*6, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*7, "4","black")

    sudokuSetup(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*1, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*2, "2","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*2, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*3, "7","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*8, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*9, "1","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*3, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*5, "1","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*8, "8","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*1, "9","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*4, "8","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*5, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*6, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*9, "5","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*2, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*5, "9","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*7, "6","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*1, "1","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*2, "3","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*7, "2","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*8, "5","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*8, "7","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*9, "4","black")
    
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*3, "5","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*4, "2","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*6, "6","black")
    sudokuSetup(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*7, "3","black")

#the reset button
def reset_button():
    pen.goto(-100,-320)
    pen.down()
    for i in range(2):
        pen.forward(200)
        pen.right(90)
        pen.forward(65)
        pen.right(90)
    pen.up()
    pen.goto(0,-360)
    pen.write("Reset board", font= ("Arial", 20, "normal"), align="center")

#draws everything
def draw_board():
    board(-300,300,LENGTH_BOARD)
    reset_button()
    screen.update()

#the game
def play(x,y):
   
    if x > -300 and x < 300 and y > -300 and y < 300: #if you click on the board
        which_one = turtle.textinput("Welk vakje?" , "In welk vakje wil je een nummer plaatsen?") #it asks for the box
        what_number = turtle.numinput("Welk nummer?", "Welk nummer wil je invoeren?", minval=1, maxval=9) #and then for a number 1-9
        
        if which_one == "A2" or which_one == "a2": #when you choose box a2
            a2 = 0 #variable a2 is set to 0 
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*2, int(what_number)) #fills in the number in the right box
            a2 += what_number #changes the a2 variable to the number you entered
        
        elif which_one == "B3" or which_one == "b3": #then it repeats for all the empty boxes
            b3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*3, int(what_number))
            b3 += what_number
        
        elif which_one == "C1" or which_one == "c1":
            c1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*1, int(what_number))
            c1 += what_number
    
        elif which_one == "A5" or which_one == "a5":
            a5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*5, int(what_number))
            a5 += what_number
    
        elif which_one == "B4" or which_one == "b4":
            b4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*4, int(what_number))
            b4 += what_number
        
        elif which_one == "B5" or which_one == "b5":
            b5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*5, int(what_number))
            b5 += what_number
        
        elif which_one == "B6" or which_one == "b6":
            b6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*6, int(what_number))
            b6 += what_number
        
        elif which_one == "C4" or which_one == "c4":
            c4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*4, int(what_number))
            c4 += what_number
        
        elif which_one == "C5" or which_one == "c5":
            c5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*5, int(what_number))
            c5 += what_number
        
        elif which_one == "C6" or which_one == "c6":
            c6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*6, int(what_number))
            c6 += what_number
    
        elif which_one == "A8" or which_one == "a8":
            a8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*8, int(what_number))
            a8 += what_number
        
        elif which_one == "A9" or which_one == "a9":
            a9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*1)-12, (LENGTH_BOARD/9)*9, int(what_number))
            a9 += what_number
        
        elif which_one == "B7" or which_one == "b7":
            b7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*7, int(what_number))
            b7 += what_number
        
        elif which_one == "B8" or which_one == "b8":
            b8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*8, int(what_number))
            b8 += what_number
        
        elif which_one == "B9" or which_one == "b9":
            b9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*2)-12, (LENGTH_BOARD/9)*9, int(what_number))
            b9 += what_number
        
        elif which_one == "C7" or which_one == "c7":
            c7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*3)-12, (LENGTH_BOARD/9)*7, int(what_number))
            c7 += what_number
    
        elif which_one == "D1" or which_one == "d1":
            d1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*1, int(what_number))
            d1 += what_number
        
        elif which_one == "D2" or which_one == "d2":
            d2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*2, int(what_number))
            d2 += what_number
        
        elif which_one == "E2" or which_one == "e2":
            e2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*2, int(what_number))
            e2 += what_number
        
        elif which_one == "E3" or which_one == "e3":
            e3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*3, int(what_number))
            e3 += what_number
        
        elif which_one == "F1" or which_one == "f1":
            f1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*1, int(what_number))
            f1 += what_number
        
        elif which_one == "F3" or which_one == "f3":
            f3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*3, int(what_number))
            f3 += what_number
    
        elif which_one == "D4" or which_one == "d4":
            d4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*4, int(what_number))
            d4 += what_number
        
        elif which_one == "D6" or which_one == "d6":
            d6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*6, int(what_number))
            d6 += what_number
        
        elif which_one == "F4" or which_one == "f4":
            f4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*4, int(what_number))
            f4 += what_number
        
        elif which_one == "F6" or which_one == "f6":
            f6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*6, int(what_number))
            f6 += what_number
    
        elif which_one == "D7" or which_one == "d7":
            d7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*7, int(what_number))
            d7 += what_number
        
        elif which_one == "D9" or which_one == "d9":
            d9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*4)-12, (LENGTH_BOARD/9)*9, int(what_number))
            d9 += what_number
        
        elif which_one == "E7" or which_one == "e7":
            e7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*7, int(what_number))
            e7 += what_number
        
        elif which_one == "E8" or which_one == "e8":
            e8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*5)-12, (LENGTH_BOARD/9)*8, int(what_number))
            e8 += what_number
        
        elif which_one == "F8" or which_one == "f8":
            f8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*8, int(what_number))
            f8 += what_number
            
        elif which_one == "F9" or which_one == "f9":
            f9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*6)-12, (LENGTH_BOARD/9)*9, int(what_number))
            f9 += what_number
    
        elif which_one == "G3" or which_one == "g3":
            g3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*3, int(what_number))
            g3 += what_number
        
        elif which_one == "H1" or which_one == "h1":
            h1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*1, int(what_number))
            h1 += what_number
        
        elif which_one == "H2" or which_one == "h2":
            h2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*2, int(what_number))
            h2 += what_number
        
        elif which_one == "H3" or which_one == "h3":
            h3 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*3, int(what_number))
            h3 += what_number
        
        elif which_one == "I1" or which_one == "i1":
            i1 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*1, int(what_number))
            i1 += what_number
            
        elif which_one == "I2" or which_one == "i2":
            i2 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*2, int(what_number))
            i2 += what_number
    
        elif which_one == "G4" or which_one == "g4":
            g4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*4, int(what_number))
            g4 += what_number
        
        elif which_one == "G5" or which_one == "g5":
            g5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*5, int(what_number))
            g5 += what_number
        
        elif which_one == "G6" or which_one == "g6":
            g6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*6, int(what_number))
            g6 += what_number
        
        elif which_one == "H4" or which_one == "h4":
            h4 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*4, int(what_number))
            h4 += what_number
        
        elif which_one == "H5" or which_one == "h5":
            h5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*5, int(what_number))
            h5 += what_number
            
        elif which_one == "H6" or which_one == "h6":
            h6 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*6, int(what_number))
            h6 += what_number
        
        elif which_one == "I5" or which_one == "i5":
            i5 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*5, int(what_number))
            i5 += what_number
    
        elif which_one == "G9" or which_one == "g9":
            g9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*7)-12, (LENGTH_BOARD/9)*9, int(what_number))
            g9 += what_number
        
        elif which_one == "H7" or which_one == "h7":
            h7 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*8)-12, (LENGTH_BOARD/9)*7, int(what_number))
            h7 += what_number
        
        elif which_one == "I8" or which_one == "i8":
            i8 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*8, int(what_number))
            i8 += what_number
        
        elif which_one == "I9" or which_one == "i9":
            i9 = 0
            sudokuPlay(-300,300,((LENGTH_BOARD/9)*9)-12, (LENGTH_BOARD/9)*9, int(what_number))
            i9 += what_number
        
        else: #when you fill in anything else
            pass
    
    #this is the reset button
    elif x > -100 and x < 100 and y > -400 and y < -320: #if you click on the reset button
        tur.clear() #it resets the numbers you put in
        win.clear() #it resets the win turtle if you won and want to do it again for some reason :p
        
    #checks for a win
    if a2==1 and a5==7 and a8==9 and a9==2 and b3==9 and b4==1 and b5==3 and b6==4 and b7==7 and b8==6 and b9==8 and c1==4 and c4==6 and c5==2 and c6==9 and c7==5 and d1==2 and d2==6 and d4==4 and d6==5 and d7==9 and d9==7 and e2==7 and e3==4 and e7==1 and e8==2 and f1==8 and f3==1 and f4==7 and f6==2 and f8==4 and f9==3 and g3==8 and g4==9 and g5==4 and g6==7 and g9==6 and h1==6 and h2==9 and h3==2 and h4==3 and h5==5 and h6==1 and h7==8 and i1==7 and i2==4 and i5==8 and i8==1 and i9==9: 
#if all the variables have the right number
        win.goto(0,0)
        win.color("green")
        win.write("Correct", font=("Arial", 64, "bold"), align="center") #it writes "Correct" on screen
    else: #if the variables dont have the right number
        win.clear() #it clears win turtle just in case
        pass #and it passes so you can keep playing

draw_board() #draws everything
turtle.onscreenclick(play, 1, True) #makes sure you can click
turtle.done()

I hope it is clear what I'm doing in my code! If not, please tell me, then I can change it or explain better. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文