python写一个五子棋游戏
时间: 2023-08-19 11:56:17 浏览: 45
当然可以!下面是一个简单的五子棋游戏的Python代码示例:
```python
# 定义棋盘大小
BOARD_SIZE = 15
# 初始化棋盘
board = [['+' for _ in range(BOARD_SIZE)] for _ in range(BOARD_SIZE)]
# 定义棋子类型
BLACK = '●'
WHITE = '○'
# 当前下棋方,默认黑子先行
current_player = BLACK
# 打印棋盘
def print_board():
print(' ', end=' ')
for i in range(BOARD_SIZE):
print(i, end=' ')
print()
for i in range(BOARD_SIZE):
print(i, end=' ')
for j in range(BOARD_SIZE):
print(board[i][j], end=' ')
print()
# 判断是否胜利
def check_win(row, col):
directions = [(0, 1), (1, 0), (1, 1), (-1, 1)]
for dx, dy in directions:
count = 1
x, y = row, col
while count < 5:
x += dx
y += dy
if x < 0 or x >= BOARD_SIZE or y < 0 or y >= BOARD_SIZE or board[x][y] != current_player:
break
count += 1
x, y = row, col
while count < 5:
x -= dx
y -= dy
if x < 0 or x >= BOARD_SIZE or y < 0 or y >= BOARD_SIZE or board[x][y] != current_player:
break
count += 1
if count >= 5:
return True
return False
# 下棋
def make_move(row, col):
if board[row][col] == '+':
board[row][col] = current_player
return True
return False
# 游戏循环
def game_loop():
while True:
print_board()
if current_player == BLACK:
print("轮到黑子下棋")
else:
print("轮到白子下棋")
move = input("请输入下棋位置(行 列,以空格分隔):")
try:
row, col = map(int, move.split())
if row < 0 or row >= BOARD_SIZE or col < 0 or col >= BOARD_SIZE:
print("输入位置不合法,请重新输入")
continue
if make_move(row, col):
if check_win(row, col):
print_board()
print(current_player, "获胜!")
break
current_player = WHITE if current_player == BLACK else BLACK
else:
print("该位置已有棋子,请重新输入")
except ValueError:
print("输入格式错误,请重新输入")
# 运行游戏
game_loop()
```
这是一个简单的五子棋游戏,你可以在控制台中运行它。玩家可以依次输入下棋的位置,行和列之间用空格分隔。程序会判断输入是否合法,并检查是否有玩家获胜。希望对你有帮助!