def isValidMove(board, column):
## 判断棋子移动的有效性
if column < 0 or column >= (BOARDWIDTH) or board[column][0]!= EMPTY:
## 如果列小于0或大于BOARDWIDTH,或者该列没有空格
return False
## 那么这是无效移动,否则是有效移动
return True
def isBoardFull(board):
## 如果网格中没有空格,返回True
for x in range(BOARDWIDTH):
for y in range(BOARDHEIGHT):
if board[x][y] == EMPTY:
return False
return True
def isWinner(board, tile):
## 检查棋子的水平情况
for x in range(BOARDWIDTH - 3): ## x取值为0、1、2、3
for y in range(BOARDHEIGHT): ## 遍历所有行
## 如果x = 0,检查第y行的前四个棋子是否都为同一棋子。这可用于遍历所有四子连珠的水平情况。如果任何x、y满足条件,即可判定为获胜
if board[x][y] == tile and board[x+1][y] == tile and board[x+2][y] == tile and board[x+3][y] == tile:
return True
## 检查棋子的垂直情况,与水平情况类似
for x in range(BOARDWIDTH):
for y in range(BOARDHEIGHT - 3):
if board[x][y] == tile and board[x][y+1] == tile and board[x][y+2] == tile and board[x][y+3] == tile:
return True
## 检查棋子的左斜对角情况
for x in range(BOARDWIDTH - 3): ## x取值为0、1、2、3
for y in range(3, BOARDHEIGHT): ## 因为要形成左斜对角四子连珠,最下面的棋子必须至少离顶部四个方格,即y >= 3
if board[x][y] == tile and board[x+1][y-1] == tile and board[x+2][y-2] == tile and board[x+3][y-3] == tile: ## 判断左斜对角的四个棋子是否为同一颜色
return True
## 检查棋子的右斜对角情况,与左斜对角情况类似
for x in range(BOARDWIDTH - 3):
for y in range(BOARDHEIGHT - 3):
if board[x][y] == tile and board[x+1][y+1] == tile and board[x+2][y+2] == tile and board[x+3][y+3] == tile:
return True
return False