Files
liars-bar-game/multi_game_runner.py
2025-03-07 18:34:50 +08:00

55 lines
1.7 KiB
Python

from game import Game
from typing import Dict, List
import argparse
class MultiGameRunner:
def __init__(self, player_configs: List[Dict[str, str]], num_games: int = 10):
"""初始化多局游戏运行器
Args:
player_configs: 玩家配置列表
num_games: 要运行的游戏局数
"""
self.player_configs = player_configs
self.num_games = num_games
def run_games(self) -> None:
"""运行指定数量的游戏"""
for game_num in range(1, self.num_games + 1):
print(f"\n=== 开始第 {game_num}/{self.num_games} 局游戏 ===")
# 创建并运行新游戏
game = Game(self.player_configs)
game.start_game()
print(f"第 {game_num} 局游戏结束")
def parse_arguments():
"""解析命令行参数"""
parser = argparse.ArgumentParser(
description='运行多局AI对战游戏',
formatter_class=argparse.RawTextHelpFormatter
)
parser.add_argument(
'-n', '--num-games',
type=int,
default=10,
help='要运行的游戏局数 (默认: 10)'
)
return parser.parse_args()
if __name__ == '__main__':
# 解析命令行参数
args = parse_arguments()
# 配置玩家信息, 其中model为你通过API调用的模型名称
player_configs = [
{"name": "DeepSeek", "model": "deepseek-r1"},
{"name": "ChatGPT", "model": "o3-mini"},
{"name": "Claude", "model": "claude-3.7-sonnet"},
{"name": "Gemini", "model": "gemini-2.0-flash-thinking"}
]
# 创建并运行多局游戏
runner = MultiGameRunner(player_configs, num_games=args.num_games)
runner.run_games()