En quoi consistait le jeu JetBrains Quest ?

Publié le par Delphine Massenhove

Les développeurs sont nombreux chez JetBrains et beaucoup d’entre eux aiment les jeux et les défis. C’est pourquoi nous avons eu l’idée de créer une chasse au trésor dans laquelle la solution de chaque énigme serait l’indice pour la suivante. Et c’est ainsi que nous avons créé le jeu JetBrains Quest.

JetBrains Quest consistait en une série de puzzles que nous avons cachés comme des œufs de Pâques dans différentes ressources JetBrains, comme nos pages et produits. Le jeu était composé de 3 quêtes, chacune comprenant 4 à 6 puzzles à résoudre. La première quête était relativement simple, la difficulté augmentant au fur et à mesure de la progression dans le jeu. JetBrains Quest a été lancée le 9 mars via une publication sur nos comptes (
Twitter, Facebook et Linkedin) et s’est terminée le 15 mars à midi (CET).

Les réactions de la communauté ont été nombreuses et positives !

Group_noblocks-2-2-2

Certains ont eu des difficultés.Group_3_noblock-2-2-2

Beaucoup de participants en demandaient plus.Group_2_block-2

D’après les commentaires que nous avons reçus, il semble que le puzzle le plus difficile à résoudre ait été l’exercice de Fibonacci. Ce puzzle était caché à l’intérieur d’un Conseil du jour dans une version spécifique d’IntelliJ IDEA Community Edition.
dernier indice de la journée

Vous avez découvert notre JetBrains Quest ! Si vous ne savez pas de quoi il s’agit, vous devriez commencer par le début.
C’est tout. Le dernier puzzle. Vous n’êtes qu’à un pas de la réussite !
Maintenant, vous n’avez plus qu’à trouver la clé pour déverrouiller la page de la quête.
La clé est formée des 4 premiers et derniers chiffres de la position 50 * 10^6 de la séquence de Fibonacci (F(50 millions)).
Comme vous le savez certainement, tout ce qui brille n’est pas or, et pour trouver la réponse à cette énigme vous ne devriez pas opter trop vite pour la réponse la plus évidente. Faites le bon choix.
Vous avez jusqu’au 15 mars à midi (CET).

C’était le dernier puzzle de JetBrains Quest. Si vous essayez de le résoudre en ayant une approche linéaire, il faudra des heures, voire des jours, pour trouver la réponse. Il y avait deux approches principales pour résoudre ce puzzle. La plus simple était d’utiliser Wolfram|Alpha pour obtenir les quatre premiers et les quatre derniers chiffres.

La deuxième méthode est plus compliquée mais apporte en bonus un plus grand sentiment d’accomplissement ! Il existe des algorithmes qui permettent de calculer la séquence de Fibonacci plus rapidement. Nous attendions de vous que vous appliquiez l’une de ces solutions. Voici un exemple :

import math
def last_fib_digits(fib_number, last_digits):
   prev, cur = 0, 1
   q = 10 ** last_digits
   while fib_number > 0:
       prev, cur = cur, prev + cur
       fib_number -= 1
       cur %= q
   return prev
def first_fib_digits(fib_number):
   phi = (math.pow(5.0, 0.5) + 1) / 2
   logF = fib_number * math.log10(phi) - 0.5 * math.log10(5.0)
   return math.pow(10.0, logF - int(logF))
print(last_fib_digits(50000000, 4))
print(first_fib_digits(50000000))

4 premiers chiffres : 4602
4 derniers chiffres : 3125

Si vous n’avez pas réussi à terminer le jeu, vous pouvez découvrir tous les puzzles et leurs solutions ici.

Nous tenons à remercier tous ceux qui ont rejoint l’aventure et participé à JetBrains Quest. Laissez un commentaire pour nous dire laquelle des énigmes vous avez préférée.

– L’Équipe JetBrains Ques

Auteur de l’article original en anglais : Oscar Rodriguez