parent
2bc34bc860
commit
ff15ecb1a1
|
|
@ -1,4 +1,3 @@
|
||||||
# configs/log_config.py
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
@ -10,21 +9,21 @@ def setup_logging():
|
||||||
# 清除所有现有日志处理器,防止重复配置
|
# 清除所有现有日志处理器,防止重复配置
|
||||||
logger.remove()
|
logger.remove()
|
||||||
|
|
||||||
# 配置日志,记录到 ../logs 目录下
|
# 配置日志文件
|
||||||
logger.add(
|
logger.add(
|
||||||
os.path.join(log_dir, "chengdu_mj_engine.log"),
|
os.path.join(log_dir, "chengdu_mj_engine.log"),
|
||||||
rotation="10 MB",
|
rotation="10 MB",
|
||||||
level="DEBUG",
|
level="DEBUG",
|
||||||
format="{time} {level} {message}",
|
format="{time:YYYY-MM-DD HH:mm:ss.SSS} {level} {message}",
|
||||||
backtrace=True, # 启用完整堆栈跟踪
|
backtrace=True, # 启用完整堆栈信息
|
||||||
diagnose=True, # 启用诊断信息
|
diagnose=True # 启用变量诊断信息
|
||||||
)
|
)
|
||||||
|
|
||||||
# 控制台输出配置(可选)
|
# 配置控制台日志(可选)
|
||||||
logger.add(
|
logger.add(
|
||||||
lambda msg: print(msg),
|
lambda msg: print(msg),
|
||||||
level="DEBUG",
|
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,
|
backtrace=True,
|
||||||
diagnose=True,
|
diagnose=True,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import random as random_module
|
import random as random_module
|
||||||
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from src.engine.mahjong_tile import MahjongTile
|
from src.engine.mahjong_tile import MahjongTile
|
||||||
from src.engine.calculate_fan import calculate_fan
|
|
||||||
|
|
||||||
|
|
||||||
def draw_tile(engine):
|
def draw_tile(engine):
|
||||||
|
|
@ -212,14 +212,14 @@ def check_other_players(self, tile):
|
||||||
# 检查是否可以杠牌
|
# 检查是否可以杠牌
|
||||||
if self.state.hands[player].tile_count[tile] >= 3:
|
if self.state.hands[player].tile_count[tile] >= 3:
|
||||||
logger.info(f"玩家 {player} 可以杠玩家 {current_player} 的牌: {tile}")
|
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
|
actions_taken = True
|
||||||
break # 杠牌后不检查其他玩家
|
break # 杠牌后不检查其他玩家
|
||||||
|
|
||||||
# 检查是否可以碰牌
|
# 检查是否可以碰牌
|
||||||
if self.state.hands[player].tile_count[tile] >= 2:
|
if self.state.hands[player].tile_count[tile] >= 2:
|
||||||
logger.info(f"玩家 {player} 可以碰玩家 {current_player} 的牌: {tile}")
|
logger.info(f"玩家 {player} 可以碰玩家 {current_player} 的牌: {tile}")
|
||||||
if self.handle_peng(player, tile): # 执行碰牌逻辑
|
if handle_peng(self,player, tile): # 执行碰牌逻辑
|
||||||
actions_taken = True
|
actions_taken = True
|
||||||
break # 碰牌后不检查其他玩家
|
break # 碰牌后不检查其他玩家
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
import random
|
import random
|
||||||
|
|
||||||
from loguru import logger
|
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.actions import set_missing_suit, check_other_players
|
||||||
from src.engine.chengdu_mahjong_state import ChengduMahjongState
|
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:
|
class ChengduMahjongEngine:
|
||||||
|
|
@ -39,7 +41,9 @@ class ChengduMahjongEngine:
|
||||||
# 自动设置缺门
|
# 自动设置缺门
|
||||||
set_missing_suit(player, self.state)
|
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):
|
def play_turn(self):
|
||||||
current_player = self.state.current_player
|
current_player = self.state.current_player
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue