La porte gotique

Et oui, sans H !

Ce défi est tiré de c0d1ngUP 2022

Lara Croft est bien ennuyée. La journée est avancée, et a déjà été bien remplie. Passe encore les séances de sauts d'une plateforme à l'autre, le siphon inondé qu'il a fallu parcourir dans les deux sens pour débloquer l'une des portes, ou les animaux sauvages qui avaient envahi cette crypte Goth oubliée. Mais à la porte de la salle au trésor, Lara se retrouve face à une serrure telle qu'elle n'en a jamais vue.

La porte présente des alvéoles cubiques. À proximité, elle trouve des cubes de même taille, sur lesquels sont gravés des caractères gotiques :

𐌹 𐍅 𐌺 𐍃 𐍂 𐌰 𐍉 𐌽
𐌴 𐌼 𐍄 𐌻 𐌲 𐍆 𐌳 𐌶
𐌷 𐌾 𐌱 𐍀 𐌸 𐍈 𐍇

Après un peu de recherche sur les inscriptions des murs proches, Lara a confirmation de ce qu'elle soupçonnait déjà, la porte ne s'ouvrira que si un mot de passe bien précis est formé en insérant les cubes avec les bons caractères dans les alvéoles. Après quelques essais, elle constate que le mécanisme semble toujours fonctionner. Sa complexité est étonnante pour l'époque, mais il n'est pas parfait. En effet, les ajustements sont perfectibles. Elle constate qu'elle parvient à déterminer si un cube est bien placé, ou mal placé. Elle remarque également qu'après un certain nombre d'essais erronés ou si elle attend trop longtemps, la serrure semble se réinitialiser avec un nouveau mot de passe.

Malheureusement, Lara n'est ni linguiste, ni statisticienne et surtout ne possède aucun dictionnaire gotique. Ni une, ni deux, elle vous appelle à la rescousse à l'aide de son ordinateur portable, qui va faire le relai entre vos propositions de mots et les résultats qu'elle obtient.

Le bouton permettant d'accéder aux données d'entrées donne deux liens qui vont vous permettre d'interagir avec Lara.

Le premier, accessible avec la méthode GET, indique à Lara de commencer (ou recommencer) une tentative de deviner le mot de passe. En retour, Lara vous envoie le nombre de lettres du mot à trouver. Le second lien, accessible avec la méthode POST, permet de transmettre une proposition de mot de passe à Lara, en envoyant la proposition au format JSON, sous cette forme : {'mot': 'proposition'}. En retour, on reçoit, toujours au format JSON, une structure indiquant a minima l'état (status) de la proposition et un message (msg) ; selon les cas, Lara indique en plus le nombre de lettres bien et mal placées, et le nombre d'essais restants. status peut prendre les valeurs suivantes :

  • 1 : c'est gagné, la porte s'ouvre, relevez le mot de passe dans le message pour valider le défi
  • 2 : partie en cours, relevez les informations (nombre de lettres bien et mal placées, etc.)
  • 3 : il va falloir recommencer... lisez le message
  • 4 : vous utilisez mal le système... lisez le message
  • 5 : fuyez.

Mais attention, Lara a déterminé que vous n'avez droit qu'à 6 essais, et ces 6 essais doivent être effectués en moins de 10 secondes.

Si vous essayez de faire plus de 6 essais, si vous mettez plus de 10 secondes à terminer, si vous proposez un mot qui n'est pas dans le dictionnaire ou qui n'a pas la bonne longueur, le mécanisme est réinitialisé avec un nouveau mot, et il faut redémarrer une partie après avoir patienté 10 secondes.

Le dictionnaire gotique est téléchargeable ici : dico.

Notez que c'est bien l'alphabet gotique original qui est utilisé, et plus exactement sa table dans le standard Unicode. Pour les langages de programmation qui supportent UTF-8 nativement, cela ne devrait pas poser de problème. Sinon, il est peut-être temps de lire sa documentation, ou de changer de langage pour être dans l'air du temps ;-)

Type de retour
une chaîne de caractères
Entrées du problème
Vous devez être connecté.e pour proposer une réponse au défi
Vous devez être connecté.e pour accéder aux forums.