From 6a6baeb4609c58822cadc242dce7b120fd335b48 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sun, 1 Dec 2024 05:06:29 +0800 Subject: [PATCH] Update actions.py --- src/engine/actions.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/engine/actions.py b/src/engine/actions.py index d3f34f8..be0cabc 100644 --- a/src/engine/actions.py +++ b/src/engine/actions.py @@ -186,4 +186,37 @@ def set_missing_suit(player, game_state): f"玩家 {player} 手牌花色分布: {suit_counts}。缺门设置为: {missing_suit}" ) - return missing_suit \ No newline at end of file + return missing_suit + + +def check_other_players(self, tile): + """ + 检查其他玩家是否可以对打出的牌进行操作(如碰、杠、胡牌)。 + """ + current_player = self.state.current_player + next_player = (current_player + 1) % 4 + + for player in range(4): + if player == current_player: + continue + + # 检查是否可以碰 + if self.state.hands[player].tile_count[tile] >= 2: + logger.info(f"玩家 {player} 可以碰玩家 {current_player} 的牌: {tile}") + # 根据规则决定是否碰 + # 这里可以扩展为调用 AI 或玩家输入 + # self.peng(tile) + + # 检查是否可以杠 + if self.state.hands[player].tile_count[tile] >= 3: + logger.info(f"玩家 {player} 可以杠玩家 {current_player} 的牌: {tile}") + # 根据规则决定是否杠 + # self.gang(tile, mode="ming") + + # 检查是否可以胡牌 + if self.can_win(self.state.hands[player], self.state.melds[player], self.state.missing_suits[player]): + logger.info(f"玩家 {player} 可以胡玩家 {current_player} 的牌: {tile}") + # 根据规则决定是否胡牌 + # self.handle_win(player) + + logger.info(f"玩家 {current_player} 打出的牌 {tile} 没有触发其他玩家的操作") \ No newline at end of file