from src.engine.chengdu_mahjong_engine import ChengduMahjongEngine from loguru import logger def test_mahjong_engine(): """ 测试成都麻将引擎,包括初始化、发牌、轮次逻辑等。 """ # 初始化麻将引擎 engine = ChengduMahjongEngine() # 初始化游戏 engine.initialize_game() # 发牌 engine.deal_tiles() # 检查发牌后的状态 logger.info(f"庄家: 玩家 {engine.state.current_player}") for player in range(4): hand = engine.state.hands[player] logger.info(f"玩家 {player} 的手牌: {hand}") logger.info(f"玩家 {player} 的缺门: {engine.state.missing_suits[player]}") # 模拟游戏主循环 try: engine.run() except Exception as e: logger.error(f"测试引擎时出错: {e}") # 打印游戏结束后的状态 logger.info("游戏结束!") for player in range(4): logger.info( f"玩家 {player}: 分数={engine.state.scores[player]}, " f"手牌数量={len(engine.state.hands[player].tiles)}, 明牌数量={len(engine.state.melds[player])}, " f"缺门={engine.state.missing_suits[player]}, 手牌={engine.state.hands[player]}, 明牌={engine.state.melds[player]}" ) # 记录赢家信息 if engine.state.winners: logger.info(f"赢家: {engine.state.winners}") else: logger.info("没有赢家!") # 运行测试 if __name__ == "__main__": test_mahjong_engine()