将军

1.1 说明

想要实现“将军”功能,大体流程如下:

  1. 落子后,检测走棋方的所有棋子中是否有一个棋子能吃掉对方的“将”
  2. 如果检测到则显示“将军”效果

1.2 检测对方“将”的位置

    def get_general_position(self, general_player):
        """
        找到general_player标记的一方的将的位置
        """
        for row, line in enumerate(self.chessboard_map):
            for col, chess in enumerate(line):
                if chess and chess.team == general_player and chess.name == "j":
                    return chess.row, chess.col

    def judge_attack_general(self, attact_player):
        """
        判断 attact_player方是否 将对方的军
        """
        # 1. 找到对方"将"的位置
        general_player = "r" if attact_player == "b" else "b"
        general_position = self.get_general_position(general_player)

image-20210821195844921

# 检测落子后,是否产生了"将军"功能
if chessboard.judge_attack_general(game.get_player()):
    pass

image-20210821195939276

1.3 运行效果

此步骤的运行效果与与之前一样,并没有变化

Copyright © itprojects.cn 2021 all right reserved,著作权归itprojects.cn所有,由王铭东编写该文件修订时间: 2021-08-21 20:35:32