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]}") logger.info(f"玩家 {player} 的明牌: {engine.state.melds[player]}") logger.info(f"玩家 {player} 的手牌: {engine.state.hands[player]}") logger.info(f"玩家 {player} 的缺门: {engine.state.missing_suits[player]}") # 记录赢家信息 if engine.state.winners: logger.info(f"赢家: {engine.state.winners}") else: logger.info("没有赢家!") # 运行测试 if __name__ == "__main__": test_mahjong_engine()