""" 快速测试斗地主游戏流程 """ import sys import os sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) from engine import RoomManager, HumanPlayer, AIPlayer from doudizhu import DoudizhuGame from doudizhu.game_logic import Deck print("=" * 60) print(" 斗地主快速测试") print("=" * 60) # 重置 RoomManager RoomManager._instance = None RoomManager._initialized = False manager = RoomManager() manager.register_game('doudizhu', DoudizhuGame) # 创建房间 print("\n1. 创建房间") room = manager.create_room('doudizhu', 3, {}) print(f" 房间号: {room.code}") # 添加玩家 print("\n2. 添加玩家") human = HumanPlayer("人类玩家") room.add_player(human) print(f" 添加: {human.name}") ai1 = AIPlayer("规则AI", "rule") ai1.ai_type = "rule" room.add_player(ai1) print(f" 添加: {ai1.name}") ai2 = AIPlayer("DeepSeekAI", "deepseek") ai2.ai_type = "deepseek" room.add_player(ai2) print(f" 添加: {ai2.name}") print(f"\n 总人数: {room.player_count}/3") # 开始游戏 print("\n3. 开始游戏") success, message = manager.start_game(room.id) print(f" 结果: {message}") if success: game = room.game print(f"\n4. 游戏状态") print(f" 阶段: {game.doudizhu_phase.value}") print(f" 当前回合: {game.players[game.state.current_turn_player_id].name}") # 显示玩家手牌数 print(f"\n5. 玩家手牌") for pid, cards in game.player_cards.items(): player = game.players[pid] print(f" {player.name}: {len(cards)}张") print(f"\n6. 游戏数据") print(f" 底牌: {len(game.bottom_cards)}张") print("\n✅ 测试完成!")