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
井_开始()
井字棋()