Python五子棋游戏代码示例 - 附详细注释
Python五子棋游戏代码示例
想学习如何用Python编写一个简单的五子棋游戏吗?这篇文章提供了一个详细的代码示例,非常适合初学者入门游戏开发。
代码实现
# 导入必要的库
import numpy as np
# 定义棋盘尺寸
BOARD_SIZE = 15
# 创建棋盘,初始值为0表示空位
board = np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=int)
# 定义当前玩家,1表示先手,-1表示后手
current_player = 1
# 检查是否有玩家获胜
def check_win(player):
# 检查水平方向
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE-4):
if np.all(board[i, j:j+5] == player):
return True
# 检查垂直方向
for i in range(BOARD_SIZE-4):
for j in range(BOARD_SIZE):
if np.all(board[i:i+5, j] == player):
return True
# 检查主对角线方向
for i in range(BOARD_SIZE-4):
for j in range(BOARD_SIZE-4):
if np.all(board[i:i+5, j:j+5].diagonal() == player):
return True
# 检查副对角线方向
for i in range(BOARD_SIZE-4):
for j in range(BOARD_SIZE-1, 3, -1):
if np.all(board[i:i+5, j-4:j+1].diagonal() == player):
return True
return False
# 打印棋盘
def print_board():
for i in range(BOARD_SIZE):
for j in range(BOARD_SIZE):
if board[i, j] == 1:
print('X', end=' ')
elif board[i, j] == -1:
print('O', end=' ')
else:
print('_', end=' ')
print()
# 游戏主循环
while True:
print_board()
# 获取玩家下棋位置
row = int(input('请输入要下棋的行号(0-14):'))
col = int(input('请输入要下棋的列号(0-14):'))
# 检查位置是否合法
if row < 0 or row >= BOARD_SIZE or col < 0 or col >= BOARD_SIZE or board[row, col] != 0:
print('输入无效,请重新输入!')
continue
# 在棋盘上下子
board[row, col] = current_player
# 检查游戏是否结束
if check_win(current_player):
print_board()
print('玩家', current_player, '获胜!')
break
# 切换到另一个玩家
current_player = -current_player
print('游戏结束!')
代码解释
- 首先,我们导入
numpy库用于处理数组,并定义棋盘大小BOARD_SIZE为15。 - 使用
np.zeros创建一个二维数组表示棋盘,初始值均为0,表示空位。 current_player变量用于记录当前玩家,1表示先手,-1表示后手。check_win函数用于判断当前玩家是否获胜,分别检查水平、垂直、主对角线和副对角线四个方向是否有五子连线。print_board函数用于打印当前棋盘状态,使用'X'表示先手棋子,'O'表示后手棋子,'_'表示空位。- 在游戏主循环中,程序会不断循环以下步骤:
- 打印棋盘
- 获取玩家输入的行号和列号
- 检查输入是否合法
- 在棋盘上下子
- 判断是否获胜
- 切换玩家
- 当有玩家获胜或棋盘下满时,游戏结束。
总结
这个简单的五子棋游戏代码示例展示了如何使用Python编写基本的游戏逻辑。你可以根据自己的想法扩展这个游戏,例如添加人机对战功能、图形界面等。希望这篇文章能帮助你入门游戏开发!
原文地址: https://www.cveoy.top/t/topic/RRz 著作权归作者所有。请勿转载和采集!