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
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")
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) +