用Python写一个五子棋游戏
时间: 2024-03-06 08:03:27 浏览: 17
好的,我可以帮你写一个基于Python的五子棋游戏。以下是代码:
```python
import numpy as np
# 定义棋盘大小
BOARD_SIZE = 15
# 定义棋子类型
EMPTY = 0
BLACK = 1
WHITE = 2
# 定义棋盘
board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=np.int)
# 定义落子函数
def move(color, x, y):
board[x][y] = color
# 定义判断胜负函数
def check_win(color):
# 判断横向是否有五个连续的棋子
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE - 4):
if board[i][j] == color and board[i][j+1] == color and board[i][j+2] == color and board[i][j+3] == color and board[i][j+4] == color:
return True
# 判断纵向是否有五个连续的棋子
for i in range(BOARD_SIZE - 4):
for j in range(BOARD_SIZE):
if board[i][j] == color and board[i+1][j] == color and board[i+2][j] == color and board[i+3][j] == color and board[i+4][j] == color:
return True
# 判断左上-右下方向是否有五个连续的棋子
for i in range(BOARD_SIZE - 4):
for j in range(BOARD_SIZE - 4):
if board[i][j] == color and board[i+1][j+1] == color and board[i+2][j+2] == color and board[i+3][j+3] == color and board[i+4][j+4] == color:
return True
# 判断左下-右上方向是否有五个连续的棋子
for i in range(4, BOARD_SIZE):
for j in range(BOARD_SIZE - 4):
if board[i][j] == color and board[i-1][j+1] == color and board[i-2][j+2] == color and board[i-3][j+3] == color and board[i-4][j+4] == color:
return True
return False
# 定义主函数
def main():
# 定义初始颜色为黑色
color = BLACK
while True:
# 输出当前棋盘状态
print(board)
# 输入落子位置
x, y = map(int, input("请输入落子的位置(用空格分隔):").split())
# 判断是否越界或位置已有棋子
if x < 0 or x >= BOARD_SIZE or y < 0 or y >= BOARD_SIZE or board[x][y] != EMPTY:
print("输入位置无效,请重新输入!")
continue
# 落子并判断胜负
move(color, x, y)
if check_win(color):
print("游戏结束,", end="")
if color == BLACK:
print("黑方胜利!")
else:
print("白方胜利!")
break
# 切换颜色
if color == BLACK:
color = WHITE
else:
color = BLACK
if __name__ == '__main__':
main()
```
运行代码后,您可以通过输入坐标来落子。当有一方获得五个连续的棋子时,游戏结束并输出胜利方。