66 lines
1.6 KiB
Python
66 lines
1.6 KiB
Python
"""
|
|
快速测试斗地主游戏流程
|
|
"""
|
|
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✅ 测试完成!")
|