|

楼主 |
发表于 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
- 井_开始()
- 井字棋()
复制代码 |
|