我試圖將名為“grid[]”的串列的對角線元素或井字棋板輸入的元素作為一維進行匹配。我想讓棋盤大小動態,并且能夠檢查 3 x 3、4 x 4、5 x 5 等等。
我已經撰寫了用于檢查列和行的代碼:
import math
grid = ['*', '*', '*', '*', '*', '*', '*', '*', '*']
dim = (round(math.sqrt(len(grid))))
count4 = 0
for i in range(dim):
if all(grid[count4 i] == "X" for i in range(dim)):
count3 = 0
print ("Player X win")
print ("-------------")
for i in range(dim):
print(grid[0 count3 : dim count3])
count3 = dim
print ("-------------")
count4 = dim
count4 = 0
for i in range(dim):
if all(grid[count4 i] == "X" for i in range(0, (dim * dim), dim )):
count3 = 0
print ("Player X win")
print ("-------------")
for i in range(dim):
print(grid[0 count3 : dim count3])
count3 = dim
print ("-------------")
count4 = 1
我不知道如何檢查對角線(左和右)。有人可以幫忙嗎?
謝謝你。
uj5u.com熱心網友回復:
我認為這有效,至少對于dim = 3和dim = 4:
diagonal1 = [(dim 1) * i for i in range(dim)]
diagonal2 = [(i 1) * (dim - 1) for i in range(dim)]
if all(grid[d] == "X" for d in diagonal1):
print ("Player X win")
count3 = 0
print ("-------------")
for i in range(dim):
print(grid[0 count3 : dim count3])
count3 = dim
print ("-------------")
if all(grid[d] == "X" for d in diagonal2):
count3 = 0
print ("Player X win")
print ("-------------")
for i in range(dim):
print(grid[0 count3 : dim count3])
count3 = dim
print ("-------------")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/313511.html
下一篇:如何組合陣列中的元素?
