Python 主从博弈代码示例:Tic-Tac-Toe 游戏
以下是一个简单的主从博弈代码示例,其中包括两个类:'Game' 和 'Player'。
'Game' 类负责控制游戏的流程和规则,包括初始化和更新游戏状态,检查胜利条件等。'Player' 类则表示玩家,每个玩家都有一个名字和一定数量的棋子。在游戏中,主玩家和从玩家交替行动,直到有一个玩家赢得游戏。
class Game:
def __init__(self, main_player, slave_player):
self.main_player = main_player
self.slave_player = slave_player
self.current_player = main_player
self.board = [[' ']*3 for _ in range(3)]
self.winner = None
def update_board(self, row, col):
self.board[row][col] = self.current_player.symbol
def check_win(self):
for i in range(3):
if self.board[i][0] == self.board[i][1] == self.board[i][2] != ' ':
self.winner = self.current_player
return True
if self.board[0][i] == self.board[1][i] == self.board[2][i] != ' ':
self.winner = self.current_player
return True
if self.board[0][0] == self.board[1][1] == self.board[2][2] != ' ':
self.winner = self.current_player
return True
if self.board[0][2] == self.board[1][1] == self.board[2][0] != ' ':
self.winner = self.current_player
return True
return False
def switch_player(self):
if self.current_player == self.main_player:
self.current_player = self.slave_player
else:
self.current_player = self.main_player
def play(self):
while not self.check_win():
print(f'{self.current_player.name}'s turn:')
row = int(input('Enter row number: '))
col = int(input('Enter column number: '))
self.update_board(row, col)
self.switch_player()
print(self.board)
print(f'{self.winner.name} wins!')
class Player:
def __init__(self, name, symbol):
self.name = name
self.symbol = symbol
self.pieces = 3
def place_piece(self, row, col):
self.pieces -= 1
# 主程序
if __name__ == '__main__':
main_player = Player('Alice', 'X')
slave_player = Player('Bob', 'O')
game = Game(main_player, slave_player)
game.play()
在这个示例代码中,'Game' 类中定义了一些方法,用于更新棋盘、检查胜利条件、交替行动等。'Player' 类则表示玩家,其中包括玩家的名字、棋子类型和剩余棋子数量等属性。在主程序中,我们创建了两个玩家和一个游戏对象,并调用 game.play() 方法开始游戏。
原文地址: https://www.cveoy.top/t/topic/nHMg 著作权归作者所有。请勿转载和采集!