def Explore（start、goal、grid、訪問、h = false）：
    start.g = 0
    start.cost = start.h
    goal.g = math.inf
    heap = []
    ステップ= 0
    heapq.heappush（heap、（start.cost、start））

    レン（ヒープ）> 0：
        u = heapq.heappop（heap）[1]
        goalpoint = [goal.row、goal.col]
        訪問した場合[U.Row] [U.Col]：
            続く
        訪問[U.Row] [U.Col] = true
        手順 += 1
        if（[u.row、u.col] == goalpoint）：
            goal.parent = U.Parent
            見つかった= true
            壊す

        U.Adjacent（グリッド）のIの場合：
            if（訪問[i [0]] [i [1]] == true）：
                続く
            adj = node（i [0]、i [1]、grid [i [0]] [i [1]]、parent = u）
            adj.g = u.g + 1
            h == trueの場合：
                adj.h = adj.distance（目標）
            adj.cost = adj.g + adj.h
            heapq.heappush（heap、（adj.cost、adj））

    見つかった場合とh：
        print（f "{手順}手順を実行して、a*"を使用してパスを見つけるための手順
    Elifは発見しましたが、Hではありません。
        印刷（f "{手順} dijkstraを使用してパスを見つけるための手順がかかります"）
    それ以外：
        印刷（ "パスが見つかりません"）
    ゴールを返す、ステップ
def explore(start, goal, grid,visited, h=False):
    start.g = 0
    start.cost =start.h
    goal.g = math.inf
    heap = []
    steps = 0
    heapq.heappush(heap, (start.cost, start))

    while len(heap) > 0:
        u = heapq.heappop(heap)[1]
        goalPoint=[goal.row, goal.col]
        if visited[u.row][u.col]:
            continue
        visited[u.row][u.col] = True
        steps += 1
        if ([u.row, u.col] ==goalPoint) :
            goal.parent = u.parent
            found = True
            break

        for i in u.adjacent(grid):       
            if (visited[i[0]][i[1]] == True): 
                continue
            adj = Node(i[0], i[1], grid[i[0]][i[1]], parent=u)
            adj.g = u.g + 1
            if h == True:
                adj.h = adj.distance(goal)
            adj.cost = adj.g + adj.h
            heapq.heappush(heap, (adj.cost, adj))

    if found and h:
        print(f"It takes {steps} steps to find a path using A*")
    elif found and not h:
        print(f"It takes {steps} steps to find a path using Dijkstra")
    else:
        print("No path found")
    return goal, steps