利用python栈和队列迷宫小游戏代码
时间: 2023-09-05 20:07:51 浏览: 98
好的,下面是利用Python栈和队列实现迷宫小游戏的代码:
```
# 定义迷宫的行列数
row = 5
col = 5
# 设计迷宫,1表示墙,0表示可行空间
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)
# 定义栈和队列
stack = []
queue = []
# 定义两个方向数组
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
# 深度优先搜索(利用栈实现)
def dfs(start):
stack.append(start)
while stack:
cur = stack.pop()
if cur == end:
print("找到终点!")
return True
for i in range(4):
newx = cur[0] + dx[i]
newy = cur[1] + dy[i]
if 0 <= newx < row and 0 <= newy < col and maze[newx][newy] == 0:
stack.append((newx, newy))
maze[newx][newy] = 2
print(stack)
print("没有找到路!")
return False
# 广度优先搜索(利用队列实现)
def bfs(start):
queue.append(start)
while queue:
cur = queue.pop(0)
if cur == end:
print("找到终点!")
return True
for i in range(4):
newx = cur[0] + dx[i]
newy = cur[1] + dy[i]
if 0 <= newx < row and 0 <= newy < col and maze[newx][newy] == 0:
queue.append((newx, newy))
maze[newx][newy] = 2
print(queue)
print("没有找到路!")
return False
# 测试
print("深度优先搜索:")
dfs(start)
print("广度优先搜索:")
bfs(start)
```
注意:这段代码并非完整代码,只是一个示例。实际开发中,栈和队列的具体实现可能需要根据不同的环境和需求进行调整。
阅读全文