Regexcrossword : un subtil mélange de sudoku et de mots croisés, à la sauce Regex

Posté par (page perso) . Édité par ZeroHeure, Benoît Sibaud et Xavier Teyssier. Modéré par patrick_g. Licence CC by-sa
Tags :
40
24
jan.
2014
Jeu

C'est vendredi, alors voici de quoi se détendre, ou garder les neurones bien chauds pendant le weekend. Il s'agit d'un petit jeu en ligne dont le but est de retrouver des caractères, en suivant les expressions régulières (ou expressions rationnelles) posées en ligne et en colonne.
La présentation est la même que celle des mots croisés, mais la recherche de la solution tend vers celle appliquée pour la résolution d'une grille de sudoku.

Un exemple simple, issue de l'aide du jeu

Le jeu se découpe en 8 niveaux de difficulté, rassemblant chacun de 5 à 10 grilles.

Bien que les premiers puzzles s'enchaînent facilement, il faut avouer que le dernier niveau présente un défi beaucoup plus corsé, avec une grille de 5×5 caractères à deviner.

Si vous êtes intéressé ou curieux, je vous invite à suivre le lien en bas de dépêche. Bon weekend !

NdM: il s'agit d'un jeu en ligne gratuit dans le but de s'entraîner avec les expressions rationnelles (en anglais regular expressions ou regex). On peut jouer anonymement, mais pour suivre sa progression il faut se connecter avec un compte facebook. Si vous connaissez des alternatives libres de jeux de regexp, faites en part dans les commentaires.

  • # pour suivre sa progression il faut se connecter avec un compte facebook

    Posté par (page perso) . Évalué à 10.

    Facebook, l'unique moyen de s'authentifier ?

    If you choose open source because you don't have to pay, but depend on it anyway, you're part of the problem.evloper) February 17, 2014

  • # Sic !

    Posté par (page perso) . Évalué à 3.

    Si vous connaissez des alternatives libres, faites en part dans les commentaires.

    OpenID ?

  • # Ah bravo!

    Posté par . Évalué à 3.

    Je vais passer ma journee a jouer au lieu de travailler (un peu).
    Bon, on me dit que puisque c'est vendredi, c'est permis ^_^

    • [^] # Re: Ah bravo!

      Posté par . Évalué à 1. Dernière modification le 24/01/14 à 15:22.

      Trop tentant, merci ! Mon employeur vous "remercie" aussi …

  • # Plus dur

    Posté par . Évalué à 6.

    • [^] # Re: Plus dur

      Posté par . Évalué à 7.

      A oui et j'ai oublié, je me suis exercé au RegEx Golf : http://regex.alf.nu/
      issu d'un xkcd : http://xkcd.com/1313/

      Le principe c'est qu'il faut trouver une regex qui match un ensemble de valeurs tout en excluant un autre ensemble (et trouver la meilleur permet de gagner plus de points)

      • [^] # Re: Plus dur

        Posté par . Évalué à 1.

        C'est très sympas comme jeu ! Merci pour la découverte.

        bépo powered

      • [^] # Re: Plus dur

        Posté par (page perso) . Évalué à 3.

        Ce jeu est génial! Par contre je suis bloqué, j’aimerais bien inverser mon expression régulière (parce que là j’en ai une qui sélectionne tout les mauvais et aucun bon).

        Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: Plus dur

          Posté par (page perso) . Évalué à 1.

          Méthode marteau-pilon : écris un automate complet qui reconnaît l'expression que tu as, et ensuite inverse les états finaux et non finaux, puis recalcule une expresssion du langage accepté par le nouvel automate :)

          • [^] # Re: Plus dur

            Posté par (page perso) . Évalué à 2.

            Ça m’aide pas beaucoup… En tout cas c’est facile au début, mais c’est vraiment difficile ensuite! En tout cas j’arrive à faire des points mais pas à trouver les réponses exactes à partir du 5 pour le moment…

            Écrit en Bépo selon l’orthographe de 1990

          • [^] # Re: Plus dur

            Posté par . Évalué à 2.

            Il y a des algos qui donnent de jolies expressions régulières associées à un automates ?

            Par jolie je veux dire « human friendly ».

            Please do not feed the trolls

            • [^] # Re: Plus dur

              Posté par (page perso) . Évalué à 2.

              Perso, j'ai jamais fait autre chose que des calculs simples à la main avec la méthode où on élimine les sommets : tu normalises l'automate (un seul état initial et final), puis tu étiquettes progressivement les transitions par les expressions rationnelles au lieu de simple lettres : au début juste on étiquette par des classes de caractères, puis après tu élimines les sommets un par un en ajoutant des expressions aux transitions qui restent : en gros pour toute paire de sommets p et q tu dois tenir en compte les transitions qui vont de p au sommet que t'as éliminé, puis ensuite vers q, et tu factorise tout ça en une seule expression exprimant une transition de p vers q. À la fin il te reste juste une transition entre l'état initial et final qui correspond à l'expression régulière. Sur des exemples simples l'expression est en général potable, mais j'imagine que ça risque de devenir horrible si la taille augmente.

              Je me souviens aussi d'un autre algorithme qui utilise des équations et le lemme d'Arden mais je l'ai plus en mémoire, et je sais plus du tout ce que ça donne à la main, faudra que je révise ça un de ces jours.

    • [^] # Re: Plus dur

      Posté par (page perso) . Évalué à 3. Dernière modification le 24/01/14 à 14:19.

      C'est celui du MIT tresory hunt donné en second lien (qui est très sympa à résoudre :).

      • [^] # Re: Plus dur

        Posté par . Évalué à 3.

        Effectivement, j'ai vu le lien qu'après avoir posté. Aucun paragraphe n'en parlait dans la dépêche (ce que je trouve bien dommage soit dit en passant)…

  • # Mozilla Persona

    Posté par . Évalué à 4.

    Si vous connaissez des alternatives libres, faites en part dans les commentaires.

    Mozilla Persona ?

    https://login.persona.org/

    • [^] # Re: Mozilla Persona

      Posté par . Évalué à 2.

      J'ai voulu tester, mais je n'ai pas tout compris.
      Est-ce que personna peut s'utiliser sur n'importe quel site, ou alors il faut que le site en question soit prévu pour fonctionner avec personna. Si c'est le second choix, je pense que personna est un remplacement libre de l’authentification par facebook ou google, mais qui ne trouvera sa place que sur des sites libristes.

      bépo powered

      • [^] # Re: Mozilla Persona

        Posté par . Évalué à 1.

        Est-ce que personna peut s'utiliser sur n'importe quel site, ou alors il faut que le site en question soit prévu pour fonctionner avec personna

        Il est nécessaire d'adapter le code du site pour qu'il fonctionne avec personna.

        https://developer.mozilla.org/fr/docs/Persona/Quick_Setup

        • [^] # Re: Mozilla Persona

          Posté par . Évalué à 2.

          C'est donc bien ce que j'avais compris. C'est dommage par ce que je pense que vu le peu de pub fait pour ce service, il va avoir du mal à se développer. Mais comme beaucoup de projet Mozilla, ça part d'une très bonne intention.

          bépo powered

  • # Améliorations

    Posté par . Évalué à 2.

    Pour les débutants comme moi qui s'y essaient, ce serait cool d'avoir une explication des lignes ou colonnes.
    Au survol, proposé une fois qu'on tente la validation par exemple.

    Merci pour ce chouette jeu en tout cas :-)

  • # Plus dur que le Sudoku !

    Posté par (page perso) . Évalué à 1.

    Le Sudoku est cité en inspiration, mais au moins, quand un Sudoku commence à être rempli, les autres cases se remplissent quasiment toutes seules. Ici, jusqu'à la dernière case tu peux te retrouver bloqué :(

    • [^] # Re: Plus dur que le Sudoku !

      Posté par . Évalué à 2.

      C'est même les premières qui sont les plus simple ici !

      bépo powered

    • [^] # Re: Plus dur que le Sudoku !

      Posté par . Évalué à 1.

      sur pas mal de grilles les lettres de la grille forment un mot ou une phrase. ça peut te guider sur la fin

      • [^] # Re: Plus dur que le Sudoku !

        Posté par . Évalué à 2.

        c'est de la triche ;-)

        • [^] # Re: Plus dur que le Sudoku !

          Posté par . Évalué à 2.

          Non, ça fait partie du jeu. C'est parfaitement volontaire, c'est l'aspect mot-croisé. Il y a d'ailleurs en général des indices autre que les expressions rationnelles sur le texte à trouver.

          C'est pour ça que la description de la dernière série déclare :

          This is not a crossword, this is an exercise in pure regex prowess.

          Contrairement au reste du jeu, là il s'agit vraiment de juste travailler sur les expressions rationnelles.

          LinuxFr, parfois c'est bien de la MERDE : http://linuxfr.org/news/cpp17-exprime-la-virgule-flottante-en-hexadecimal-et-offre-des-cadeaux-aux-lecteurs-de-linuxfr-org#comment-1686201

          • [^] # Re: Plus dur que le Sudoku !

            Posté par . Évalué à 2.

            Non, ça fait partie du jeu. C'est parfaitement volontaire, c'est l'aspect mot-croisé. Il y a d'ailleurs en général des indices autre que les expressions rationnelles sur le texte à trouver.

            C'est même parfois nécessaire, sans ça tu ne peux pas trouver puisqu'il y a plusieurs solutions.

            Après avec l'indice il m'est arrivé de trouver sans réfléchir à toutes les regex, ça casse un peu l'idée de base.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

            • [^] # Re: Plus dur que le Sudoku !

              Posté par (page perso) . Évalué à 2.

              Le "Palindromeda" et le "Cities" sont d'ailleurs particulièrement faciles. C'est vrai que ça casse l'idée et du coup on a moins le sentiment de satisfaction d'avoir trouvé la réponse. Heureusement qu'il y a le "Volapük" :) Par contre j'ai trouvé la dernière grille de 5x5 plus facile que l'avant-dernière contrairement à ce qu'il semble être dit dans le journal…

            • [^] # Re: Plus dur que le Sudoku !

              Posté par . Évalué à 1.

              eh bien je suis super doué : je l'ai (re)fait sans indice et une seule solution à chaque fois :-)

  • # Architecture du site

    Posté par (page perso) . Évalué à 3.

    J’ai essayé de regarder la source mais je ne comprends pas trop comment ça fonctionne… Si j’analyse bien, ça utilise Ajax mais les pages d’explications fonctionnent quand même sans. D’ailleurs, l’URL est modifiée via Javascript, comment fait-on cela? En bref, vous pouvez m’en dire plus sur l’architecture du site web?

    En tout cas il est bien foutu, cependant sur mobile certains trucs sont un peu limites (le gros badge vert qui indique qu’on a réussi est un peu trop haut par exemple).

    Écrit en Bépo selon l’orthographe de 1990

    • [^] # Re: Architecture du site

      Posté par (page perso) . Évalué à 3.

      Pour les URLs qui peuvent être modifiées, c'est une nouveauté de l'API history en HTML5.

      // Grosso modo :
      window.history.pushState(null,'','la nouvelle url');
      • [^] # Re: Architecture du site

        Posté par (page perso) . Évalué à 2. Dernière modification le 27/01/14 à 22:49.

        Du coup je viens de me rendre compte que le titre de la page ne changeait pas quand on cliquait sur un bouton, mais que si on essayait de charger l’URL de la page ça le changeait… Et qu’est censé contenir le premier paramètre? Parce que data (comme appelé dans la spec), c’est pas très précis…

        Écrit en Bépo selon l’orthographe de 1990

        • [^] # Re: Architecture du site

          Posté par (page perso) . Évalué à 2.

          C'est un objet qui est communiqué aux callbacks de l’événement PopState.

          window.history.pushState({lapin:42},'titre a','url a');
          window.history.pushState({poney:28},'titre b','url b');
          
          window.addEventListener('popstate', function(e) {
              console.log(e.state);
          });

          Si tu fais précédent, tu auras {lapin:42} dans la console. Et si tu fais suivant ensuite tu retrouveras {poney:28}.

          C'est pour faciliter les traitements quand l'utilisateur s'amuse avec précédent/suivant.

    • [^] # Re: Architecture du site

      Posté par . Évalué à 2.

      Je suis d'accord que sur mobile ça laisse à désirer. Sur certains tableaux, lorsque je saisis un caractère, la case apparaît en noir je suis obligé de saisir le caractère un deuxième fois…

Suivre le flux des commentaires

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