python五子棋判断输赢
时间: 2023-10-17 22:05:35 浏览: 141
判断五子棋胜负的一种简单方法是利用棋盘上每个棋子对应的横、竖、斜方向的连续棋子数量。如果其中有任何一个方向的连续棋子数达到5,则该玩家胜利。
以下是一个简单的 Python 代码实现:
```python
def check_win(chessboard, row, col, player):
# 检查横向
count = 0
for c in range(col-4, col+1):
if c < 0 or c+4 >= len(chessboard[row]):
continue
if chessboard[row][c:c+5] == [player]*5:
return True
# 检查纵向
count = 0
for r in range(row-4, row+1):
if r < 0 or r+4 >= len(chessboard):
continue
if [chessboard[r+i][col] for i in range(5)] == [player]*5:
return True
# 检查左上到右下方向
count = 0
for i in range(-4, 1):
if row+i < 0 or col+i < 0 or row+i+4 >= len(chessboard) or col+i+4 >= len(chessboard[row]):
continue
if [chessboard[row+i+j][col+i+j] for j in range(5)] == [player]*5:
return True
# 检查左下到右上方向
count = 0
for i in range(-4, 1):
if row+i < 0 or col-i >= len(chessboard[row]) or row+i+4 >= len(chessboard) or col-i-4 < 0:
continue
if [chessboard[row+i+j][col-i-j] for j in range(5)] == [player]*5:
return True
return False
```
其中,`chessboard` 表示当前棋盘状态,`row` 和 `col` 表示最后一个落子的位置,`player` 表示当前玩家(1 或 2)。如果返回 `True`,则表示该玩家获胜。