简单的Python四子棋游戏。为什么这个测试不工作?

2 投票
1 回答
1632 浏览
提问于 2025-04-16 04:53

这段代码看起来一切正常,除了对斜线胜利的测试。对垂直和水平胜利的测试似乎是完全相同的概念,而且它们工作得很好。

注释大部分应该能解释清楚,但测试的基本思路是遍历棋盘,检查左下角是否有“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

1 个回答

1

对我来说这个方法有效。我从右下角开始放一个X,然后斜着往左上角放。还有,我在那个初始位置的左边也开始放了一个。不过,当我放了4个X连在一起的时候,游戏并没有立刻停止——我还得再放一个O,因为游戏只会在放了O之后检查是否该停止。你有没有测试过右边的对角线?

撰写回答