迷宫寻宝代码
时间: 2023-07-02 15:14:43 浏览: 289
以下是一个简单的迷宫寻宝代码示例,使用深度优先搜索算法:
```python
# 定义迷宫,0 表示通路,1 表示障碍物
maze = [
[0, 1, 0, 0, 0],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 1, 0]
]
# 定义开始和结束坐标
start = (0, 0)
end = (4, 4)
# 定义搜索函数
def dfs(maze, start, end):
stack = [start] # 用栈来实现深度优先搜索
visited = set() # 记录已经访问过的节点
while stack:
x, y = stack.pop()
if (x, y) == end:
return True
if 0 <= x < len(maze) and 0 <= y < len(maze[0]) and maze[x][y] == 0 and (x, y) not in visited:
visited.add((x, y))
stack.append((x+1, y)) # 向下搜索
stack.append((x-1, y)) # 向上搜索
stack.append((x, y+1)) # 向右搜索
stack.append((x, y-1)) # 向左搜索
return False
# 调用搜索函数
if dfs(maze, start, end):
print("找到宝藏!")
else:
print("没有找到宝藏...")
```
运行结果:
```
找到宝藏!
```
这个示例代码使用了深度优先搜索算法,在搜索过程中使用一个栈来实现。首先将起点加入栈中,然后每次从栈中取出一个节点,判断是否是终点,如果是,则搜索结束;否则,判断该节点是否为通路且未被访问过,如果是,则将该节点的邻居节点加入栈中继续搜索。搜索结束后,如果能够找到终点,则返回 True,否则返回 False。
阅读全文