# 一、棋盘,加上行号,规格10X10
# 1.设置行列
qipan = [["-" for i in range(10)] for j in range(10)]
print(" 1 2 3 4 5 6 7 8 9 10")
# 2.打印棋盘
def qipan_print():
for i in range(10):
A=65+i
print(chr(A), end=" ")
for it in qipan[i]:
print(it, end=" ")
print()
qipan_print()
# 二、下棋,有子位置不能再下,只能再A1-J10范围内,输入其他的重新输入,你(棋子*)下了之后我(棋子o)下
who = 1
while 1:
if who%2==1:
qizi="*"
wuzi="*****"
elif who%2==0:
qizi = "o"
wuzi = "ooooo"
while 1:
numbers_list = "0123456789"
zuobiao=input("%s棋下,输入位置,如A1"%qizi)
if zuobiao=="A10":
y = ord(zuobiao[0]) - 65
x = 9
if qipan[y][x] == "-":
qipan[y][x] = qizi
break
else:
print("该位置已经有棋了,请你重新选择")
elif (len(zuobiao)==2 and str(ord(zuobiao[0]) - 65) in numbers_list and str(int(zuobiao[1]) - 1) in numbers_list):
y = ord(zuobiao[0]) - 65
x = int(zuobiao[1]) - 1
if qipan[y][x] == "-":
qipan[y][x] = qizi
break
else:
print("该位置已经有棋了,请你重新选择")
else:
print("输入错误请重新输入")
who += 1
print("")
qipan_print()
#列
y_all="".join(qipan[y])#列的所有棋子
# join函数将列表转换为字符串
if wuzi in y_all:
# in,判断前面的,后面是否也有
break
#行
x_all=''#行的所有棋子
x0_all=""
for i in range(10):
x_all+=x0_all.join(qipan[i][x])
# join函数
if wuzi in x_all:
break
# 斜着右
r_all=""
r0_all=""
y0 = y + 4
x0 = x - 4
for i in range(9):
try:
r_all+=r0_all.join(qipan[y0][x0])
y0-=1
x0+=1
except:
continue
if wuzi in r_all:
break
# 斜着左
l_all=""#左斜的一行
l0_all=""
y0 = y - 4
x0 = x - 4
for i in range(9):
try:
l_all += l0_all.join(qipan[y0][x0])
y0 += 1
x0 += 1
except:
continue
if wuzi in l_all:
break
print("%s棋胜利,666"%qizi)