python编写五子棋
时间: 2025-03-06 12:53:22 浏览: 9
使用Python编写五子棋游戏
为了构建一个完整的五子棋游戏,可以从基础部分开始设计,比如棋盘表示、玩家交互以及胜利条件检测等。下面是一个简单的基于命令行的五子棋游戏实现方案。
初始化棋盘
创建一个15×15大小的二维数组作为棋盘,其中0
代表空白位置,而1
和2
分别对应两位玩家放置的不同颜色棋子[^5]。
import numpy as np
def create_board():
board = np.zeros((15, 15), dtype=int)
return board
显示当前棋局状态
每当有新的一步被下出时,都需要更新并显示最新的棋盘状况给双方查看。
def print_board(board):
for row in board:
print(' '.join(['.' if cell == 0 else 'X' if cell == 1 else 'O' for cell in row]))
判断胜负逻辑
当某一方连续五个相同类型的棋子排列成一条直线(横线、竖线或斜线)即视为赢得比赛;如果整个棋盘都被填满却没有出现这种情况则平局结束。
def check_winner(board, player):
# Check rows and columns
for i in range(15):
for j in range(11):
if all([board[i][j+k] == player for k in range(5)]) or \
all([board[j+k][i] == player for k in range(5)]):
return True
# Check diagonals
for i in range(11):
for j in range(11):
if all([board[i+k][j+k] == player for k in range(5)]) or \
all([board[i+4-k][j+k] == player for k in range(5)]):
return True
return False
完整的游戏流程控制
最后通过主函数来管理整体的游戏进程,包括轮流提示用户输入坐标信息完成落子动作直至决出胜者为止。
def main():
board = create_board()
current_player = 1
while True:
print(f"\nPlayer {current_player}'s turn:")
try:
move_x, move_y = map(int, input("Enter your move (row col): ").split())
if not (0 <= move_x < 15) or not (0 <= move_y < 15) or board[move_x][move_y] != 0:
raise ValueError
board[move_x][move_y] = current_player
print_board(board)
if check_winner(board, current_player):
print(f'\nPlayer {current_player} wins!')
break
elif np.all(board != 0):
print('\nThe game is a draw.')
break
current_player = 3 - current_player
except Exception as e:
print("Invalid move! Please enter valid coordinates.")
if __name__ == '__main__':
main()
此版本仅提供了一个基本框架,在实际应用中还可以进一步优化用户体验,例如加入更友好的UI界面、增加AI对手等功能特性[^4]。
阅读全文
相关推荐














