Journal Lazy Ghost Hunters

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
17
29
déc.
2022
- Bonsoir à toi. En tant qu'envoyé officiel et représentant de cette ville
du Comté de l'État de New-York, je t'ordonne de cesser toutes activités surnaturelles
et de retourner immédiatement d'où tu viens ou,
si ça t'arrange, dans la plus proche dimension parallèle.
(C'est bien, ça. Ça devrait marcher Ray.)
- Es-tu un Dieu ?
- Non...
- Alors, périt !

Ghost Hunters est un petit jeu matériel édité par Smart Games.
Le but du jeu est d'éclairer 6 fantômes disposés sur une grille 4x4 avec 6 pièces plastiques transparentes sur lesquelles sont dessinées 0, 1 ou 2 torches.
N'ayant pas l'âme de chercher trop longtemps et, il faut bien le dire, afin d'épater mes filles (ce qui devient de plus en plus compliqué), j'ai réalisé un petit programme nommé Lazy Ghost Hunters qui permet de trouver la solution.

Ce qui est assez rigolo dans l'exercice, c'est de réussir à modéliser le jeu. J'étais parti avec une matrice pour indiquer la position des fantômes. Puis finalement, j'ai considéré le grille comme étant un mot de 16 bits, ce qui m'a permis de modéliser très facilement.
Pour indiquer la position d'un fantôme, il suffit d'indiquer la valeur de la case (par exemple, 3ème ligne, 2ème colonne c'est 29 = 512).
Pour indiquer l'emplacement d'une pièce en forme d'équerre, j'additionne les valeurs des cases recouvertes.
Si la pièce est déplacé d'une case vers la gauche, on multiplie la valeur totale par deux.

Il suffit ensuite de tester toutes les possibilités avec de la récursivité. Je vérifie à chaque fois qu'une pièce n'en recouvre pas une autre avec un ET et que les lumières recouvrent bien les fantômes avec un XOR.

Et voilà, le résultat :

Indicate with 0 for no ghost and 1 for ghost:
0010
1100
0010
0101


..o←
oo↰.
↑.o↓
→o.o

En haut, le positionnement des fantômes qui est entré par l'utilisateur.
En bas, le résultat, les "o" pour les fantômes et les flèches qui sont normalement en couleur pour indiquer comment placer les pièces.

Je pensais que mes filles allaient me prendre pour un Dieu, finalement elles me prennent pour un tricheur…

  • # mais un dieu triche forcément

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    …parce-que ayant des aptitudes/facilités et connaissances et compétences que ne peuvent avoir les pauvres ères mortelles.

    “It is seldom that liberty of any kind is lost all at once.” ― David Hume

    • [^] # Re: mais un dieu triche forcément

      Posté par  . Évalué à 2.

      Je me souviens d'avoir lu une nouvelle dans l'une des anthologies "Les meilleurs récits de xxxx" xxx à choisir parmi "Astounding Stories","Weird tales"," Wonder stories",… (là maintenant, je ne me souviens plus vraiment qui en était l'auteur, j'ai en tête Henry Kuttner mais c'est loin d'être certain) qui partait du principe que l'omnipotence menait forcement à la stupidité car si on peut "tout" pourquoi réfléchir. Pour l'omniscience c'est une autre paire de manche, là c'est pas vraiment tricher.

      • [^] # Re: mais un dieu triche forcément

        Posté par  . Évalué à 3. Dernière modification le 29 décembre 2022 à 16:57.

        Après qq recherches, je pense qu'il s'agit de la nouvelle "La 3eme porte" de Henry Kuttner (c'est qd même un drôle de truc la mémoire, j'ai du lire cette nouvelle, il y plus de 20 ans) dans les "Les Meilleurs Récits de Unknown". Du très lourd dans ce volume, Theodore Sturgeon, Fredric Brown, Robert Heinlein, L. Sprague de Camp, Robert Bloch, Fritz Lieber

      • [^] # Re: mais un dieu triche forcément

        Posté par  . Évalué à 2.

        si on peut "tout" pourquoi réfléchir

        Je dirais que ça dépend du moyen par lequel tu peux tout. Après tout, si tu peux tout, tu as nécessairement accès à une quantité infinie d'énergie (condition sine qua non pour pouvoir tout) et tu peux calculer en temps nul (attendu que si tu ne peux pas, la définition est violée). Donc pourquoi t'en priver ?

        Un point intéressant, d'ailleurs, concerne la logique. Si tu peux tout, peux-tu changer l'aire d'un carré sans toucher à son périmètre ? Peux-tu faire de 42 un nombre premier ? Peux-tu créer un objet situé hors du champ de ton pouvoir, donc que tu ne puisses modifier ? En d'autres termes, un être omnipotent est-il contraint par le principe logique de base de non-contradiction ?

        Ça, ce sont les sources. Le mouton que tu veux est dedans.

        • [^] # Re: mais un dieu triche forcément

          Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 29 décembre 2022 à 17:44.

          Toi, t'as pas envie de jeter un sort non contrôlé et d'accuser ensuite Peter d'avoir demandé n'importe quoi (:

          peux-tu changer l'aire d'un carré sans toucher à son périmètre ?

          Tu dois bien pouvoir trouver un moyen de faire un carré de Sierpiński ou quelque joyeuseté topologique

          Peux-tu faire de 42 un nombre premier ?

          Tu as potentiellement accès à toutes les mathématiques (i.e. avec des bases axiomatiques différentes)

          “It is seldom that liberty of any kind is lost all at once.” ― David Hume

        • [^] # Re: mais un dieu triche forcément

          Posté par  (site web personnel) . Évalué à 2.

          https://en.wikipedia.org/wiki/Omnipotence_paradox

          pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

      • [^] # Re: mais un dieu triche forcément

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        Ceci peut expliquer les bizarreries de l'olympe…

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: mais un dieu triche forcément

        Posté par  . Évalué à 1.

        Il y a une remarque du même genre lors d'un jeu entre dieux dans La Trilogie Nikopol d'enki Bilal.

  • # aller plus loin ?

    Posté par  (Mastodon) . Évalué à 4.

    Je pensais que mes filles allaient me prendre pour un Dieu, finalement elles me prennent pour un tricheur…

    C'est ingrat les enfants, hein ! :-)

    Sinon, pour essayer de les impressionnées sans qu'elles ne puissent te traiter de tricheur, tu pourrais peut-être pousser la réflexion et modifier ton programme pour créer de nouveaux casses-têtes par rapport à ce qui est déjà présent dans la boite.

    Avec leur boites, je me demande toujours s'ils exploitent toutes les possibilités ou bien s'ils se contentent d'un nombre qui leur paraît raisonnable.

    Si tu vas dans cette voie là, je ne garanti pas l'admiration de tes filles (parce que les enfants, c'est ingrat) mais cela peut être intéressant.

    Surtout, ne pas tout prendre au sérieux !

    • [^] # Re: aller plus loin ?

      Posté par  (site web personnel) . Évalué à 2.

      parce que les enfants, c'est ingrat

      C'est les repas de Noël ça. On mange trop grat.

    • [^] # Re: aller plus loin ?

      Posté par  . Évalué à 1.

      C'est pas bien de poser des questions…
      Parce que l'on ne peut pas dire que ça serve à grand chose;-)

      Bref,
      on a 6 fantômes sur une grille de 16 emplacements donc, je dirais une combinaison de 6 éléments parmi 16 :
      8008 possibilités de carte avec les fantômes.

      Mais il y a quand même une symétrie de rotation, donc on peut diviser par 4 soit :
      2002 possibilités originales (il n'y a pas de symétrie d'axe car les pièces plastiques ne sont pas réversibles).

      J'ai fait tourner l'algo pour voir le nombre d'agencements qu'il arrive à faire avec les 6 pièces plastiques :
      9216 arrangements
      pour la même raison, on peut diviser par 4 :
      2304 arrangements originaux.

      Ce qui donne plusieurs solutions pour certaines cartes (sachant qu'il y a pas mal de cartes que l'on ne pourra pas résoudre.) C'est un peu louche, dans mes essais, je ne suis jamais tomber sur plusieurs solutions.

      En tout cas, le jeu est largement sous-exploité car il n'y a que 60 cartes.

      • [^] # Re: aller plus loin ?

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        Mais il y a quand même une symétrie de rotation, donc on peut diviser par 4 soit :
        (il n'y a pas de symétrie d'axe car les pièces plastiques ne sont pas réversibles)
        […]
        C'est un peu louche, dans mes essais, je ne suis jamais tomber sur plusieurs solutions.

        là c'est un peu taquin

        “It is seldom that liberty of any kind is lost all at once.” ― David Hume

      • [^] # Re: aller plus loin ?

        Posté par  . Évalué à 1.

        Bon en cherchant un peu, j'ai trouvé une config à 7 solutions. Donc les nombres sont crédibles.

        • [^] # Re: aller plus loin ?

          Posté par  (site web personnel) . Évalué à 4.

          J'aime beaucoup les jeux Smart Games, j'en ai une bonne dizaine chez moi, mais pas celui-là. Cependant, dans tous ceux que j'ai chaque défi a une et une seule solution (du moins c'est ce qu'il y a marqué systématiquement sur la notice, et je les ai cru sur parole). J'imagine donc que leur algo de génération de défis écarte toutes les configurations sans solution ainsi que toutes les configurations qui ont plusieurs solutions. Pour rester dans l'esprit du jeu, il faudrait que tu fasses de même.

          • [^] # Re: aller plus loin ?

            Posté par  . Évalué à 2.

            Bien vu.
            Alors je suis allé au bout de la démarche.
            Résultat :
            il y a 3086 cartes possibles avec au moins 1 solution.
            il y a 904 cartes possibles avec 1 solution (904/4=226 en prenant compte la symétrie de rotation)

            Number of possible cards : 3086
            Number of max solutions : 24
            1 solution : 904
            2 solutions : 1000
            3 solutions : 296
            4 solutions : 378
            5 solutions : 144
            6 solutions : 148
            7 solutions : 56
            8 solutions : 20
            9 solutions : 56
            10 solutions : 8
            11 solutions : 24
            12 solutions : 12
            13 solutions : 0
            14 solutions : 8
            15 solutions : 8
            16 solutions : 4
            17 solutions : 0
            18 solutions : 0
            19 solutions : 0
            20 solutions : 4
            21 solutions : 0
            22 solutions : 0
            23 solutions : 0
            24 solutions : 16
            

            Je n'ai pas vérifié mais je veux bien te croire sur le fait que Smart Games ne propose que des cartes à une solution (60 dans le jeu parmi 226 en prenant en compte la symétrie de rotation).
            Je trouve ça un peu dommage car pour que les cartes aient une difficultés croissante, il propose un bout de solution de plus en plus petit au fur et à mesure de la difficulté. Seules les dernières ne proposent aucune aide.

            Ils auraient pu mettre les cartes à 24 solutions au début puis ainsi de suite jusqu'à des cartes à 1 solution.

            • [^] # Re: aller plus loin ?

              Posté par  (site web personnel) . Évalué à 3.

              Ce serait intéressant aussi de regarder si dans les défis faciles où un bout de solution est proposée, est-ce qu'il s'agit à la base d'un défi à solution unique dont on fournit une partie de la solution, ou bien d'un défi qui aurait eu plusieurs solutions mais dont on impose la position de certaines pièces pour revenir à une solution unique (et plus facile à trouver puisqu'on diminue les possibilités à explorer).

              Si on utilise le "bout de solution" pour revenir à une solution unique, ça te donne la possibilité de générer encore plus de défis !

              S'ils avaient mis des cartes à plusieurs solutions comme défis faciles plutôt que donner le début de solution, à mon avis ça ne ferait plus vraiment le même jeu, ce serait moins bon.

              Tous les smartgames ont des principes un peu différents, mais personnellement quand j'y joue je vois ça comme un arbre de possibilités que je cherche à élaguer pour converger vers la bonne solution (je sais pas si l'image est super claire !). Généralement, les défis les plus faciles ne sont pas très intéressants (trop évidents) mais je me "force" à les faire quand même parce qu'ils permettent de bien voir les mécanismes du jeu et voir quelques principes qu'on pourra réutiliser plus tard, sur les défis plus complexes et plus intéressants. Mais si les premiers défis avaient plusieurs solutions, on perdrait un peu cette notion d'"élaguer les branches qui ne marchent pas pour trouver celle qui marche" : on ne s'y prend pas tout à fait de la même façon pour résoudre une énigme qui n'a qu'une seule solution, que pour trouver une solution parmi plusieurs possibilités. Du coup, on perdrait à mon avis l'aspect "pédagogique" des premiers défis.

              • [^] # Re: aller plus loin ?

                Posté par  . Évalué à 1.

                J'ai vérifié et toutes les cartes proposées n'ont qu'une solution même sans tenir compte de l'aide.

                Pour le côté solution unique pour élaguer l'arbre, ça se tient même si sur certains smart games, l'arbre initial est quand même très touffu et je suis personnellement incapable de garder cela en tête.

      • [^] # Re: aller plus loin ?

        Posté par  (site web personnel) . Évalué à 1.

        On ne peut pas tout diviser par 4, car il y a quelques configurations invariantes par rotation de 180° … En plaçant trois fantômes sur les deux premières lignes, on range les trois autres dans les trois cases opposées :
        1100
        1000
        0001
        0011
        Il faut donc diviser seulement par 2 ces 56 (3 cases parmi 8) configurations à symétrie centrale, ce qui donne 2016 au lieu de 2002.

        Il n'y a pas de configuration de 6 fantômes invariante par rotation de 90°, car les rotations successives donneraient une orbite de 4 cases occupées, et donc un nombre de fantômes multiple de 4…

  • # Épilogue

    Posté par  . Évalué à 4.

    Bon j'ai rajouté plusieurs fonctionnalités.
    J'ai publié sur Pypi pour conquérir le monde.

    Pour jouer dans un venv:
    pipx install lazy-ghost-hunters

    pour voir les possibilités :
    lgh -h

    pour entrer une grille de façon interactive :
    lgh

    pour enlever :
    pipx remove lazy-ghost-hunters

    • [^] # Re: Épilogue

      Posté par  . Évalué à 2.

      pour enlever :
      pipx uninstall lazy-ghost-hunters

      et non pas remove

  • # petit chaperon rouge

    Posté par  . Évalué à 2. Dernière modification le 04 janvier 2023 à 15:22.

    Ma fille a eu celui-ci pour Noël.

    L'idée est venu parce qu'elle jouait à un jeu très ressemblant à celui-là dans GCompris (ancre foireux, CTRL+F "Embouteillage").

    J'ai adoré ce moment où elle m'a dit "tu fais pas!", traduction: "laisse moi faire!" parce qu'elle avait pigé le truc.

    Ça me donne envie de contribuer des exercices gcp en s'inspirant de smart games.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.