鱼C论坛

 找回密码
 立即注册
查看: 2002|回复: 9

[已解决]python做作品发生了我自个儿无法解决的事情,求助

[复制链接]
发表于 2022-7-28 15:16:11 | 显示全部楼层 |阅读模式
5鱼币
python做作品发生了我自个儿无法解决的事情,求助
代码如下:
import easygui as g
import random as r
def 井字棋():
    棋 = ['  ','  ','  ','  ','  ','  ','  ','  ','  ']
    #     1(0) 2(1) 3(2) 4(3) 5(4) 6(5) 7(6) 8(7) 9(8) 分别对应九个格子:
    #                                                     ┏━┳━┳━┓
    #                                                   1 ┃1 ┃2 ┃3 ┃
    #                                                     ┣━╋━╋━┫
    #                                                   2 ┃4 ┃5 ┃6 ┃
    #                                                     ┣━╋━╋━┫
    #                                                   3 ┃7 ┃8 ┃9 ┃
    #                                                     ┗━┻━┻━┛
    #                                                       一  二  三
    title = '井字棋'
    次 = 0
    def 井_开始():
        global 人     #每次到这里就会出错,会提示“‘人’不是变量(NameError: name '人' is not defined)”,如果把‘global 人’删掉,就会提示“‘人’变量无法在函数里使用,因为它不是全局变量(UnboundLocalError: local variable '人' referenced before assignment)”,这要怎么改呀?
        choices = ['(一,1)','(二,1)','(三,1)','(一,2)','(二,2)','(三,2)','(一,3)','(二,3)','(三,3)']
        选择 = g.choicebox('请选择┏━┳━┳━┓\n    1 ┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n      ┣━╋━╋━┫\n    2 ┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n      ┣━╋━╋━┫\n    3 ┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n      ┗━┻━┻━┛\n        一  二  三',title + '——' + 人,choices)
        if 选择 == '(一,1)':
            if 棋[0] == '○' or 棋[0] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(0,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,1)':
            if 棋[1] == '○' or 棋[1] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(1,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,1)':
            if 棋[2] == '○' or 棋[2] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(2,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 =='2P':
                    人 = '1P'
        elif 选择 == '(一,2)':
            if 棋[3] == '○' or 棋[3] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(3,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,2)':
            if 棋[4] == '○' or 棋[4] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(4,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,2)':
            if 棋[5] == '○' or 棋[5] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(5,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(一,3)':
            if 棋[6] == '○' or 棋[6] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(6,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,3)':
            if 棋[7] == '○' or 棋[7] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(7,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,3)':
            if 棋[8] == '○' or 棋[8] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(8,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'

    g.msgbox('抽取先后手',title,'好的')
    先后 = r.randint(1,2)
    if 先后 == 1:
        g.msgbox('1P先手(○),2P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '1P'
        后 = '2P'
        次 = 0
        
        井_开始()
    elif 先后 == 2:
        g.msgbox('2P先手(○),1P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '2P'
        后 = '1P'
        次 = 0
        井_开始()



井字棋()
#剩下的还没做完,如果各位大佬在上面的代码中发现其它bug,或者有更好的建议,请帮我指出来,谢谢。
最佳答案
2022-7-28 15:16:12
变量得先定义后使用,global的作用是讲全局作用域中的变量扩展到局部,我看你全局中并没有定义人这个变量,当然会报错,我看你这个是个内嵌函数,如果内嵌函数想要使用局部作用域中的变量,不能使用global,应该用nonlocal

最佳答案

查看完整内容

变量得先定义后使用,global的作用是讲全局作用域中的变量扩展到局部,我看你全局中并没有定义人这个变量,当然会报错,我看你这个是个内嵌函数,如果内嵌函数想要使用局部作用域中的变量,不能使用global,应该用nonlocal
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-28 15:16:12 | 显示全部楼层    本楼为最佳答案   
变量得先定义后使用,global的作用是讲全局作用域中的变量扩展到局部,我看你全局中并没有定义人这个变量,当然会报错,我看你这个是个内嵌函数,如果内嵌函数想要使用局部作用域中的变量,不能使用global,应该用nonlocal
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-28 15:25:27 | 显示全部楼层
ZhKQYu 发表于 2022-7-28 15:24
变量得先定义后使用,global的作用是讲全局作用域中的变量扩展到局部,我看你全局中并没有定义人这个变量, ...

至于修改方法,你得在全局作用域中定义一个人这个变量才能使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-7-28 15:30:58 | 显示全部楼层
ZhKQYu 发表于 2022-7-28 15:25
至于修改方法,你得在全局作用域中定义一个人这个变量才能使用

是要这样吗:
import easygui as g
import random as r
人 = 0
def 井字棋():
    棋 = ['  ','  ','  ','  ','  ','  ','  ','  ','  ']
    #     1(0) 2(1) 3(2) 4(3) 5(4) 6(5) 7(6) 8(7) 9(8) 分别对应九个格子:
    #                                                     ┏━┳━┳━┓
    #                                                   1 ┃1 ┃2 ┃3 ┃
    #                                                     ┣━╋━╋━┫
    #                                                   2 ┃4 ┃5 ┃6 ┃
    #                                                     ┣━╋━╋━┫
    #                                                   3 ┃7 ┃8 ┃9 ┃
    #                                                     ┗━┻━┻━┛
    #                                                       一  二  三
    title = '井字棋'
    次 = 0
    
    def 井_开始():
        global 人     #每次到这里就会出错,会提示“‘人’不是变量(NameError: name '人' is not defined)”,如果把‘global 人’删掉,就会提示“‘人’变量无法在函数里使用,因为它不是全局变量(UnboundLocalError: local variable '人' referenced before assignment)”,这要怎么改呀?
        choices = ['(一,1)','(二,1)','(三,1)','(一,2)','(二,2)','(三,2)','(一,3)','(二,3)','(三,3)']
        选择 = g.choicebox('请选择┏━┳━┳━┓\n    1 ┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n      ┣━╋━╋━┫\n    2 ┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n      ┣━╋━╋━┫\n    3 ┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n      ┗━┻━┻━┛\n        一  二  三',title + '——' + 人,choices)
        if 选择 == '(一,1)':
            if 棋[0] == '○' or 棋[0] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(0,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,1)':
            if 棋[1] == '○' or 棋[1] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(1,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,1)':
            if 棋[2] == '○' or 棋[2] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(2,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 =='2P':
                    人 = '1P'
        elif 选择 == '(一,2)':
            if 棋[3] == '○' or 棋[3] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(3,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,2)':
            if 棋[4] == '○' or 棋[4] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(4,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,2)':
            if 棋[5] == '○' or 棋[5] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(5,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(一,3)':
            if 棋[6] == '○' or 棋[6] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(6,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(二,3)':
            if 棋[7] == '○' or 棋[7] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(7,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'
        elif 选择 == '(三,3)':
            if 棋[8] == '○' or 棋[8] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                棋.insert(8,'○')
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                if 人 == '1P':
                    人 = '2P'
                elif 人 == '2P':
                    人 = '1P'

    g.msgbox('抽取先后手',title,'好的')
    先后 = r.randint(1,2)
    if 先后 == 1:
        g.msgbox('1P先手(○),2P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '1P'
        后 = '2P'
        次 = 0
        
        井_开始()
    elif 先后 == 2:
        g.msgbox('2P先手(○),1P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '2P'
        后 = '1P'
        次 = 0
        井_开始()



井字棋()
#剩下的还没做完,如果各位大佬在上面的代码中发现其它bug,或者有更好的建议,请帮我指出来,谢谢。
然后把其它变量都搞到函数外同一定义就行了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-28 15:33:03 | 显示全部楼层
wqiori 发表于 2022-7-28 15:30
是要这样吗:

然后把其它变量都搞到函数外同一定义就行了吗

是的  可以这么搞  但是定义成全局变量还是比较危险的   万一哪里没注意修改了一下  可能导致程序报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-28 15:33:48 | 显示全部楼层
wqiori 发表于 2022-7-28 15:30
是要这样吗:

然后把其它变量都搞到函数外同一定义就行了吗

还有就是变量名定义为汉字可能也不太好,虽然不会报错,但是还是看着有点那啥,哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-7-28 15:37:31 | 显示全部楼层
好的,已经修改好了。Thank you very much!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-7-28 15:39:37 | 显示全部楼层
定义为汉字主要是因为我记不住英文,我才小学(^ v ^)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-28 15:48:19 | 显示全部楼层
wqiori 发表于 2022-7-28 15:39
定义为汉字主要是因为我记不住英文,我才小学(^ v ^)

牛,未来可期
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-8-7 18:43:27 | 显示全部楼层
完成啦~
import easygui as g
import random as r
人 = 'P'
人_胜负 = 'P'
次 = 0
先 = 'P'
后 = 'P'
内容 = ''
title = '井字棋'
def 井字棋():
    global 人
    global 内容
    global title
    棋 = ['  ','  ','  ','  ','  ','  ','  ','  ','  ']
    #     1(0) 2(1) 3(2) 4(3) 5(4) 6(5) 7(6) 8(7) 9(8) 分别对应九个格子:
    #                                                     ┏ ━ ┳ ━ ┳ ━ ┓
    #                                                   3 ┃1(0)┃2(1)┃3(2)┃
    #                                                     ┣ ━ ╋ ━ ╋ ━ ┫
    #                                                   2 ┃4(3)┃5(4)┃6(5)┃
    #                                                     ┣ ━ ╋ ━ ╋ ━ ┫
    #                                                   1 ┃7(6)┃8(7)┃9(8)┃
    #                                                     ┗ ━ ┻ ━ ┻ ━ ┛
    #                                                       一    二    三

    
    def 井_开始():
        def 井_检测():
            global 次
            global 人
            global title
            if 棋[0] == 棋[1] == 棋[2] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[0] == 棋[1] == 棋[2] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[0] == 棋[3] == 棋[6] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[0] == 棋[3] == 棋[6] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[0] == 棋[4] == 棋[8] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[0] == 棋[4] == 棋[8] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[1] == 棋[4] == 棋[7] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[1] == 棋[4] == 棋[7] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[2] == 棋[5] == 棋[8] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[2] == 棋[5] == 棋[8] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[2] == 棋[4] == 棋[6] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[2] == 棋[4] == 棋[6] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[3] == 棋[4] == 棋[5] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[3] == 棋[4] == 棋[5] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[6] == 棋[7] == 棋[8] == '○':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 棋[6] == 棋[7] == 棋[8] == '×':
                g.msgbox(人_胜负 + '赢了',title,'好的')
                exit()
            elif 次 == 9:
                g.msgbox('平局',title,'好的')
                exit()
            else:
                pass
                
        global 人
        global 人_胜负
        global 次
        global 先
        global 后
        global 内容
        global title
        井_检测()
        choices = ['左上(一,3)','上   (二,3)','右上(三,3)','左   (一,2)','中   (二,2)','右   (三,2)','左下(一,1)','下   (二,1)','右下(三,1)']
        选择 = g.choicebox('请选择┏━┳━┳━┓\n    3 ┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n      ┣━╋━╋━┫\n    2 ┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n      ┣━╋━╋━┫\n    1 ┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n      ┗━┻━┻━┛\n        一  二  三',title + '——' + 人,choices)
        if 选择 == '左上(一,3)':
            if 棋[0] == '○' or 棋[0] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[0]
                棋.insert(0,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '上   (二,3)':
            if 棋[1] == '○' or 棋[1] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[1]
                棋.insert(1,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '右上(三,3)':
            if 棋[2] == '○' or 棋[2] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[2]
                棋.insert(2,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '左   (一,2)':
            if 棋[3] == '○' or 棋[3] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[3]
                棋.insert(3,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '中   (二,2)':
            if 棋[4] == '○' or 棋[4] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[4]
                棋.insert(4,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '右   (三,2)':
            if 棋[5] == '○' or 棋[5] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[5]
                棋.insert(5,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '左下(一,1)':
            if 棋[6] == '○' or 棋[6] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[6]
                棋.insert(6,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '下   (二,1)':
            if 棋[7] == '○' or 棋[7] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[7]
                棋.insert(7,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
        elif 选择 == '右下(三,1)':
            if 棋[8] == '○' or 棋[8] == '×':
                g.msgbox('这个位置已经被占用了哦',title,'好的')
                井_开始()
            else:
                del 棋[8]
                棋.insert(8,内容)
                g.msgbox('┏━┳━┳━┓\n┃' + 棋[0] + '┃' + 棋[1] + '┃' + 棋[2] +'┃\n┣━╋━╋━┫\n┃' + 棋[3] + '┃' + 棋[4] + '┃' + 棋[5] +'┃\n┣━╋━╋━┫\n┃' + 棋[6] + '┃' + 棋[7] + '┃' + 棋[8] +'┃\n┗━┻━┻━┛',title,'好的')
                次 += 1
                if 人 == '1P':
                    人 = '2P'
                    人_胜负 = '1P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()
                elif 人 == '2P':
                    人 = '1P'
                    人_胜负 = '2P'
                    if 内容 == '○':
                        内容 = '×'
                        井_开始()
                    elif 内容 == '×':
                        内容 = '○'
                        井_开始()

    g.msgbox('抽取先后手',title,'好的')
    先后 = r.randint(1,2)
    if 先后 == 1:
        g.msgbox('1P先手(○),2P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '1P'
        后 = '2P'
        人 = '1P'
        内容 = '○'
        次 = 0
        井_开始()
    elif 先后 == 2:
        g.msgbox('2P先手(○),1P后手(×)',title,'好的')
        g.msgbox('准备开始井字棋',title,'开始')
        先 = '2P'
        后 = '1P'
        人 = '2P'
        内容 = '○'
        次 = 0
        井_开始()



井字棋()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 04:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表