You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用Dictionary表示迷宫?计算机新生求教

用Python字典实现迷宫的合理方案

核心思路

用字典表示迷宫的关键是把每个迷宫节点(比如网格坐标)作为键,节点的连通信息作为值,这种结构能清晰映射迷宫的通路关系,比简单二维列表更灵活,也方便后续路径查找算法(如DFS、BFS)的实现。

具体实现示例

1. 基础网格迷宫(区分墙和通路)

假设迷宫是网格状,每个节点用(x,y)坐标作为键,值是记录上下左右四个方向是否可通行的字典(True为通路,False为墙):

# 3x3迷宫,(0,0)是起点,(2,2)是终点
maze = {
    (0, 0): {'up': False, 'down': True, 'left': False, 'right': True},
    (0, 1): {'up': False, 'down': True, 'left': True, 'right': False},
    (0, 2): {'up': False, 'down': False, 'left': False, 'right': False},  # 死胡同
    (1, 0): {'up': True, 'down': True, 'left': False, 'right': False},
    (1, 1): {'up': True, 'down': True, 'left': False, 'right': True},
    (1, 2): {'up': False, 'down': True, 'left': True, 'right': False},
    (2, 0): {'up': True, 'down': False, 'left': False, 'right': False},  # 死胡同
    (2, 1): {'up': True, 'down': False, 'left': False, 'right': True},
    (2, 2): {'up': True, 'down': False, 'left': True, 'right': False}   # 终点
}

2. 简化版:直接存储可达节点

如果不需要区分墙的方向,只关心当前节点能直接抵达的相邻节点,可以把值简化为相邻节点的列表:

maze = {
    (0, 0): [(0, 1), (1, 0)],
    (0, 1): [(0, 0), (1, 1)],
    (0, 2): [],
    (1, 0): [(0, 0), (2, 0)],
    (1, 1): [(0, 1), (2, 1), (1, 2)],
    (1, 2): [(1, 1), (2, 2)],
    (2, 0): [(1, 0)],
    (2, 1): [(1, 1), (2, 2)],
    (2, 2): [(1, 2), (2, 1)]
}

扩展场景处理

  • 带移动成本的迷宫:可以把值改成{节点: 权重}的字典,比如(0,0): {(0,1): 1, (1,0): 2},适配Dijkstra等加权路径算法。
  • 动态生成迷宫:写个初始化函数,根据网格大小自动生成节点字典,再随机设置通路/墙,避免手动逐个录入节点。

验证方法

可以用简单的DFS函数测试迷宫连通性,比如从起点(0,0)查找终点(2,2):

def dfs(maze, start, end, visited=None):
    if visited is None:
        visited = set()
    if start == end:
        return [start]
    visited.add(start)
    for neighbor in maze[start]:
        if neighbor not in visited:
            path = dfs(maze, neighbor, end, visited)
            if path:
                return [start] + path
    return None

# 测试简化版迷宫
print(dfs(maze, (0,0), (2,2)))  # 输出: [(0, 0), (0, 1), (1, 1), (1, 2), (2, 2)]

内容的提问来源于stack exchange,提问作者مصطفى حسين خزعل بهلول

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:43:23