Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试解决迷宫(波前算法)_Python_Algorithm_Wavefront - Fatal编程技术网

Python 尝试解决迷宫(波前算法)

Python 尝试解决迷宫(波前算法),python,algorithm,wavefront,Python,Algorithm,Wavefront,您好,我正在尝试使用波形算法()用python编写一个迷宫求解程序。我使用嵌套循环在矩阵中循环并更改数字,如 然而,它似乎只在我矩阵的第一行循环,而没有移动到其他行。我已经盯着这件事看了很长一段时间了,我希望能有一些新的眼光来关注它 谢谢,洛根 floorMap = [[000,000,000,000,000,999,999,999,999,999], [000,000,999,000,999,000,000,000,999,999], [000,00

您好,我正在尝试使用波形算法()用python编写一个迷宫求解程序。我使用嵌套循环在矩阵中循环并更改数字,如

然而,它似乎只在我矩阵的第一行循环,而没有移动到其他行。我已经盯着这件事看了很长一段时间了,我希望能有一些新的眼光来关注它

谢谢,洛根

floorMap = [[000,000,000,000,000,999,999,999,999,999],
           [000,000,999,000,999,000,000,000,999,999],
           [000,000,999,000,999,000,000,000,999,999],
           [000,000,000,000,999,000,000,000,999,999],
           [999,000,000,000,999,000,999,999,999,999],
           [999,000,000,000,000,000,999,000,000,999],
           [999,000,000,000,999,999,999,000,000,999],
           [999,000,999,000,000,000,999,000,000,999],
           [999,000,999,999,999,000,000,000,000,999],
           [999,999,999,999,999,999,999,999,000,000]]
robotX=0
robotY=0

goalX=9
goalY=9

currentNum=0

wall=999
uncalculated=000

floorMap[robotX][robotY]=1


def changeSurroundings(X, Y):
    #left
    if(floorMap[X-1][Y]==000):
        floorMap[X-1][Y]=currentNum   
    #right 
    if(floorMap[X+1][Y]==000):
        floorMap[X+1][Y]=currentNum  
    #up
    if(floorMap[X][Y-1]==000):
        floorMap[X][Y-1]=currentNum  
    #down
    if(floorMap[X][Y+1]==000):
        floorMap[X][Y+1]=currentNum    

def printMap():
    i=0
    while(i<len(floorMap)):
        print floorMap[i]
        print ""
        i+=1
    print ""
    print ""



#------------------THIS IS WHERE THE PROBLEM IS--------------

while(floorMap[goalX][goalY]==0):
    x=0
    y=0
    while(x<len(floorMap[0])):
        while(y<len(floorMap)):
            if(floorMap[x][y] > 000 and floorMap[x][y] < 999):
                currentNum=floorMap[x][y]+1
                changeSurroundings(x,y)
                printMap()

            y+=1
        x+=1
floorMap=[[000000000000000 999999999999],
[000,000,999,000,999,000,000,000,999,999],
[000,000,999,000,999,000,000,000,999,999],
[000,000,000,000,999,000,000,000,999,999],
[999,000,000,000,999,000,999,999,999,999],
[999,000,000,000,000,000,999,000,000,999],
[999,000,000,000,999,999,999,000,000,999],
[999,000,999,000,000,000,999,000,000,999],
[999,000,999,999,999,000,000,000,000,999],
[999,999,999,999,999,999,999,999,000,000]]
机器人X=0
机器人=0
目标x=9
果利=9
currentNum=0
墙=999
未计算=000
floorMap[robotX][robotY]=1
def(X,Y):
#左
如果(总平面图[X-1][Y]==000):
floorMap[X-1][Y]=currentNum
#对
如果(总平面图[X+1][Y]==000):
floorMap[X+1][Y]=currentNum
#向上
如果(总平面图[X][Y-1]==000):
floorMap[X][Y-1]=currentNum
#向下
如果(floorMap[X][Y+1]==000):
floorMap[X][Y+1]=currentNum
def printMap():
i=0
而
x=0
y=0
while(x<len(floorMap[0])):
    while(y<len(floorMap)):
        ...
        y+=1
    x+=1
x=0
while(x<len(floorMap[0])):
    y=0
    while(y<len(floorMap)):
        ...
        y+=1
    x+=1