nsi:tds:sortir_labyrinthe
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:tds:sortir_labyrinthe [2021/09/30 12:47] – ↷ Page déplacée de nsi:projets:sortir_labyrinthe à nsi:tds:sortir_labyrinthe goupillwiki | nsi:tds:sortir_labyrinthe [2023/09/22 17:03] (Version actuelle) – goupillwiki | ||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| ===== Le module fourni ===== | ===== Le module fourni ===== | ||
| - | Le module exploite Tkinter. Vous pouvez le télécharger : {{ : | + | Le module exploite Tkinter. Vous pouvez le télécharger : {{ labyrinthe.py |}} |
| Ce module permet de créer facilement un labyrinthe, de l' | Ce module permet de créer facilement un labyrinthe, de l' | ||
| Ligne 18: | Ligne 18: | ||
| Vous allez un créer un fichier python, par exemple '' | Vous allez un créer un fichier python, par exemple '' | ||
| - | Il devra être placer dans le même dossier que '' | + | Il devra être placer dans le même dossier que '' |
| <code python> | <code python> | ||
| - | from laby_tk | + | from labyrinthe |
| + | |||
| + | speed(50) # réglage de la vitesse | ||
| </ | </ | ||
| - | == Création de labyrinthe à partir d'une grille | + | == Création de labyrinthe à partir d'un fichier texte == |
| - | Vous pouvez créer un labyrinthe | + | Vous pouvez créer un exemple de labyrinthe |
| + | * Les '' | ||
| + | * les '' | ||
| + | * le '' | ||
| - | < | + | Par exemple : |
| - | grille = [ | + | |
| - | "********************", | + | < |
| - | "D | + | ******************** |
| - | "*** * *** * ** * * A", | + | D |
| - | "* * * * * * * * *", | + | *** * *** * ** * * A |
| - | "* *** * * * ** * *", | + | * * * * * * * * * |
| - | "* * * * * * *", | + | * *** * * * ** * * |
| - | "********* | + | * * * * * * * |
| - | "* | + | ********* |
| - | "********************" | + | * |
| - | ] | + | ******************** |
| </ | </ | ||
| - | Il s'agit d'une grille composée de lignes de texte. | + | Vous pouvez enregistrer ce texte dans par exemple dans un fichier {{ : |
| - | + | ||
| - | Ensuite cette commande crée le labyrinthe : | + | |
| <code python> | <code python> | ||
| - | laby = Laby(grille) | + | load(" |
| </ | </ | ||
| - | Toute la suite consistera à manipuler '' | + | == Gros labyrinthe == |
| - | == Création | + | Faire un gros labyrinthe est un peu long. Je vous en ai fait un : {{ nsi: |
| - | Au lieu d'écrire | + | Vous pouvez l'utiliser pour vérifier |
| - | Vous pourrez alors créer votre objet labyrinthe directement en le chargeant : | + | == Base du programme == |
| - | <code python> | + | Votre programme contiendra forcément : |
| - | laby = Laby.load(' | + | |
| - | </ | + | |
| - | + | ||
| - | == Mouvements == | + | |
| - | + | ||
| - | Maintenant que '' | + | |
| <code python> | <code python> | ||
| - | laby.avancer() # avance d'un pas | + | from labyrinthe import * |
| - | laby.tourner_gauche() # tourne d'un quart de tour à gauche | + | speed(50) # vitesse ajustée entre 1 et 100 |
| - | laby.tourner_droite() # tourne d'un quart de tour à droite | + | load(" |
| - | </ | + | |
| - | **Attention :** si vous avancez contre un mur, vous aurez une erreur. | + | # vos commandes |
| - | == Détection des murs == | ||
| - | Vous pouvez aussi tester les cases voisines du marcheur pour savoir ce qu'il peut faire : | ||
| - | <code python> | + | # et à la fin |
| - | laby.mur_devant() | + | fin() |
| - | laby.mur_a_gauche() # renvoie True s'il y a un mur à gauche | + | |
| - | laby.mur_a_droite() # renvoie True s'il y a un mur à droite | + | |
| </ | </ | ||
| - | == Maintient de l' | + | == Mouvements |
| - | + | ||
| - | Chaque fois que vous donnerez une consigne de mouvement, l' | + | |
| <code python> | <code python> | ||
| - | laby.fin() | + | avancer() # avance d'un pas |
| + | tourner_gauche() # tourne d'un quart de tour à gauche | ||
| + | tourner_droite() # tourne d'un quart de tour à droite | ||
| </ | </ | ||
| - | À n'utiliser qu'à la toute fin ! | + | **Attention :** si vous avancez contre un mur, vous aurez un message d'erreur. |
| - | == Accélérer l' | + | == Détection des murs == |
| - | Selon la puissance des machines, | + | Vous pouvez aussi tester les cases voisines du marcheur pour savoir ce qu'il peut faire : |
| <code python> | <code python> | ||
| - | laby.faster() | + | mur_devant() # renvoie True s'il y a un mur devant le marcheur |
| - | </ | + | mur_a_gauche() |
| - | + | mur_a_droite() # renvoie True s'il y a un mur à droite | |
| - | Vous pouvez l' | + | est_A() # renvoie True si le marcheur est sur l' |
| - | + | ||
| - | == Un fichier pour commencer == | + | |
| - | + | ||
| - | Prenant en compte ce que j'ai dit plus haut, voici un programme qui vous affichera un labyrinthe et fera faire quelques pas au marcheur. | + | |
| - | + | ||
| - | <code python linenums: | + | |
| - | # fichier | + | |
| - | + | ||
| - | from laby_tk import Laby | + | |
| - | + | ||
| - | grille = [ | + | |
| - | " | + | |
| - | " | + | |
| - | "*** * *** * ** * * A", | + | |
| - | " | + | |
| - | "* *** * * * ** * *", | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | " | + | |
| - | ] | + | |
| - | + | ||
| - | laby = Laby(grille) | + | |
| - | + | ||
| - | laby.avancer() | + | |
| - | laby.avancer() | + | |
| - | laby.avancer() | + | |
| - | laby.tourner_droite() | + | |
| - | laby.avancer() | + | |
| - | laby.avancer() | + | |
| - | + | ||
| - | laby.fin() # fin du programme, maintien de la fenêtre | + | |
| </ | </ | ||
nsi/tds/sortir_labyrinthe.1632998828.txt.gz · Dernière modification : de goupillwiki
