Files
nanocode/net-games/quick_test.py
T
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

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✅ 测试完成!")