1
1
This commit is contained in:
48
tests/mahjong/test_chengdu_mahjong_engine.py
Normal file
48
tests/mahjong/test_chengdu_mahjong_engine.py
Normal file
@@ -0,0 +1,48 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user