Énigme du 4 décembre 2025

 

Un traîneau programmable !

Le père Noël est un peu confus. Il voudrait arriver sur la cheminée avec son traîneau programmable, mais a peur de percuter les lutins en train de faire la fête. Programme son traineau pour qu’il s'arrête sur la case de la cheminée sans toucher de lutin en cours de route !

Le traîneau dispose de deux détecteurs : un capteur de cheminée qui s’active quand le traîneau est sur la case cheminée, et un capteur lutin devant, qui s’active s’il y a un lutin sur la case juste devant le traîneau. Tu disposes d'un seul exemplaire de chacune des 12 briques de programmation ci-dessous. Organise les pour créer le bon programme et que le traîneau s'arrête devant la cheminée. Attention, on a mis une instruction inutile en trop.

Le fonctionnement de chacune des briques de programmation est décrit plus bas.


La zone ci-dessus est interactive : tu peux déplacer les briques (mais tu ne peux tester le programme sur le navigateur, il faut utiliser ton imagination).

Chaque brique a une petite lettre d’identification soulignée. Écris ci-dessous la suite de lettres, dans l’ordre d'apparition de tes instructions, en minuscules et sans espace. Exemple : début de programme + avance, cela donne : ma. Attention tu ne peux utiliser chaque lettre qu'une seule fois.

Description des briques

Les briques se placent l'une en dessous de l'autre, comme sur l'exemple suivant

qui fait la chose suivante : tant que le traîneau n'est pas sur la cheminée: pivote sur la gauche puis avance. Ici, il va tourner en boucle indéfiniment (et heurter l'un des lutins) donc ce n'est pas la réponse.


La brique début de programme est celle sur laquelle le programme commence. Le programme se déplace de brique en brique, en général en en suivant la petite flèche qui est en dessous.


La brique avance fait avancer le traîneau d'une case dans la direction où il est tourné.


La brique pivote fait faire au traîneau un quart de tour vers sa gauche ou sa droite selon l’orientation de la petite flèche.


Les briques violettes lutin devant et cheminée sont des conditions qui peuvent s'attacher à droite des briques répète tant que, si ou sinon si. On peut insérer la brique pas au milieu pour créer la négation (le contraire) de la condition.


La brique répète tant que fonctionne avec une brique fin répète associée (s'il n'y en a pas, le programme est considéré comme invalide). Quand le programme arrive sur répète tant que, il teste si la condition qui est attachée à droite est vérifiée. Si ce n'est pas le cas, le programme se déplace vers la brique située en dessous de la brique fin répète qui lui est associée. Si au contraire la condition est vérifiée, le programme continue sur la brique attachée en dessous de répète tant que et poursuit sa course. Quand il atteint la brique fin répète, il revient à la brique répète tant que associée.


Les briques si et sinon (si) et fin si fonctionnent de pair. Plus précisément une brique si doit avoir une brique fin si associée et en option une brique sinon (si) intermédiaire. Les briques fin si et sinon (si) ne peuvent apparaître qu'associée à une brique si. Voici un exemple:

Sur cet exemple, le traîneau pivote à droite quand il est sur la cheminée et sinon il avance. Dans les 2 cas, le programme est ensuite fini.

Fonctionnement général : quand le programme atteint la brique si, il teste la condition qui est à droite. Si cette condition est vérifiée, il va sur la brique en dessous. Sinon il va sur la brique sinon (si) associée ou s'il n'y en a pas, sur la brique fin si. Si le programme atteint la brique sinon (si), il passe à la brique en dessous si la condition attachée à droite est vérifiée ou s'il n'y a pas de condition. Dans les autres cas le programme va à fin si. Sur la brique fin si, le programme continue sur la brique en dessous.

Quand le programme "sort" des briques, il s'arrête.

Si tu cherches depuis trop longtemps, clique ci-dessous pour révéler des indices.
Indice : Que pourrais-tu faire à chaque détection de lutin ? Et sinon quoi ? Jusqu'à quand (tant que quoi) dois-tu répéter ta stratégie ?
Indice : As-tu réalisé que le détecteur de cheminée et le détecteur de lutins ont un fonctionnement légèrement différent ?


Énigme proposée par : Marc Agenis, réalisée avec les kits Code en Bois de programmation débranchée. Code en Bois est partenaires des Maths en Scène. Plus d'informations: https://codeenbois.fr/.

Crédits :
  • le parcours avec les lutins : Canva Content Licence https://www.canva.com/policies/content-license-agreement/
  • les briques de programmation : CC-BY-NC-SA Code en Bois


Voir la solution