python迷宫求解代码_Python中的迷宫求解

我孜孜不倦地试图用python制作一个迷宫解算器。我已经使用了我所有的资源,比如朋友、互联网和堆栈。我已经根据之前的堆栈问题修改了很多代码,但是即使完全复制代码(我不喜欢这样做),也无法得到答案。在

迷宫/输入文件(嵌套列表):[['*', '*', '*', '*', '*'],

['*', ' ', '*', ' ', '*'],

['*', ' ', ' ', ' ', '*'],

['*', ' ', '*', ' ', 'E'],

['*', 'S', '*', '*', '*']]

此函数在迷宫中的相同点上循环。我的起点“S”是(4,1),其输出为:

^{pr2}$

上面的语句是用来打印调试函数I的。它只是按这个顺序打印上面的内容,直到它到达递归限制。低于是我的求解函数:already_visited=[]

def solve(x,y):

global already_visited

matrix = draw(load())

print (x,y)

#base cases

if matrix[x][y] == "E":

for row in matrix:

row = str(row)[1:-1]

print row

return True

if matrix[x][y] == "*":

return False

if matrix[x][y] == "x":

return False

matrix[x][y] = "x"

#---------------------

if (x,y) in already_visited: #check if we have already been here

return False

already_visited.append((x,y)) #add position to list

#---------------------

# recursive cases (matrix traversal)

if (x < len(matrix)-1 and solve1(x+1,y)):

return True

elif (y > 0 and solve1(x,y-1)):

return True

elif (x > 0 and solve1(x-1,y)):

return True

elif (y < len(matrix)-1 and solve1(x,y+1)):

return True

else:

return False

我输入的x和y的函数都是起始索引,如上面的迷宫所示。非常感谢任何帮助!在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值