擅长:python、mysql、java
<p>在我看来,将X存储为+1,将O存储为-1可能更有意义,这样您就可以轻松地进行算术来检查游戏是否结束了。在</p>
<p>例如:</p>
<pre><code>def three_in_row(b):
xWin = check_winner(b,3)
oWin = check_winner(b,-3)
return xWin | oWin
def check_winner(b, valToCheck):
foundWin = any(sum(r) in {valToCheck} for r in b) # check rows
# now check columns
for i in range(3):
foundWin = foundWin | (sum([b[j][i] for j in range(3)]) == valToCheck)
# now check diagonals
foundWin = foundWin | (sum([b[i][i] for i in range(3)]) == valToCheck)
foundWin = foundWin | (sum([b[i][2-i] for i in range(3)]) == valToCheck)
return foundWin
</code></pre>
<p>感谢Blender提供了以下更简洁的方法:</p>
^{pr2}$