Python版本五子棋
- 编程知识
- 2023-08-02
- 3
五子棋是一种古老的棋类游戏,它的最终目标是在棋盘上连成一条直线的五个棋子。本文将使用Python语言实现五子棋游戏,并对其进行详细阐述。
一、游戏规则
1、五子棋游戏在一个15x15的棋盘上进行,黑子和白子轮流在棋盘上落子。
2、如果任意一方在横、竖、斜线上形成五个连续的棋子,即可获胜。
3、如果棋盘上已经没有可以落子的位置,并且没有任意一方形成连续的五个棋子,则判断为平局。
二、游戏实现
1、首先,我们需要创建一个棋盘的类,用于存储棋盘状态和进行各种棋局操作:
class ChessBoard: def __init__(self): self.board = [[0]*15 for _ in range(15)] # 初始化棋盘为15x15的二维列表 def make_move(self, row, col, player): if self.board[row][col] == 0: self.board[row][col] = player return True else: return False def check_win(self): # 检查横向是否有五个连续棋子 for i in range(15): for j in range(11): if self.board[i][j]!=0 and \ self.board[i][j]==self.board[i][j+1] and \ self.board[i][j]==self.board[i][j+2] and \ self.board[i][j]==self.board[i][j+3] and \ self.board[i][j]==self.board[i][j+4]: return self.board[i][j] # 检查竖向是否有五个连续棋子 for j in range(15): for i in range(11): if self.board[i][j]!=0 and \ self.board[i][j]==self.board[i+1][j] and \ self.board[i][j]==self.board[i+2][j] and \ self.board[i][j]==self.board[i+3][j] and \ self.board[i][j]==self.board[i+4][j]: return self.board[i][j] # 检查右斜向是否有五个连续棋子 for i in range(11): for j in range(11): if self.board[i][j]!=0 and \ self.board[i][j]==self.board[i+1][j+1] and \ self.board[i][j]==self.board[i+2][j+2] and \ self.board[i][j]==self.board[i+3][j+3] and \ self.board[i][j]==self.board[i+4][j+4]: return self.board[i][j] # 检查左斜向是否有五个连续棋子 for i in range(11): for j in range(4, 15): if self.board[i][j]!=0 and \ self.board[i][j]==self.board[i+1][j-1] and \ self.board[i][j]==self.board[i+2][j-2] and \ self.board[i][j]==self.board[i+3][j-3] and \ self.board[i][j]==self.board[i+4][j-4]: return self.board[i][j] return 0
2、接下来,我们实现一个简单的交互界面,使玩家可以与游戏进行互动:
def main(): board = ChessBoard() player = 1 while True: row = int(input("请输入落子的行数:")) col = int(input("请输入落子的列数:")) if board.make_move(row, col, player): print("落子成功!") if board.check_win() != 0: # 如果有玩家获胜 print("游戏结束,玩家", player, "获胜!") break elif all(board.board[i][j] != 0 for i in range(15) for j in range(15)): # 如果棋盘已满,平局 print("游戏结束,平局!") break player = 2 if player == 1 else 1 # 切换玩家 else: print("落子失败,请重新输入!")
三、游戏测试
1、创建一个新的棋盘实例:
board = ChessBoard()
2、让玩家1在第1行第2列落子:
board.make_move(1, 2, 1)
3、让玩家2在第2行第2列落子:
board.make_move(2, 2, 2)
4、检查是否有玩家获胜:
winner = board.check_win() if winner != 0: print("玩家", winner, "获胜!") else: print("游戏继续进行。")
5、玩家交替落子,直到游戏结束:
main()
以上就是Python版本五子棋的实现方法和简单的交互界面,您可以根据需要自行扩展和优化代码。希望本文能够对您有所帮助!