[Ludique] Mini-jeu - niveau 2 : déchiffrage de code (niveau modéré)
Salut les geeks :mrgreen: tiens c'est encore l'autre barré
Suite au premier épisode, je vous livre un deuxième défi, un peu plus difficile que le premier mais sans obfuscation sur la lisibilité : le code est court et correctement indenté. Par contre, il a malheureusement été codé par un psychanaliste vaudou en retraite, et ... c'est n'importe quoi. :calim2:
Pas besoin d'être un génie des maths pour résoudre cette histoire de (petits) nombres : seule une lecture attentive du code et la connaissance de quelques opérateurs seront nécessaires pour s'en sortir.
Question : "Quel nombre entier doit-on fournir à la fonction ster pour qu'elle renvoie true ?"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| function ster(num) {
var a = 1; b = 2;
a += (0,5);
(b > a) ? a = b : b = a;
b += 1 || 2;
a += ++b;
b = b - (a - b);
return (a === num.ber(b));
}
Number.prototype.ber = function(a) {
this.b = a * 2;
b += a || b;
return (this + b);
} |
Une dernière chose : il est bien entendu très facile de "bruteforcer" la fonction pour trouver la bonne réponse sans même poser ses yeux sur le code, voire de suivre tout simplement les variables dans Firebug, mais l'attrait étant plutôt de tester et partager des connaissances, et comme il n'y a pas vraiment d'enjeu, essayez plutôt d'être le premier à révéler une ou plusieurs des embûches existant dans l'extrait ;)