예제 #1
0
    def Run(self):
        f = open("de.txt", "w")
        gridSize = self.gridSize
        mat = [[0 for i in range(gridSize)] for j in range(gridSize)]
        for i in range(gridSize):
            for j in range(gridSize):
                if self.canvas.itemcget(self.grid[i][j], "fill") == 'black':
                    mat[i][j] = 1
                f.write(str(mat[i][j]))
                f.write(" ")
            f.write("\n")

        si = self.startNode.pos.i
        sj = self.startNode.pos.j
        gi = self.goalNode.pos.i
        gj = self.goalNode.pos.j

        if self.str_algo != "ARA*":
            myMap = algo.Map()
            myMap.create(gridSize, mat, si, sj, gi, gj)
            flagFind = algo.AStar(myMap, self)

            if flagFind:
                res = self.tracking(myMap)
                messagebox.showinfo("Message", "Complete finding path")
            else:
                messagebox.showinfo("Message", "No path!")
        else:
            myMap = ara.Map()
            myMap.create(gridSize, mat, si, sj, gi, gj)

            ara.ARA(myMap, 2.5, 0.5, self)
            messagebox.showinfo("Message", "Complete finding path")

        f.close()
예제 #2
0
occupancyGrid[8:10, 2:6] = 1
occupancyGrid[4:6, 6:8] = 1
occupancyGrid[6, 5:7] = 1
occupancyGrid[10:12, 7:10] = 1
occupancyGrid[11, 0:3] = 1
occupancyGrid[11:15, 4:6] = 1
occupancyGrid[13:15, 2:5] = 1
occupancyGrid[15, 3:5] = 1
occupancyGrid[16:18, 3] = 1
occupancyGrid[18:20, 5] = 1
occupancyGrid[14, 7:9] = 1
occupancyGrid[16, 7:10] = 1

adjacency = 8

carte = AStar.Map(dimX, dimY, adjacency)
carte.initCoordinates()
carte.loadOccupancy(occupancyGrid)
carte.generateGraph()
carte.plot(10)

epsilon = 1

print "A* algorithm running ..."
closedList, successFlag = carte.AStarFindPath(0, 199, epsilon)
#print closedList
if (successFlag == True):
    print "  - A* terminated with success: path found"

    path = carte.builtPath(closedList)