Exercice 17
This commit is contained in:
parent
54a04af93c
commit
dccae18004
|
@ -222,4 +222,60 @@ def sortie_tremaux(l: Labyrinthe):
|
|||
return nodes
|
||||
|
||||
print(labyrinthe_complexe_1.montrer())
|
||||
print(sortie_tremaux(labyrinthe_complexe_1))
|
||||
print(sortie_tremaux(labyrinthe_complexe_1))
|
||||
|
||||
def genere_labirinthe_aleatoire(nb_salles, max_aretes):
|
||||
salles = [ [Salle() for x in range(nb_salles)] for y in range(nb_salles) ]
|
||||
entree = (randint(0, nb_salles-1), randint(0, nb_salles-1))
|
||||
sortie = (randint(0, nb_salles-1), randint(0, nb_salles-1))
|
||||
l = Labyrinthe(salles, entree, sortie)
|
||||
l.salle(entree).mur = False
|
||||
l.salle(entree).entree = True
|
||||
l.salle(sortie).mur = False
|
||||
l.salle(sortie).sortie = True
|
||||
|
||||
visited = [entree]
|
||||
current = entree
|
||||
while current != sortie:
|
||||
voisins = []
|
||||
for voisin in [coord for coord in l.voisins(current) if coord not in visited]:
|
||||
voisins_of_voisin = [coord for coord in l.voisins(voisin) if coord != current]
|
||||
for coord in voisins_of_voisin:
|
||||
if coord in visited:
|
||||
break
|
||||
else:
|
||||
voisins.append(voisin)
|
||||
|
||||
if not voisins:
|
||||
for x in range(nb_salles):
|
||||
for y in range(nb_salles):
|
||||
l.salle((x, y)).mur = True
|
||||
visited = [entree]
|
||||
current = entree
|
||||
continue
|
||||
|
||||
current = choice(voisins)
|
||||
visited.append(current)
|
||||
if current != sortie:
|
||||
l.salle(current).mur = False
|
||||
|
||||
for i in range(nb_salles):
|
||||
for j in range(nb_salles):
|
||||
for voisin in l.voisins((i, j)):
|
||||
if not l.salle(voisin).mur:
|
||||
break
|
||||
else:
|
||||
current = (i, j)
|
||||
a = [current]
|
||||
l.salle((i, j)).mur = False
|
||||
while current not in visited:
|
||||
current = choice(l.voisins(current))
|
||||
l.salle(current).mur = False
|
||||
a.append(current)
|
||||
for x in a:
|
||||
visited.append(x)
|
||||
|
||||
return l
|
||||
|
||||
print(genere_labirinthe_aleatoire(10, 10).montrer())
|
||||
|
||||
|
|
Loading…
Reference in a new issue