洛谷P1038python三子棋Ⅰ
此题可通过找规律得:
若为下满9子则偶数次uim胜利
奇数次xiaoa胜利
若下满9子则uim没有胜利的可能性,要么xiaoa赢要么平局,
此时再穷举所有可能性(4种)
下面展示一些 内联代码片
。
// A code block
#因为输入的都是结束的棋谱
ls=list(input())
chessboard=[1 for i in range(9)]
chessboard2=[]
if len(ls)<9:
if len(ls)%2==0:
print("uim wins.")#偶数次uim赢
else:
print("xiaoa wins.")
else:#uim已经不可能赢了
for i in range(9):
if i%2==0:
chessboard[int(ls[i])-1]=0
else:
chessboard[int(ls[i])-1]=1
for i in range(3):
chessboard2.append(chessboard[i*3:i*3+3])
for i in range(3):
if chessboard2[i][1]==chessboard2[i][2]==chessboard2[i][0]==0:#行
print("xiaoa wins.")
elif chessboard2[0][i]==chessboard2[1][i]==chessboard2[2][i]==0:#列
print("xiaoa wins.")
if chessboard2[0][0]==chessboard2[1][1]==chessboard2[2][2]==0:#对角线
print("xiaoa wins.")
if chessboard2[0][2]==chessboard2[1][1]==chessboard2[2][0]==0:#对角线
print("xiaoa wins.")
else:
print("drew.")