全局变量不是全局变量吗?

问题描述 投票:1回答:2

即使未完成,这也是打井字游戏,下面的代码是我的整个程序,没有其他导入或类似的东西,当我有top_left = turn时,它意味着更改变量在顶部top_left处将值设置为1或2,当变量更改时,它的意思是在左上角或顶部中间正方形中为1绘制0,以得到2,您会在其中一个正方形中获得X值更改为一或两个,但不绘制X或0


global top_left, top_middle, top_right
global middle_left, center, middle_right
global bottom_left, bottom_middle, bottom_right

#these are the variables used to check if someone has put their move their already
#0 = empty
#1 = Circle
#2  = X

top_left = 0
top_middle = 0
top_right = 0

middle_left = 0
center = 0
middle_right = 0

bottom_left = 0
bottom_middle = 0
bottom_right = 0


#code for changing turns
turn = 1
def turn_changer():
    global turn
    if turn == 1:
        turn = 2
    else:
        turn = 1

#board setup
def setup():

    size(600,600)

#this hurt my brain trying to fully understand
#lines dividing board
def draw():

    for y in range(3):
        for x in range(3):
            rect(200*x,200*y,200,200)
    #hope this is not what geomtry is like

    #top left ellipse
    if top_left == 1:
        ellipse(100,100,150,150)

    #top left X
    elif top_left == 2:
        line(0,0,200,200)
        line(200,0,0,200)

    #top middle ellipse
    if top_middle == 1:
        ellipse(300,100,150,150)

    #top middle  X
    elif top_middle == 2:
        line(200,0,400,200)
        line(400,0,200,200)

    #top right ellipse
    if top_right == 1:
        ellipse(500,100,150,150)

    #top right X
    elif top_right == 2:
        line(400,0,600,200)
        line(600,0,400,200)

    #middle left ellipse
    if middle_left == 1:
        ellipse(100,300,150,150)

    #middle left X
    elif middle_left == 2:
        line(0,200,200,400)
        line(200,200,0,400)

    #middle ellipse
    if center == 1:
        ellipse(300,300,150,150)

    #middle X
    elif center == 2:
        line(200,200,400,400)
        line(400,200,200,400)

    #middle right ellipse
    if middle_right == 1:
        ellipse(500,300,150,150)

    #middle right X
    elif middle_right == 2:
        line(400,200,600,400)
        line(600,200,400,400)

    #bottom left ellipse
    if bottom_left == 1:
        ellipse(100,500,150,150)

    #bottom left  X
    elif bottom_left == 2:
        line(0,400,200,600)
        line(200,400,0,600)

    #bottom middle ellipse
    if bottom_middle == 1:
        ellipse(300,500,150,150)

    #bottom middle X
    elif bottom_middle == 2:
        line(200,400,400,600)
        line(400,400,200,600)

    #bottom right ellipse
    if bottom_right == 1:
        ellipse (500,500,150,150)

    #bottom right X
    elif bottom_right == 2:
        line(400,400,600,600)
        line(600,400,400,600)

#dectects the quardnates where the mouse clicked and prints them
def mousePressed():
    println( (mouseX, mouseY) )

    #top left square hitbox
    if (mouseX > 0 and mouseX < 200) and (mouseY > 0 and mouseY < 200):
        top_left = turn
        turn_changer()
        print("top left")
        print(top_left)

    #top middle square hitbox 
    elif (mouseX > 200 and mouseX < 400) and (mouseY > 0 and mouseY < 200):     
        top_middle = turn
        turn_changer()

        print(top_middle)
        print("top middle")

    #top right square hitbox  
    elif (mouseX > 400 and mouseX < 600) and (mouseY > 0 and mouseY < 200):  
        turn_changer()
        print("top right")

    #middle left square hitbox
    elif (mouseX > 0  and mouseX < 200) and (mouseY > 200 and mouseY < 400):  
        turn_changer()
        print("middle left")

    #center square hitbox
    elif (mouseX > 200 and mouseX < 400) and (mouseY > 200 and mouseY < 400):  
        turn_changer()
        print("middle")  

    #middle right square hitbox
    elif (mouseX > 400 and mouseX < 600) and (mouseY > 200 and mouseY < 400):  
        turn_changer()
        print("middle right") 

    #bottom left square hitbox
    elif (mouseX > 0 and mouseX < 200) and (mouseY > 400 and mouseY < 600):  
        turn_changer()
        print("bottom left")

    #bottom middle square hitbox
    elif (mouseX > 200 and mouseX < 400) and (mouseY > 400 and mouseY < 600):  
        turn_changer()
        print("bottom middle")

    #bottom right square hitbox
    elif (mouseX > 400 and mouseX < 600) and (mouseY > 400 and mouseY < 600):  
        turn_changer()
        print("bottom right")
python processing
2个回答
1
投票

global statement是一个声明,适用于整个当前代码块。这意味着列出的标识符将被解释为全局标识符。


1
投票

似乎您已经定义了一些函数,但是您并未调用其中任何一个。您的程序在运行时应如何知道要使用哪个程序?

© www.soinside.com 2019 - 2024. All rights reserved.