擅长:python、mysql、java
<pre><code> for i in range(len(takenSpots)):
if takenSpots[i % 3 == 0]:
win = True
</code></pre>
<p>这个循环搞砸了。首先,<code>takenSpots</code>是一个所有点的列表;您从不检查玩家是否真的获得了任何点。第二,您的<code>if</code>检查列表中是否有任何点位于左列,而不是这些点是否形成一行中的3。第三,你没有任何迹象表明谁赢了。您需要检查特定玩家的胜利,或者有一个更详细的返回值来指示哪个玩家赢了。你知道吗</p>
<p>执行检查的简单方法是列出每行、每列和每对角线的索引,然后迭代这些索引,并检查是否有人占用整行:</p>
<pre><code>win_positions = [
(0, 3, 6),
(1, 4, 7),
(2, 5, 8),
(0, 1, 2),
(3, 4, 5),
(6, 7, 8),
(0, 4, 8),
(2, 4, 6),
]
for line in win_positions:
if all(takenSpots[position] == player for position in line):
return some_sort_of_indicator_that_that_player_won
</code></pre>