Ejemplo n.º 1
0
def genereMapDij(h, l):
    """
    Fonction qui reprend les fonctions des parties précédentes afin de générer une carte, appliquer dijkstra,
    et trouver un point de départ.

    :param h: Hauteur du labyrinthe                 (int)
    :param l: Largeur du labyrinthe                 (int)
    :return: La carte                               (numpy.ndarray)
             Le point de départ                     (int, int)
             Le point d'arrivée                     (int, int)
             La distance max trouvée pour Dijkstra  (int)
    """

    # Génération de map + Dijkstra
    carte, arrivee = initMapDFS(h, l)
    carte = dijkstra(carte, arrivee)

    # On trouve un début dont la solution possède une longueur de chemin l
    deb = debut(carte)

    # On cherche le maximum de Dijkstra sur la carte
    maxi = 0
    for i in range(h):
        for j in range(l):
            if carte[i, j] > maxi:
                maxi = carte[i, j]

    return carte, deb, arrivee, maxi
Ejemplo n.º 2
0
def exectutionPart2(h, l):
    """
    Cette fonction va nous permettre d'executer la résolution par la méthode 2

    :param h: hauteur du labyrinthe
    :param l: largeur du labyrinthe

    :return: Cette fonction ne renvoie rien
    """

    # On créer notre carte
    carte, fin = initMapDFS(h, l)

    # On lui applique Dijkstra
    carte = dijkstra(carte, fin)

    # On génère notre carte directionnelle
    carte_dir = carteDirectionnelle(carte)

    # On résoud notre labyrinthe
    solution = resolve(carte_dir, debut(carte))

    # On affiche le résultat pour voir la qualité de la matrice
    colorCarte(carte, solution, "exec_part2")
Ejemplo n.º 3
0
    DEBUG = False

    # Affichage et input utilisateur
    print("Bienvenue dans le Maze Runner version DFS !")
    h = int(input("Veuillez sélectionner la hauteur du labyrinthe : "))
    l = int(input("Veuillez sélectionner la largeur du labyrinthe : "))

    # On génère le labyrinthe
    print("Génération du labyrinthe en cours...")
    t1 = time.time()
    carte, fin = initMapDFS(h, l)
    if DEBUG: print("Temps gen: " + str(time.time() - t1))

    # On applique Dijkstra
    if DEBUG: t2 = time.time()
    carte_dij = dijkstra(carte, fin)
    if DEBUG: print("Temps dij: " + str(time.time() - t2))
    print("La carte a été générée en " + str(time.time() - t1) + " secondes")

    # On génère la carte directionnelle
    print("Résolution du labyrinthe...")
    t3 = time.time()
    carte_dir = carteDirectionnelle(carte_dij)
    if DEBUG: print("Temps map_dir:" + str(time.time() - t3))

    # On résoud le labyrinthe
    if DEBUG: t4 = time.time()
    deb = debut(carte_dij)
    solution = resolve(carte_dir, deb)
    if DEBUG: print("Temps résolution:" + str(time.time() - t4))
    print("La solution a été trouvée en " + str(time.time() - t3) +