关于此代码的所有内容似乎都运行良好,除了对角线获胜的测试。垂直和水平获胜的测试似乎是完全相同的概念,并且它们完美地工作。
评论应该主要解释它,但测试应该基本上遍历整个板并检查左下角的 x(右对角线可以开始的唯一位置)。然后它向上并向右移动四次,以连续检查四个。
这里是有问题的函数。
#for diagonal
#not working! WHYYYY
def winnertest3():
for i in range(3):
for e in range(4):
print i,e
if board[i][e]=='X' and board[i+1][e+1]=='X' and board[i+2][e+2]=='X' and board[i+3][e+3]=='X':
print "X wins!!!!"
return 'over'
return 'on'
http://github.com/keevie/Computer-Science/blob/master//board1.py
请您参考如下方法:
它对我有用。我从右下角的 X 开始,然后沿对角线向左移动。我也在那个初始位置的左边开始了一个。然而,当我连续得到 4 个 X 时,它并没有立即停止——我不得不放入另一个 O,因为它只检查放置 O 后游戏是否应该停止。您是否一直在测试右对角线?
