• Aucun résultat trouvé

Un problème de labyrinthe

N/A
N/A
Protected

Academic year: 2022

Partager "Un problème de labyrinthe"

Copied!
1
0
0

Texte intégral

(1)

NSI Lycée Louis de Foix

Un problème de labyrinthe

On considère un labyrinthe défini comme une grille de cellules. Chaque cellule possède un mur droit et un mur bas, et chaque mur peut être ouvert, ce qui revient à dire qu’il y a un passage (ou pas de mur) ou fermé. Le passage entre deux cellules adjacentes est possible :

• horizontalement si la cellule de gauche à un mur droit ouvert

• verticalement si la cellule du haut à un mur bas ouvert.

Le labyrinthe est encadré de murs (pas de passage vers le haut sur la première ligne…).

Le labyrinthe est créé avec tous les murs « fermés » (aucun passage entre les cellules), puis une méthode generation permet d’ouvrir des murs afin qu’il existe toujours un chemin entre deux cellules du labyrinthe. L’algorithme utilisé est décrit ici :

https://fr.wikipedia.org/wiki/Mod%C3%A9lisation_math%C3%A9matique_de_labyrinthe class Cellule:

def __init__(self):

self.mur_bas = True # True signifie que le mur est fermé self.mur_droit = True # False signifie que le mur est ouvert class Labyrinthe:

def __init__(self, largeur, hauteur):

self.hauteur = hauteur self.largeur = largeur

self.grille = [[Cellule() for j in range(largeur)] for i in range(hauteur)]

self.generation()

def solution(self, depart_ligne, depart_colonne, arrivee_ligne, arrivee_colonne):

"""

Renvoie la liste de directions à suivre pour se rendre de la cellule

(depart_ligne, depart_colonne) à la cellule (arrivee_ligne, arrivee_colonne).

Exemple de retour : ['n', 'e', 'e', 's', 'o']

"""

Travail à faire

Écrire la méthode solution renvoyant un chemin permettant de se rendre d’une cellule de départ à une cellule d’arrivée.

Vous testerez votre code dans le fichier labyrinthe.py.

Références

Documents relatifs

Interrupteur à bascule fermé sortie sortie Pile, borne plus. à gauche

Pour cela, Márcio a représenté chaque pièce comme une grille de N lignes et M colonnes, où chaque position est représentée par un symbole ayant

(c) ´ Ecrire une fonction qui prend en entr´ ee le nom d’un fichier encodant un labyrinthe et retourne la matrice d’adjacence du graphe associ´ e que vous avez d´ efini ` a

A près un long travail de recher- che et d'observation sur les arbres, leur forme, leur feuillage, leur écorce, leur tronc et une étude technique de

On peut également dupliquer (copier) un rectangle avec le bouton Voici un exemple de labyrinthe.. (mais construis ton propre labyrinthe

En utilisant les fonctions des questions précédentes, écrire une fonction voisinsLibres qui prend en arguments un labyrinthe et un numéro de ligne et un numéro de colonnes

les clés doivent être insérées dans les rainures verticales des blocs supérieurs et doivent se déposer au fond de l'entaille en haut du bloc inférieur et non sur la géogrille.

Pour chaque niveau, vous trouverez une grille vierge pour permettre à vos élèves de concevoir un nouveau labyrinthe. Vous pouvez aussi nous les envoyer, ils