wsy182 2024-12-01 17:13:43 +08:00
parent 2bc34bc860
commit ff15ecb1a1
3 changed files with 16 additions and 13 deletions

View File

@ -1,4 +1,3 @@
# configs/log_config.py
from loguru import logger
import os
@ -10,21 +9,21 @@ def setup_logging():
# 清除所有现有日志处理器,防止重复配置
logger.remove()
# 配置日志,记录到 ../logs 目录下
# 配置日志文件
logger.add(
os.path.join(log_dir, "chengdu_mj_engine.log"),
rotation="10 MB",
level="DEBUG",
format="{time} {level} {message}",
backtrace=True, # 启用完整堆栈跟踪
diagnose=True, # 启用诊断信息
format="{time:YYYY-MM-DD HH:mm:ss.SSS} {level} {message}",
backtrace=True, # 启用完整堆栈信息
diagnose=True # 启用变量诊断信息
)
# 控制台输出配置(可选)
# 配置控制台日志(可选)
logger.add(
lambda msg: print(msg),
level="DEBUG",
format="<green>{time}</green> | <level>{level}</level> | <cyan>{message}</cyan>",
format="{time:YYYY-MM-DD HH:mm:ss.SSS} {level} {message}",
backtrace=True,
diagnose=True,
)

View File

@ -1,8 +1,8 @@
import random as random_module
from loguru import logger
from src.engine.mahjong_tile import MahjongTile
from src.engine.calculate_fan import calculate_fan
def draw_tile(engine):
@ -212,14 +212,14 @@ def check_other_players(self, tile):
# 检查是否可以杠牌
if self.state.hands[player].tile_count[tile] >= 3:
logger.info(f"玩家 {player} 可以杠玩家 {current_player} 的牌: {tile}")
if handle_gang(player, tile, mode="ming"): # 执行明杠逻辑
if handle_gang(self,player, tile, mode="ming"): # 执行明杠逻辑
actions_taken = True
break # 杠牌后不检查其他玩家
# 检查是否可以碰牌
if self.state.hands[player].tile_count[tile] >= 2:
logger.info(f"玩家 {player} 可以碰玩家 {current_player} 的牌: {tile}")
if self.handle_peng(player, tile): # 执行碰牌逻辑
if handle_peng(self,player, tile): # 执行碰牌逻辑
actions_taken = True
break # 碰牌后不检查其他玩家

View File

@ -1,9 +1,11 @@
import random
from loguru import logger
from configs.log_config import setup_logging
from src.engine.actions import draw_tile, check_blood_battle, should_gang, random_choice
from src.engine.actions import set_missing_suit, check_other_players
from src.engine.chengdu_mahjong_state import ChengduMahjongState
from src.engine.actions import draw_tile, discard_tile, peng, gang, check_blood_battle,should_gang,random_choice
from configs.log_config import setup_logging
class ChengduMahjongEngine:
@ -39,7 +41,9 @@ class ChengduMahjongEngine:
# 自动设置缺门
set_missing_suit(player, self.state)
logger.info("发牌结束并完成缺门设置!")
# 记录发牌后的牌堆数量
self.state.remaining_tiles = len(self.state.deck)
logger.info(f"发牌结束并完成缺门设置!当前牌堆剩余数量: {self.state.remaining_tiles}")
def play_turn(self):
current_player = self.state.current_player