五子棋 Python 代码实现:简单易懂的入门教程
五子棋 Python 代码实现:简单易懂的入门教程
五子棋是一种经典的棋类游戏,下面是一个简单的 Python 代码实现,适合初学者学习。
1. 初始化棋盘
首先,我们需要定义一个 15x15 的棋盘,用二维列表来表示。其中,'+' 表示该位置没有棋子。
board = [['+' for x in range(15)] for y in range(15)]
2. 打印棋盘
接下来,我们定义一个函数来打印棋盘:
def print_board(board):
for row in board:
print(' '.join(row))
3. 检查胜负
我们需要定义一个函数来检查是否有五子连线。该函数需要传入棋盘、当前下子的行列坐标以及当前玩家的标识符。
def check_win(board, row, col, player):
# 检查横向是否有五子连线
if col <= 10 and board[row][col:col+5] == [player] * 5:
return True
# 检查纵向是否有五子连线
if row <= 10 and [board[i][col] for i in range(row, row+5)] == [player] * 5:
return True
# 检查右上斜向是否有五子连线
if row >= 4 and col <= 10 and [board[row-i][col+i] for i in range(5)] == [player] * 5:
return True
# 检查右下斜向是否有五子连线
if row <= 10 and col <= 10 and [board[row+i][col+i] for i in range(5)] == [player] * 5:
return True
# 如果没有五子连线,则返回 False
return False
4. 游戏主函数
最后,我们可以写一个主函数来实现游戏的流程:
def main():
# 初始化棋盘
board = [['+' for x in range(15)] for y in range(15)]
# 初始化玩家
players = ['X', 'O']
# 初始化当前玩家下标
current_player = 0
# 打印棋盘
print_board(board)
# 开始游戏循环
while True:
# 获取当前玩家输入的下子位置
move = input("Player {}'s turn, please enter row,col (e.g. 3,4): ".format(players[current_player]))
row, col = move.split(',')
# 将行列坐标转换为整数
row = int(row) - 1
col = int(col) - 1
# 判断该位置是否已经有棋子
if board[row][col] != '+':
print("This position has already been taken, please choose another one!")
continue
# 在该位置下子
board[row][col] = players[current_player]
# 打印棋盘
print_board(board)
# 检查是否有五子连线
if check_win(board, row, col, players[current_player]):
print("Player {} wins!".format(players[current_player]))
break
# 切换下一个玩家
current_player = (current_player + 1) % 2
5. 运行游戏
现在,我们就可以运行主函数来开始游戏了:
if __name__ == '__main__':
main()
总结
这篇文章介绍了如何使用 Python 代码实现五子棋游戏,从初始化棋盘到判断胜负,并附带代码示例,适合初学者学习。你可以根据自己的需求对代码进行修改和扩展,例如添加 AI 对战功能、调整棋盘大小等。
原文地址: https://www.cveoy.top/t/topic/ln7r 著作权归作者所有。请勿转载和采集!