Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » Le Puzzle de l'Avent 2023
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Le Puzzle de l'Avent 2023

Posté le 01/12/2023 23:05

Bienvenue, cette année encore, dans le Puzzle de l'Avent de Planète Casio.

Le Puzzle est presque une tradition maintenant, je n'en fais pas toutes les années (2018, 2019, 2021) mais c'est un des événements que j'apprécie le plus. J'espère que c'est le cas pour vous aussi parce qu'il y a de quoi bien s'amuser !

Aux dernières éditions, on a exploré quelques problèmes d'informatique théorique — avec des graphes, des ensembles, de l'optimisation... cette année on va faire un peu différent : on va prendre un approche un peu plus pratique avec des problèmes que vous pouvez résoudre en programmant. Parfois vous pourrez calculer la solution de tête, d'autres fois vous pourrez écrire un petit programme Python qui fera le calcul pour vous. On n'aura pas de problème très difficile cette année donc vous devriez vous en sortir même avec des programmes naïfs ou peu optimisés. Seul le tout dernier problème sera un peu dur, pour éviter que ce soit la course au premier connecté le 25 pour finir le puzzle. :3

Le but du jeu est de reconstituer un Puzzle dont les pièces seront données chaque jour. Le puzzle en lui-même est une image en pixel art de 198×112 pixels, juste ce qu'il faut pour tenir à l'écran d'une Graph 90+E. Comme dans la formule précédente, les pièces seront données chaque jour «brouillées» et pourront être débrouillées en calculant (ou faisant calculer à un programme) la solution d'un petit problème mathématico-informatique.

Conformément à la tradition, il y a un prix à gagner pour la première personne à reconstituer le puzzle : une calculatrice Graph 90+E. Pour ceux d'entre vous qui n'ont pas le plaisir d'en posséder une, je ne peux que la recommander ; pour preuve depuis que j'ai commencé à jouer avec je suis pas revenu aux mono. :P

Ce lot provient de notre partenariat avec CASIO Éducation.




Plus d'informations sur la Graph 90+E dans sa fiche « Tout sur ta CASIO ! ».

L'autre lot bien sûr c'est que toutes les personnes qui finissent le puzzle se voient attribuer le titre de Maître du Puzzle.

Comme j'ai encore quelques détails à ajuster, le premier problème sera donné demain avec le premier ensemble de pièces. Préchauffez vos éditeurs d'images et de code Python !

---
Notes du futur :

Le puzzle a été résolu par :



Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Suivante
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 23/12/2023 22:24 | #


Dimartino a écrit :
Tu as un script dans un des premiers posts ou tu rentre tes résultats et le script débrouille les pièces.
Petite question : on a combien de temps après le 25 pour résoudre le puzzle ?

Je confirme ce que SlyVTT a avancé. Vous avez le temps qu'il vous faudra. L'ultime puzzle le 25 sera certainement posté un peu plus tard dans la journée. Je vise que ce soit un problème un peu long, mais pas fondamentalement plus difficile que les précédents : le but est que ce ne soit pas la course à qui esquiverait les célébrations pour se jeter le premier sur l'énoncé.

L'image sera affichée dans l'article de Noël sans doute peu après que le gagnant ait été choisi, mais vous aurez le temps de résoudre au moins jusqu'au 1er Janvier (en donnant la liste des solutions du coup) pour faire valoir votre titre bien mérité.

Tuper4 a écrit :
A bon? Dans quel post ? et il reste combien de temps, je vais essayer de commencer

C'est serré mais il n'est pas fondamentalement trop tard haha, si tu coinces n'hésite pas à demander un indice !

Slyvtt a écrit :
Le puzzle est quand même pas facile à reconstituer, il y a pas mal de briques qui sont vraiment difficiles à positionner, entre le ciel, la neige et les sapins, c'est chaud patate

Oui j'ai réalisé ça après avoir fini l'image parce que c'est très chargé x) Je n'ai pas du tout essayé ce processus à la main. Si ça ajoute du challenge c'est bien !

L'image est en effet au top de mes capacités en pixel art, j'en suis très fier. :3
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 23/12/2023 22:33 | #


ok, je voulais demander une question: comment on fait pour telecharger la bibliotheque PIL. Python ne le reconnait pas . En plus, je savais qu'il était trop tard pour moi
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 23/12/2023 22:41 | #


Tu peux regarder les instructions sur Windows ici : https://pillow.readthedocs.io/en/stable/installation.html

(Contexte : PIL est une vieille lib, Pillow est une version plus moderne qui s'utilise de la même façon et la remplace, donc quand il te dit "Pillow est incompatible avec PIL" c'est pas un problème.)
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 23/12/2023 22:43 | #


Donc he dois juste aller sur le terminal de VS code et je tape :
pip install Pillow
?

( oui, j'utilise VS Code )
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 23/12/2023 22:47 | #


Si tu as pip ouais c'est easy.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tuper4 Hors ligne Membre Points: 889 Défis: 19 Message

Citer : Posté le 23/12/2023 22:48 | #


Ok, j'esserai demain: la je vais dormir
Salut
When the doorbell rings at three in the morning, it’s never good news. -Anthony Horowitz
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 23/12/2023 23:38 | #


Réinitialisation coriace

L'un des fours est tombé en panne. L'erreur semble assez sévère, et la plupart des fonctions ne marchent pas correctement. Le four est hautement technologisé avec plein de fonctions un peu obscures cachées derrière un système informatique. Essentiellement, il y a une combinaison de boutons physiques et de saisies sur un écran tactile ; les boutons physiques marchent très bien, l'écran tactile pas tant que ça.

De ce qui nous intéresse, le four possède 4 écrans possibles : éteint, écran principal, menu de paramètres, et menu de diagnostique. Initialement le four est vide et on vient de l'allumer ; on se situe donc sur l'écran principal avec la saisie tactile cassée. Le but est d'atteindre le menu de diagnostique avec la saisie tactile fonctionnelle pour pouvoir utiliser les fonctions avancées de la machine et comprendre la source de l'erreur.

Vos actions possibles sont les suivantes (toutes sont des actions physiques) :

  • Action #1 : démarrer ou sélectionner le menu principal.
  • Action #2 : sélectionner le menu de paramètres (utilisable dans le menu principal).
  • Action #3 : sélectionner le menu de diagnostique (utilisable dans le menu principal).
  • Action #4 : mettre une plaque d'acier dans le four.
  • Action #5 : chauffer la plaque d'acier mise dans le four (si le four est allumé).
  • Action #6 : sortir la plaque chauffée.
  • Action #7 : recalibrer (réparer) la saisie tactile (utilisable dans le menu de paramètres sous les conditions décrites ci-dessous).
  • Action #8 : éteindre le four.

Vous avez observé les comportements suivants :

  • Au démarrage, le four bloque complètement la chauffe s'il est vide et demande l'intervention d'un technicien. Mais s'il y a déjà une plaque froide dedans il démarre normalement et autorise la chauffe pour permettre de terminer le job en cours. On ne peut pas démarrer le four s'il y a une plaque chaude dedans, par sécurité.
  • D'après le manuel, après avoir recalibré la saisie tactile il faut redémarrer le four avant de pouvoir l'utiliser dans les menus.
  • La recalibration de l'écran tactile se fait via une action tactile (foutus designers !) mais quand le four est chaud il est possible d'appuyer bien fort et de lancer l'action.
  • Le bouton de chauffe ne marche pas dans le menu principal mais il marche depuis le menu de paramètres (si le four n'est pas complètement bloqué au démarrage).

Déterminer la plus courte séquence d'actions qui permette d'atteindre le menu de diagnostique avec la saisie tactile recalibrée.

Pièces du puzzle

Deux jeux (avec la même solution) parce que je vais pas poster un problème le 24 au soir. xD



Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 24/12/2023 15:00 | #


Quelques questions pour bien comprendre ce problème :
- quand on fait une action dans le menu paramètre (par exemple lancer la chauffe), une fois l'action finie, reste t on dans le menu paramètre ou sommes nous de retour au menu principal ?
- A partir de quand un four est il chaud ? Est-ce dès le lancement action chauffe ? Ainsi peut on avoir en consécutif les actions "Chauffer" et l'astuce pour accéder à la calibration "de force" (si on est dans le bon menu bien sûr).
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Dimartino Hors ligne Maître du Puzzle Points: 325 Défis: 2 Message

Citer : Posté le 24/12/2023 15:03 | #


Question par rapport au problème "Travail manuel" : c'est quoi la distance euclidienne ?, j'ai regardé sur internet mais je n'ai pas compris
Mon projet du moment : Memen'Casio
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 24/12/2023 15:11 | #


C’est la vraie distance entre 2 points calculée avec le théorème de Pythagore.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 24/12/2023 15:30 | #


Réponse aux questions posées ici plus quelques-unes d'Afyu par MP.

Slyvtt a écrit :
- quand on fait une action dans le menu paramètre (par exemple lancer la chauffe), une fois l'action finie, reste t on dans le menu paramètre ou sommes nous de retour au menu principal ?

On reste dans le menu d'origine. Pour revenir au menu principal tu peux éteindre et rallumer le four éventuellement.

- A partir de quand un four est il chaud ? Est-ce dès le lancement action chauffe ? Ainsi peut on avoir en consécutif les actions "Chauffer" et l'astuce pour accéder à la calibration "de force" (si on est dans le bon menu bien sûr).

Dès que l'action #5 est finie le four est chaud et la plaque dedans est chaude aussi. On considère que tout est froid de nouveau une fois que as retiré la plaque (action #6). En pratique oui tu vas calibrer juste après ou peu après l'action #5.

Dimartino a écrit :
Question par rapport au problème "Travail manuel" : c'est quoi la distance euclidienne ?, j'ai regardé sur internet mais je n'ai pas compris

Oups, j'aurais peut-être dû dire la "distance" tout court (dans ma tête y'a tant de distances différentes je me sens obligé de préciser !). Je confirme ce que Sly a répondu, la distance euclidienne entre (x1, y1) et (x2, y2) est √((x2-x1)² + (y2-y1)²). Il y a un exemple dans le sujet.

Afyu a écrit :
Lorsque tu dis que le four "autorise" la chauffe de la plaque lorsqu'il démarre en contenant une plaque vide, je le comprends comme : on peut lancer la chauffe de la plaque mais ça ne se fait pas automatiquement au démarrage. Ai-je bien compris ?

Pas tout à fait. Si tu démarres le four à vide alors le mode "panne, faites venir un technicien" s'engage et tu ne peux pas chauffer du tout. Si tu veux chauffer, tu es alors obligé d'éteindre le four et de le rallumer avec une plaque dedans. Auquel cas "tout est normal" et tu peux lancer la chauffe avec l'action #5 quand tu veux (pas forcément juste après avoir démarré).

J'ai supposé qu'il n'était pas nécessaire de retirer la plaque chauffée pour gérer le reste, mais tu ne donnes aucune information sur un éventuel démarrage avec une plaque chauffée à l'intérieur du four. Doit-on retirer la plaque chauffée avec un éventuel redémarrage ?

Très bonne remarque. J'imaginais bien que j'aurais laissé passer quelque chose (faut voir l'heure haha xD). Tu ne peux pas démarrer le four tant qu'il reste de l'acier chaud dedans, c'est dangereux.

Tu parles de boutons physiques et de dalle tactile. La dalle tactile est-elle nécessaire pour ouvrir le menu Paramètres ou celui de Diagnostique ? Ou est-ce que l'accès à ces menus est possible avec les boutons physiques ?

Ce sont des actions physiques. Aucune action dans tout l'exercice ne nécessite la saisie tactile, il faut juste que la saisie tactile soit fonctionnelle lorsque tu arrives dans le menu de diagnostique à la fin de la séquence.

Si l'accès au menu de Paramètres nécessite l'utilisation de la saisie tactile mais que cette saisie est en panne et ne fonctionne qu'une fois le four chaud mais que le four ne chauffe pas automatiquement la plaque au démarrage et qu'il faut aller dans le menu Paramètres pour lancer la chauffe, alors je ne vois pas d'issue. Ou alors j'ai raté quelque chose...

Tout à fait, les déplacement de menus sont des actions physiques. Je l'avais indiqué à un moment mais après quelques éditions je réalise que c'est de nouveau ambigu. J'ai modifié pour éclaircir.

Merci pour vos retours rapides !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 24/12/2023 19:08 | #


Merci Lephé pour les détails supplémentaires, ça a bien aidé

Bon Réveillon à Toutes et Tous.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 25/12/2023 13:12 | #


J'ai des questions supplemantaire pour cette histoire de four.

- Est-ce que le four doit être eteind pour que l'on puisse retirer/mettre une plaque ?

- au démarage arrive t'on sur le menu principal ?

-peut-on eteindre le four peu importe le menu ?
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 25/12/2023 13:23 | #


Non tu peux ajouter retirer des plaques four éteint, mais aussi four allumé.
Et oui tu arrives dans le menu principal.
Tu peux éteindre n’importe quand.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 25/12/2023 15:22 | #


Merci Sly, je confirme toutes les réponses.

* en fait non tu ne peux mettre/enlever les plaques que quand le four est éteint
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 25/12/2023 15:46 | #


ya pas des sequence equivalente du coup ?si je peux mettre une plaque puis eteindre ou eteindre puis metre une plaque ?
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 25/12/2023 15:48 | #


Hmm... c'est vrai, zut. Tu ne peux mettre ou enlever une plaque que quand le four est éteint.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 25/12/2023 15:51 | #


Effectivement et maintenant que tu le dis j’ai eu ce souci avec la solution juste avant de la trouver.

Désolé de t’avoir induit en erreur si c’est le cas.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Hackcell Hors ligne Maître du Puzzle Points: 1531 Défis: 11 Message

Citer : Posté le 25/12/2023 16:01 | #


Sinon, fait marrant, j'ai tenté le bruteforce en parralel, et j'ai trouvé que le nombre 631085 donnait des piece décodé avec etonnament peu d'entropie
Slyvtt Hors ligne Maître du Puzzle Points: 2389 Défis: 17 Message

Citer : Posté le 25/12/2023 16:08 | #


Ton brute force est vraiment brute car il peut pas y avoir de « 0 » dans la solution.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 25/12/2023 17:45 | #


Et voici le dernier problème de ce puzzle ! J'espère que vous aurez pris autant de plaisir à le résoudre que moi à le construire.

Comment soumettre sa participation

En vous connectant à votre compte, envoyez-moi un message privé dans lequel vous indiquerez bien :

  • Votre puzzle reconstitué (vous pouvez l'héberger sur un service d'images quelconque) ;
  • La liste des solutions de votre decode_pieces.py (même si vous ne les avez pas toutes).

Il n'est pas nécessaire d'avoir absolument tout juste au pixel près sur le puzzle, surtout vu que l'image est chargée et les détails sont pas toujours faciles à distinguer. Pour éviter tout biais dans mon évaluation, les participations seront considérées valides s'il y a 6 pièces ou moins dont des pixels diffèrent de l'original, et les dates d'envoi des messages privés font foi. J'espère que ces conditions satisfont vos attentes d'équité pour la compétition.

Je contacterai plus tard le ou la gagnant·e pour planifier l'envoi du lot et en particulier demander vos coordonnées postales.

Travail manuel #3

Ce problème est la suite et fin du problème travail manuel du 14/15 Décembre. Dans Travail Manuel #1 et #2, on a cherché un circuit pour déplacer manuellement des plaques de métal entre des fours et coffres pré-positionnés de façon à minimiser le temps perdu durant lequel les fours attendaient qu'on vienne chercher les plaques.

Bien sûr, le positionnement proposé des fours et coffres n'était pas parfait : il suffisait de les rapprocher pour augmenter l'efficacité. Dans ce problème, on cherche à déterminer quel est le positionnement idéal. L'image et le code ci-dessous indiquent l'emprise au sol de chaque four ou coffre.


SHAPE_FURNACE = \
  ["  ###",
   "#####",
   " ##o#",
   "  ..."]
SHAPE_CHEST_1 = \
  [" . ",
   ".o.",
   "###"]
SHAPE_CHEST_2 = \
  ["###",
   ".o.",
   " . "]

Il n'y a qu'une seule disposition possible pour les fours (SHAPE_FURNACE) mais il y a deux options pour les coffres (SHAPE_CHEST_1 et SHAPE_CHEST_2) selon si on met le tapis roulant au-dessus ou en-dessous. Dans chaque forme, les "#" représentent des cases occupées, le "o" représente le point où on interagit avec le four/coffre (i.e. les coordonnées dans le tableau STATIONS du 14/15 Décembre - c'est un type de case occupée), et les "." représentent des espaces qui doivent rester libres autour du point d'interaction.

On veut placer deux fours et deux coffres dans l'usine de taille 9x8, c'est-à-dire choisir la disposition qui était précédemment donnée sous la forme du tableau STATIONS (pour rappel l'ordre c'est un four, un coffre, un four, un coffre). Un placement est valide si les fours/coffres ne se superposent pas, c'est-à-dire s'il n'y a aucune case qui est utilisée en même temps par deux objets différents (sauf si c'est deux ".").

Une fois les objets placés, on se retrouve dans le formalisme du 14/15 Décembre. En particulier, on imagine qu'on se déplace en ligne droite entre les points d'interactions : on ignorera complètement tous les murs. Votre code pour Travail Manuel #1 et #2 doit être utilisable tel quel.

Votre mission est de déterminer quelles sont la meilleure disposition et la meilleure stratégie de parcours (circuit) de longueur au plus 8 sur 1000 minutes. Vous devez donc trouver toutes les dispositions valides de deux fours et deux coffres, pour chacune d'entre elles faire la résolution du 14/15 Décembre, et retenir la disposition qui maximise le nombre total de plaques collectées.

La solution de ce problème est la séquence formée des chiffres du nombre maximum de plaques collectées, des positions des fours/coffres (x puis y dans l'ordre du tableau STATIONS), et des chiffres du circuit. Par exemple, si les stations optimales sont [(0, 3), (1, 0), (4, 2), (7, 1)], le circuit optimal est [0, 1, 2, 3, 2, 0] et le total est 150, la solution sera 15003104271012320.

Quelques indices pour vous guider :
  • Pensez à ne pas explorer deux fois la même disposition.
  • Il y a des symétries : si vous avez une disposition valide vous pouvez toujours échanger les deux fours et vous aurez toujours une disposition valide. Pareil avec les coffres s'ils sont dans la même orientation.
  • La disposition optimale est unique hors symétrie, i.e. aucune autre disposition valide n'atteint le nombre maximal de plaques obtenues.
  • L'ordre des éléments de STATIONS retenu dans la solution du problème pour décoder les pièces est celui où les paires sont dans l'ordre croissant (comme dans l'exemple ci-dessus).
  • Le circuit optimal est de longueur 8.

Bon courage !

Pièces finales du puzzle



Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 244 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd