Python Tic Tac Toe问题

Python Tic Tac Toe问题,python,tic-tac-toe,Python,Tic Tac Toe,我想弄明白为什么玩“井字游戏”效果很好,直到它需要选择一个垂直的赢家。我只做第一个左边的右边,其他的边它忽略了。下面是我用来让游戏知道一个赢家,如果所有条件都满足的功能 def check_winner(): 对于范围(3)中的行: 如果按钮[行][0]['text']==按钮[行][1]['text']==按钮[行][2]['text']!="": 按钮[行][0]。配置(bg=“绿色”) 按钮[行][1]。配置(bg=“绿色”) 按钮[行][2]。配置(bg=“绿色”) 返回真值 对于范围(

我想弄明白为什么玩“井字游戏”效果很好,直到它需要选择一个垂直的赢家。我只做第一个左边的右边,其他的边它忽略了。下面是我用来让游戏知道一个赢家,如果所有条件都满足的功能

def check_winner():
对于范围(3)中的行:
如果按钮[行][0]['text']==按钮[行][1]['text']==按钮[行][2]['text']!="":
按钮[行][0]。配置(bg=“绿色”)
按钮[行][1]。配置(bg=“绿色”)
按钮[行][2]。配置(bg=“绿色”)
返回真值
对于范围(3)中的列:
如果按钮[0][column][text']==按钮[1][column][text']==按钮[2][column][text']!="":
按钮[0][column].config(bg=“绿色”)
按钮[1][column].config(bg=“绿色”)
按钮[2][column].config(bg=“绿色”)
返回真值
如果按钮[0][0][text']==按钮[1][1][text']==按钮[2][2][text']!="":
按钮[0][0]。配置(bg=“绿色”)
按钮[1][1]。配置(bg=“绿色”)
按钮[2][2]。配置(bg=“绿色”)
返回真值
elif按钮[0][2]['text']==按钮[1][1]['text']==按钮[2][0]['text']!="":
按钮[0][2]。配置(bg=“绿色”)
按钮[1][1]。配置(bg=“绿色”)
按钮[2][0]。配置(bg=“绿色”)
返回真值
elif empty_spaces()为False:
对于范围(3)中的行:
对于范围(3)中的列:
按钮[行][列].config(bg='yellow')
返回“平局”
其他:
返回错误


如果没有一个简单的例子,很难看到发生了什么。问题似乎在于您没有显示的代码。此外,逻辑似乎很复杂,使用可视化显示本身作为主要数据结构,而不是维护仅由GUI显示的内部板数据结构。这种方法很难将游戏的逻辑与显示的逻辑分开。我同意@JohnColeman的观点。您的条件似乎应该有效,因此可能是
按钮出现了一些问题。您能否共享
按钮的代码
?您可能希望将代码从第二个
for
循环(第三个
if
语句)中的第二个
if
语句开始移动,并在第二个
for
循环的下方移动。您正在检查对角线三次,这是不必要的。对角线检查不应该在
for column
循环中。它永远不会到达第二列,因为您将返回column循环中的所有其他
if/elif
块。