mjAi/tests/test_chengdu_mahjong_engine.py

49 lines
1.4 KiB
Python

from src 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()