Défis algorithmiques
Labyrinthe spirale
Défi de programmation · langage LN
Sortir en six lignes
Le robot part du centre d’un labyrinthe en spirale dont votre programme ne connaît pas la taille. Guidez-le jusqu’à la sortie en utilisant ses capteurs, avec six lignes LN au maximum.
0 / 6 lignes · hors commentaires et lignes vides, FIN compris
Exécuter replace le robot au centre du même labyrinthe. Pas à pas avance d’un appel à une commande ou à un capteur. Les programmes de plus de six lignes restent exécutables pour expérimenter.
Aide à la syntaxe LN
Les commandes et capteurs s’écrivent en minuscules, sans argument ni import. Les mots-clés sont mis en majuscules au lancement.
SI mur_devant(): droite() FIN SI
est_libre() renvoie VRAI lorsque le robot est sorti. Vous pouvez utiliser NON pour inverser un test et TANT QUE pour répéter des instructions.
0 pas · 0 appels
Console LN
Les instructions AFFICHER apparaîtront ici.
Les commandes et capteurs du robot
avancer()- Avance d’une case, si aucun mur ne bloque le passage.
droite()/gauche()- Tourne le robot d’un quart de tour sur place, sans le déplacer.
mur_devant()- Renvoie VRAI s’il y a un mur juste devant le robot, FAUX sinon. Le capteur est montré en rouge ou en vert.
est_libre()- Renvoie VRAI lorsque le robot est à l’extérieur, et FAUX tant qu’il est dans le labyrinthe.
Chaque nouveau labyrinthe change de taille et d’orientation. Le programme ne reçoit aucune variable donnant ses dimensions. Un mur provoque un arrêt avec un message ; l’état de la scène reste cohérent.
La limite de six lignes inclut les lignes de fermeture comme FIN SI et FIN TANT QUE. Une réussite vaut pour le labyrinthe testé : recommencez sur d’autres labyrinthes pour éprouver votre solution.
Pause fige l’animation ; Pas à pas exécute un appel, y compris un test de capteur. Arrêter annule l’action inachevée. Ctrl + Entrée : exécuter / arrêter. Le code est enregistré uniquement sur cet appareil.