ZBLOG

def PlayMazz(mazz, start, end): ''' 走迷宫,从start走到end :param mazz: 迷宫 :param start: 迷宫的起点 :param end: 迷宫的出口 ''' # queue为队列,当队列为空或者当前地点为H时搜索结束 visited, queue = set(), [start] while queue: # 从队列中出队,即当前所处的地点...

以下是修正后的代码:

def PlayMazz(mazz, start, end):
    '''
    走迷宫,从start走到end
    :param mazz: 迷宫
    :param start: 迷宫的起点
    :param end: 迷宫的出口
    '''

    # queue为队列,当队列为空或者当前地点为end时搜索结束
    visited, queue = set(), [start]
    while queue:
        # 从队列中出队,即当前所处的地点
        vertex = queue.pop(0)
        if vertex not in visited:
            visited.add(vertex)
            print(vertex, end='')
            # 当走到出口时结束算法
            if vertex == end:
                return True
            
            # 将当前所处地点所能走到的地点放入队列
            for v in mazz[vertex]:
                if v not in visited:
                    queue.append(v)
    
    return False

# 示例用法:
mazz = {
    'A': ['B', 'C'],
    'B': ['A', 'D'],
    'C': ['A', 'E'],
    'D': ['B', 'F'],
    'E': ['C', 'G'],
    'F': ['D', 'H'],
    'G': ['E', 'H'],
    'H': ['F', 'G']
}

start = "A"
end = "H"

PlayMazz(mazz, start, end)

在这段修正后的代码中,我们添加了对于终点 end 的判断条件。当遍历到终点时,算法会返回 True。同时,在将当前所处地点的可达地点放入队列时,我们使用 append 方法而不是 extend 方法来添加到队列中。这样可以确保每个可达地点都以单独的元素形式被添加到队列中,而不会被当做一个整体添加进去。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=2119

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?