“车”走棋算法

7.1 说明

”车“的走棋算法,应该说是很复杂了

  1. 判断同一行上的可以走棋落子位置
    1. 判断当前棋子左边位置
    2. 判断当前棋子右边位置
  2. 判断同一列上的可以走棋落子位置
    1. 判断当前棋子上方的位置
    2. 判断当前棋子下方的位置

7.2 代码实现

elif clicked_chess.name == "c":  # 车
    # 一行
    left_stop = False
    right_stop = False
    for i in range(1, 9):
        # 左边位置没有越界且没有遇到任何一个棋子
        if not left_stop and col - i >= 0:
            if not map_[row][col - i]:
                # 如果没有棋子,则将当前位置组成一个元组,添加到列表
                put_down_chess_pos.append((row, col - i))
            else:
                left_stop = True
                if map_[row][col - i].team != team:
                    # 如果当前位置有棋子,那么就判断是否能够吃掉它
                    put_down_chess_pos.append((row, col - i))
        # 右边位置没有越界且没有遇到任何一个棋子
        if not right_stop and col + i <= 8:
            if not map_[row][col + i]:
                # 如果没有棋子,则将当前位置组成一个元组,添加到列表
                put_down_chess_pos.append((row, col + i))
            else:
                right_stop = True
                if map_[row][col + i].team != team:
                    # 如果当前位置有棋子,那么就判断是否能够吃掉它
                    put_down_chess_pos.append((row, col + i))

    # 一列
    up_stop = False
    down_stoop = False
    for i in range(1, 10):
        # 上边位置没有越界且没有遇到任何一个棋子
        if not up_stop and row - i >= 0:
            if not map_[row - i][col]:
                # 如果没有棋子,则将当前位置组成一个元组,添加到列表
                put_down_chess_pos.append((row - i, col))
            else:
                up_stop = True
                if map_[row - i][col].team != team:
                    # 如果当前位置有棋子,那么就判断是否能够吃掉它
                    put_down_chess_pos.append((row - i, col))
        # 下边位置没有越界且没有遇到任何一个棋子
        if not down_stoop and row + i <= 9:
            if not map_[row + i][col]:
                # 如果没有棋子,则将当前位置组成一个元组,添加到列表
                put_down_chess_pos.append((row + i, col))
            else:
                down_stoop = True
                if map_[row + i][col].team != team:
                    # 如果当前位置有棋子,那么就判断是否能够吃掉它
                    put_down_chess_pos.append((row + i, col))

image-20210821190622999

7.3 运行效果

img

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