Le Puzzle de l'Avent 2025
Posté le 02/12/2025 03:33
Décembre est de retour, et du même coup le Puzzle de l'Avent de Planète Casio ! La neige n'est peut-être pas au rendez-vous mais les activités de saison n'attendent pas.
On en est à pas moins de la
6ème édition (
2018,
2019,
2021,
2023,
2024) et la formule est proche de ce qu'on a fait ces dernières années.
Principe et lots
Le but du jeu est de
reconstituer un puzzle en pixel art (en l'occurrence de 192x112 pixels) en résolvant des problèmes d'informatique posés durant le moins de Décembre. Cette année j'ai retenu ma leçon que poser un problème pas trivial tous les jours c'est beaucoup (pour vous comme pour moi), donc on va la jouer cool avec en gros des problèmes 1 jour sur 2.
Il y aura
3 lots à remporter gracieusement sponsorisés par
Calcuso !
- Une calculatrice Graph Math+ (normalement gravée laser avec un message personnalisé--je vous confirme ça) ;
- Deux housses pour calculatrices (ou, selon les goûts, une coque d'édition limitée pour Graph Light/Math+ offerte par Casio Éducation).

Fonctionnement des problèmes et attribution des lots
Je change un poil la formule cette année pour élargir le type de problèmes !
- Chaque problème sera posé sous la forme d'un "énoncé" que vous devrez résoudre. Généralement du code Python sera fourni, à utiliser sur votre calculatrice ou ordinateur, et parfois vous devrez écrire du code Python pour trouver une réponse.
- Une solution sera soit un nombre soit une chaîne de caractères. Contrairement aux années précédentes, il pourra y avoir plusieurs solutions, auquel cas vous devrez en trouver une « suffisamment bonne ».
- Une page sur le site sera à votre disposition pour soumettre vos réponses en échange des pièces du puzzle du jour.
- Page de soumission des réponses en échange des pièces : https://events.planet-casio.com/avent2025
- Réassemblez le puzzle dans un outil d'édition d'images (comme GIMP ou Photoshop) pour remporter des lots et le titre de Maître du Puzzle !
Le dernier problème sera posté le 24 Décembre. Comme d'habitude, les premières personnes qui m'enverront par MP le puzzle résolu avec leurs solutions/scripts remporteront les lots. Je préciserai quand on approchera de la fin
Avant que j'oublie, pour que ça tourne un peu les membres qui ont déjà gagné une Math+ en 2025 ne pourront prétendre qu'aux deux lots de housses/coques. Si vous n'avez jamais joué, c'est le meilleur moment pour vous lancer !
Le titre de
Maître du Puzzle pourra être collecté au moins jusqu'à début Janvier, et ceux qui auront trouvé des solutions meilleures que ce qui était attendu dans les problèmes auront bien sûr la classe éternelle. :3
Les premiers jours
Une fois n'est pas coutume, mon planning cette année est ridicule (récemment j'ai
fait des trucs et changé de job). Du coup j'ai un peu de retard sur le code et j'ai pas tout à fait fini le puzzle. Je mettrai en ligne la page permettant de récupérer les pièces d'ici quelques jours, donc gardez bien vos solutions au chaud. En échange de ce désagrément, je ferai une animation pour montrer la progression du dessin du puzzle
Allez, à vos neurones !
Liste des puzzles
Citer : Posté le 23/12/2025 17:43 | #
Bonjour !
J'ai réussi à résoudre toutes les énigmes jusqu'à présent, sauf celle de Court-circuit. Comme sa cousine Théorème de factorisation, c'est une énigme difficile à résoudre, haha!
Citer : Posté le 23/12/2025 17:56 | #
Bonjour !
L'énigme Théorème de factorisation m'a semblé plus difficile que les autres. Sa cousine Court-Circuit m'a donné du fil à retordre (beaucoup... beaucoup trop... glups).
Je n'ai pas (encore) trouvé pour la dernière énigme Derniers ajouts. Et je ne sais pas trop comment m'y prendre... Comme dirait Prgmprotogen, "c'est une énigme difficile à résoudre, haha!"
Citer : Posté le 23/12/2025 18:05 | #
Salut Prgmprotogen, bienvenue sur Planète Casio !
Pour Court-Circuit, pensez bien que "?" peut se transformer en n'importe quel caractère disponible dans le langage des formules. Quant au découpage pour la formule à droite, allez au plus simple/court.
L'énigme Théorème de factorisation m'a semblé plus difficile que les autres. Sa cousine Court-Circuit m'a donné du fil à retordre (beaucoup... beaucoup trop... glups).
Je suis impressionné par toutes tes tentatives. Même moi j'ai pas joué autant avec le système. xD
La dernière arrive ce soir, et après c'est bonne chance aux plus rapides !
Citer : Posté le 23/12/2025 18:28 | #
Pour le Théorème de factorisation, j'en suis à une vingtaine ou une trentaine de tentatives, je pense.
Pour Court-Circuit, j'ai trouvé 71 formules fonctionnelles mais trop longues (entre 17 et 44 caractères) avant de trouver la bonne. Donc le nombre de tentatives dépasse largement la centaine... J'y ai passé un nombre d'heures (de jours...) qu'il vaut mieux ne pas révéler. Restons décents !
Merci Lephe' pour ton indication.
Courage, Prgmprotogen ! Tu vas y arriver !!
Citer : Posté le 23/12/2025 18:35 | #
Merci à tous pour vos encouragements ! Je vais faire de mon mieux pour gagner cette bataille!
Citer : Posté le 23/12/2025 19:11 | #
Qui d'autre galère ? ou ne galère pas ?
Qui est encore dans la course ? Qui est prêt pour l'ultime énigme de ce soir ?
Citer : Posté le 23/12/2025 20:45 | #
Je crois que je commence à comprendre comment résoudre Short Circuit... Si je suis sur la bonne voie, je vais me lamenter en constatant à quel point la solution était simple en réalité !
Citer : Posté le 23/12/2025 20:48 | #
Hi hi hiii
Citer : Posté le 23/12/2025 21:16 | #
Castor affairé
Le problème du Castor affairé consiste à chercher un programme d'une taille limitée qui affiche le maximum de caractères (ou calcule pendant le plus longtemps possible) puis s'arrête. C'est un problème étonnamment dur quand on a accès à des algorithmes classiques (machines de Turing, imaginez un programme dans un langage normal genre Python).
On peut étudier aussi ce problème avec les formules, mais la solution est trop évidente si on n'impose pas une petite restriction. Pour ce problème, on s'intéresse donc à des formules qui ne contiennent pas le même caractère deux fois d'affilée et affichent une série de "a".
Par exemple, "a5a8a" est de longueur 5 et affiche 14 "a", donc le maximum avec une formule de longueur 5 est au moins 14 (en vrai c'est plus). La formule "3aa" est interdite, mais "a3a" est autorisée. La règle de deux caractères d'affilée ne s'applique qu'à la chaîne de caractères représentant la formule initiale avec son entrée (donc ce que vous saisissez dans le champ de réponse), sans tenir compte de ce qui peut se passer durant l'exécution.
Il y a deux jeux de pièces restants, et du coup :
Problème : Trouver les formules de longueur 76 et 77 qui affichent le plus possible de "a" parmi les formules ne contenant pas le même caractère deux fois d'affilée.
Ces longueurs ne sont bien sûr pas choisies au hasard. 77 est une longueur particulière à partir de laquelle la méthode pour générer le maximum de "a" change.
Pour des raisons évidentes de temps de calcul, je ne peux pas exécuter vos solutions pour les valider. J'ai donc codé en dur la solution pour chaque formule. J'aurais bien aimé vous donner la longueur de leurs sorties pour vous aider à valider, mais ça en révélerait le contenu. Si vous pensez avoir la solution mais que ça ne marche pas, envoyez-moi un MP ou un mail à l'adresse de contact du site.
Soumettre une solution et obtenir les pièces : https://events.planet-casio.com/avent2025
Avec ça vous avez officiellement tout entre les mains pour soumettre vos réponses ! Bonne chance et merci d'avoir joué !
Citer : Posté le 23/12/2025 22:01 | #
Zut, le seul obstacle qui me retient est le court-circuit... C'est frustrant de constater que seule la première moitié du résultat est correcte
Citer : Posté le 23/12/2025 22:05 | #
Prgmprotogen, tu as déjà trouvé pour la dernière ?
Citer : Posté le 23/12/2025 22:07 | #
Oui ! Cela demande un peu de réflexion, mais c'est finalement assez facile une fois qu'on a compris le principe.
Citer : Posté le 23/12/2025 22:12 | #
Euh... d'accord. Quelle efficacité !
Alors, bon courage pour le Court-Circuit. Tu y es presque !
Citer : Posté le 23/12/2025 23:14 | #
Merci ! J'apprécie beaucoup.
Il semble que lorsqu'on parcourt silencieusement la chaîne d'entrée (c'est-à-dire sans rien afficher), le fait de rencontrer un nombre puisse perturber le processus... Ce nombre est peut-être multiplié par le nombre de répétitions ? Par exemple, si la répétition est définie sur 6 fois avec « 6 ? », mais qu'un 2 est détecté, le total devient 12 ? Le fonctionnement des chaînes d'entrée est complexe. Je devrais peut-être examiner le code Python
Citer : Posté le 23/12/2025 23:18 | #
Oui lorsqu'on est "silencieux", les répétitions s'appliquent quand même. La raison est liée à... ah ben c'est lié à Court-Circuit.
Citer : Posté le 23/12/2025 23:44 | #
[...]
"plutôt facile", il parait... mais, plutôt facile pour qui ? xD
Citer : Posté le 24/12/2025 09:06 | #
Oui lorsqu'on est "silencieux", les répétitions s'appliquent quand même. La raison est liée à... ah ben c'est lié à Court-Circuit.
Merci pour l'indice ! Cependant, mon cerveau a encore du mal à comprendre, haha :')
Si j'ai bien compris, il s'agit de parcourir une chaîne de caractères composée de lettres et de chiffres, et de sauter un certain nombre de lettres dans cette chaîne en fonction des chiffres. (Ou peut-être servent-ils à répéter les lettres ?) D'après votre indice, il semble que les chiffres de la chaîne d'entrée permettent de multiplier le nombre de caractères à sauter. Le plus difficile est de déterminer ce nombre et d'essayer de trouver des schémas dans le résultat souhaité pour le reconstituer. J'ai l'impression d'être sur la bonne voie.
(Je me demande si cela ressemble au puzzle du 21 en termes de résultat...)
Citer : Posté le 24/12/2025 10:01 | #
il semble que les chiffres de la chaîne d'entrée permettent de multiplier le nombre de caractères à sauter.
Les chiffres de la chaîne d'entrée permettent exactement pareil que les chiffres dans la formule. Quand un "?" est substitué, c'est comme si le caractère de replacement avait été là depuis le début (à part que le caractère de remplacement peut être différent à chaque passage sur le "?").
Citer : Posté le 24/12/2025 10:13 | #
Ah, je vois ! En termes de mécanismes spécifiques, il semble que « abc;3? » soit équivalent à « (a)(b)(c) ». Et avec « a2c;3? », cela devient fonctionnellement « (a)(2)(c) » ; comme le 2 est isolé et n'a rien sur quoi agir, il reste inactif. (Bien que le comportement semble légèrement différent des exemples que j'ai donnés ; c'est presque comme si le dernier élément extrait d'une répétition n'était pas entouré de parenthèses. « ab2;3?v » est en réalité équivalent à « (a)(b)2v ».)
Citer : Posté le 24/12/2025 10:18 | #
Alors... il n'y pas de parenthèses implicites non, c'est bien là tout le but.
Dans « abc;3? », la formule évalue 3 fois "?". La première fois le "?" est un a, donc ça affiche un "a". La deuxième fois qu'on évalue "?" on avance et ça donne un b, donc on affiche un "b". Pareil pour le "c".
Dans « a2c;3? », la formule évalue 3 fois "?". La deuxième fois, le "?" est un 2, donc on évalue 2 fois ce qui suit. Mais rien ne suit. De tête c'est une erreur ce cas-là puisque ça lit au-delà de la fin de la chaîne (le seul cas d'erreur).
Dans « ab2;3?v », le générateur voit un 3 à la position #0 et commence donc à évaluer 3 fois à la position #1. La première et la deuxième fois, le "?" à la position #1 devient "a" et "b" respectivement, donc tout est facile. À la 3ème évaluation, le "?" à la position #1 est un "2", donc le générateur évalue 2 fois à la position #1+1 = #2. Il affiche donc 2 "v".
Ce qu'il faut bien comprendre c'est qu'il n'y a pas d'analyse syntaxique à l'avance. Tu ne peux pas connaître à l'avance la portée du "3" parce que si le "?" est une lettre ça s'arrête là mais si le "?" est un chiffre ça va aller chercher la suite de la formule. C'est pour ça que "0" active un mode silencieux au lieu de juste ne rien faire : il faut évaluer la formule pour savoir de combien avancer dedans.
Citer : Posté le 24/12/2025 10:28 | #
Ahhh, ça a beaucoup de sens. Je ne sais pas pourquoi je voyais les choses de manière plus compliquée
Dans « a2c;3? », la formule évalue 3 fois "?". La deuxième fois, le "?" est un 2, donc on évalue 2 fois ce qui suit. Mais rien ne suit. De tête c'est une erreur ce cas-là puisque ça lit au-delà de la fin de la chaîne (le seul cas d'erreur).
Ah, c'est pour ça que j'ai cette erreur ! Maintenant que je sais pourquoi elle apparaît, je peux l'éviter plus facilement