49 lines
1.4 KiB
Python
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()
|