Skip to main content
 首页 » 编程设计

python之简单的python connect 4游戏。为什么这个测试不起作用

2025年05月04日12hnrainll

关于此代码的所有内容似乎都运行良好,除了对角线获胜的测试。垂直和水平获胜的测试似乎是完全相同的概念,并且它们完美地工作。

评论应该主要解释它,但测试应该基本上遍历整个板并检查左下角的 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 后游戏是否应该停止。您是否一直在测试右对角线?