判断上下左右及斜线是否有连续五个同色棋子的代码
时间: 2024-09-11 19:10:01 浏览: 83
为了检查上下左右及斜线是否有连续五个同色棋子,你需要遍历整个棋盘并检查每条可能的连线。以下是基本的实现思路:
```python
# 定义方向常量
DIRECTIONS = [
(-1), # 左上
(-1, 0), # 左
(-1, 1), # 左下
(0, -1), # 上
(0, 1), # 下
(1, -1), # 右上
(1, 0), # 右
(1, 1) # 右下
]
# 检查四邻棋子是否连续
def check_line(board, x, y, player):
count = 1
for dx, dy in DIRECTIONS:
nx, ny = x + dx, y + dy
while 0 <= nx < BOARD_SIZE and 0 <= ny < BOARD_SIZE and board[nx][ny] == player:
count += 1
nx, ny = nx + dx, ny + dy
return count >= 5
# 检查所有可能的连线
def check_win(board):
win_conditions = [(board[x][y], x, y) for x in range(BOARD_SIZE) for y in range(BOARD_SIZE)]
winner = None
for player, x, y in win_conditions:
if check_line(board, x, y, player):
winner = player
break
return winner is not None
```
在这个代码中,`check_line`函数用于检查一个特定方向上的连续棋子,而`check_win`函数则遍历每个棋子及其周围的四个相邻点,看是否存在五连珠。
注意,这仅适用于标准的五子棋规则,如果棋盘或规则有特殊变化,可能需要相应调整检查逻辑。
阅读全文