Python Connect4动态检查对角线

时间:2018-10-21 14:58:25

标签: python algorithm numpy

您好,我正在使用Python语言开发connect4。这是一个示例:https://www.mathsisfun.com/games/connect4.html

我正在使用的版本允许用户设置行数,列数以及要赢得的光盘数。我被困在对角检查光盘。

目前,以下代码是一种硬编码,但在检查4个已连接的光盘时,它可以完美工作。

# Check positively sloped diaganols
for c in range(COLUMN_COUNT-3):
    for r in range(ROW_COUNT-3):
        if board[r][c] == piece and board[r+1][c+1] == piece and board[r+2][c+2] == piece and board[r+3][c+3] == piece:
            return True

# Check negatively sloped diaganols
for c in range(COLUMN_COUNT-3):
    for r in range(3, ROW_COUNT):
        if board[r][c] == piece and board[r-1][c+1] == piece and board[r-2][c+2] == piece and board[r-3][c+3] == piece:
            return True

我设法编写了用于水平和垂直检查的代码。只是想知道我应该如何转换上面的算法,以使得如果要赢得的连接盘数可以是任何数量(对角线),它仍然可以工作? (例如赢取3或5张光盘)

0 个答案:

没有答案