Ecrivez un extrait, une fonction, un programme, ... qui est obscurci de manière à ce qu'il apparaisse clairement à la première vue qu'il fait autre chose.
Par exemple: écrivez un morceau de code qui ajoute deux nombres, mais si vous demandez à quelqu'un "que fait-il?", Il vous dira qu'il affiche "Hello, World!".
Règles
- Le code doit être lisible par toute personne connaissant à peu près le langage que vous utilisez (évitez le langage obscurci tel que APL, dans votre propre intérêt).
- Le code doit faire quelque chose d'inattendu que le lecteur ne pouvait pas prédire initialement.
- Lorsque vous demandez à différents lecteurs, ils doivent avoir la même (fausse) opinion de ce que fait le code.
Évaluation
- Veuillez lire les codes des autres concurrents pendant 10 à 20 secondes maximum, histoire d'avoir une bonne idée de ce qui s'y passe.
- Ajoutez un commentaire à la réponse en indiquant ce que vous pensez que le code fait. Si la réponse que vous voulez donner est déjà là, il suffit de +1 le commentaire. (Si vous manquez cette réponse et ajoutez un autre commentaire, ne vous inquiétez pas, cela ne comptera pas comme une autre réponse).
- Les points seront perçus de cette façon: (
maxFalseOpinion
-goodGuess
) /totalOpinion
(voir exemple ci-dessous). - Notez les autres participants avec fairplay et ne commentez pas votre propre code.
- Ajoutez seulement des commentaires utiles. Évitez "je ne sais pas" et "bon!", Ils ne sont pas pris en compte pour l'évaluation, mais c'est le code et non les évaluations qui doivent être obscurcis.
Exemple d'évaluation
L'extrait ajoute deux nombres. Les commentaires disent:
(3) Il affiche "Bonjour le monde!"
(1) Il soustrait 2 nombres.
(2) Il ajoute 2 nombres.
Le nombre total de points est le nombre maximum d'opinions (3) - le nombre de suppositions correctes (2) divisé par le nombre total d'estimations supposées (3 + 1 + 2 = 6). Résultat: (3 - 2) / 6 = 1/6 = 16,67% .
PLUS SUR LES POINTS
Les gens semblent avoir du mal à comprendre les points.
Voici un score parfait:
printf('Hello World');
commentaires:
Il affiche le nombre de fois que vous avez cliqué sur un bouton. (17 commentaires).
TOTAL: 17 commentaires
Note: (17 - 0) / 17 = 1 = 100%
Voici un score boiteux:
printf('Hello World');
commentaires:
Il affiche "Hello World". (13 commentaires).
TOTAL: 13 commentaires
Score: (0 - 13) / 13 = -1 = -100%
Voici un score pas si mauvais:
printf('Hello World');
commentaires:
Il imprime le nom d'utilisateur. (2 commentaires).
Il affiche l'heure actuelle (15 commentaires).
Il retourne ce que vous avez entré sans modification. (3 commentaire).
Il imprime "Hello World" (1 commentaire).
TOTAL: 21 commentaires
Score: (15 - 1) / 21 = 0,6667 = 66,67%
Explication:
15 est la conjecture principale, ce que les gens disent le plus. 1 est le nombre correct de suppositions. 21 est la somme de tous les commentaires.
la source
Réponses:
Javascript
Réponse: ça sort
1
. Les commentaires ci-dessous l'expliquent assez bien - il y a deux variables différentes ici, une - "LETTRE MINUSCULE LATINE A" et un - "LETTRE MINUSCULE CYRILLIQUE A" .Il y avait 1 bonne réponse, 50 personnes ont pensé qu'il en sortait 2, et avec un total de 52 réponses, le score est de (50 - 1) / 52 = 49/52 = 94,23%
la source
2
ou du moins c'est ce que j'espère :)C, note 33,3%
Courir
./prog 'Hello & goodbye, world!'
But
La bonne réponse est
H\n
(celawhile
fait partie du commentaire, grâce à la ligne se terminant par\
, donc il n'y a pas de boucle), donnée par 6 personnes.L'erreur la plus populaire a été
Hello goodbye, world\n
de 25 personnes.(25 - 6) / 57 = 33,3%.
Merci à Olivier Dulac d'avoir pris la peine de calculer.
la source
H\n
.Hello goodbye, world!
(no \ n) (2 espaces après Bonjour)Python
Évaluation
Bonne réponse: des impressions
0 1 4 9 16 25 36 49 64 64
, chaque numéro sur une ligne.Explication: Bien que personne n’ait obtenu la bonne réponse, j’estime qu’il s’agissait là d’une tentative infructueuse, car personne n’a commis l’erreur que je souhaitais. (J'ajouterai une vraie explication plus tard si personne d'autre ne le fait.)
Nombre de bonnes réponses: 0
Nombre de personnes avec la même mauvaise réponse: 7
Nombre total de réponses: 11
Score: 63,64% (arrondi à deux décimales)
Explication
Tout d'abord, une liste
a
est créée et remplie de valeursi * ++i
. Il n'y a pas d'++
opérateur en Python, mais un+
opérateur unaire , qui ne fait rien pour les entiers, et l'appliquer deux fois ne fait toujours rien. Donca
contient les carrés des entiers de0
à9
.J'avais mis cela
++
comme une distraction et espérais que la plupart des électeurs continueraient, pensant avoir trouvé le piège et tomber dans le vrai piège. Ça n'a pas marché. Certains pensaient que++
c'était une erreur de syntaxe et les autres cherchaient toujours le piège.Le piège Le piège était dans la seconde pour la boucle:
J'étais persuadé que la plupart des gens penseraient que cela imprime tous les chiffres
a[i]
, c'est0 1 4 9 16 25 36 49 64 81
-à- dire chaque numéro sur une ligne. C'est ce que vous obtenez avec cette variété, par exemple:x
est affecté aux valeurs dansa
, puisx
est imprimé. Dans la première version,a[i]
les valeurs sont attribuées dansa
, puisa[i]
sont imprimées. La différence est que dans notre cas nous avonsi == 9
, et donc la valeur dea[9]
est modifiée à chaque fois à travers la boucle. Lorsque finalementa[9]
est imprimé, il a la valeur dea[8]
et64
est donc imprimé à nouveau.la source
++
en Python).SyntaxError
sur le secondfor
.81
dix foisSyntaxError
sur le secondfor
. Ceci est incroyable. Cela devrait vraiment gagner. Il m'a fallu 5 minutes pour comprendre ce qui se passait lol!JavaScript , score de -100%
Je n'ai pas inventé ça, Gary Bernhardt l'a fait mais c'est l'un de mes préférés
la source
-100%
? ...Python, -54,8%
Réponse: soulève
SyntaxError: not a chance
Explication:
from __future__ import braces
est l'un des œufs de Pâques en Python. C'est une blague, disant que Python n'utilisera jamais d'accolades pour déterminer la portée à l'avenir.la source
SyntaxError: not a chance
Perl, 26,67%
Résultats:
Ceci affiche "Je suis ambivalent de ne rien dire du tout."
my $num1,$num2 = @_;
il manque des parenthèses. Par conséquent, cela équivaut àmy $num1; $num2 = @_;
.$num1
ne se prépare à rien.Ainsi
$num1
n'est jamais supérieur à zéro. Le problème concernant le monde secret des poissons caché à l’écran est, euh, un fouillis rouge, de sorte que les gens pensent avoir trouvé le "truc".De plus, l'opérateur ternaire est une valeur l en Perl: en
1 ? $a = 1 : $b = 2
réalité(1 ? $a = 1 : $b) = 2
. Quelle moyenne($a = 1) = 2
est évaluée, mise$a
à2
. Contrairement aux apparences, la deuxième chaîne est affectée à$num1
.Au cas où vous vous poseriez la question,
//
l'opérateur est-défini. Si le sous renvoie une valeur indéfinie, la chaîne"Stuff did not happen."
sera imprimée. Mais cela n'arrive pas réellement. C'était juste pour donner aux gens une autre option.Notation:
Total correct: 5
Nombre de suppositions: 30
Note: (13 - 5) / 30 = 26,67%
la source
This is a secret fish world. Carp cannot be repressed!
.Hello, world!
.1 ? $a = 1 : $b = 2
signifie en réalité(1 ? $a = 1 : $b) = 2
. Ce qui signifie($a = 1) = 2
est évalué, à la valeur$a
2. En outre, comme l'a souligné Primo,my $num1, $num2 = @_;
ne fait pas ce que vous attendez car les parenthèses sont manquantes.PHP 52%
(Copié textuellement d' ici )
Explication et score
la source
train
.C ++ 28,9%
Solution
But
Gracieuseté d'Alvin Wong
HelloWorld
(vu que minitech et zeel sont identiques)Hello\nworld
3 pensaient autre chose.la source
cout
si appelé sans paramètres.HelloWorld
.Rubis, 100%
Bonne réponse:
Score: 3 de la même mauvaise réponse, pas d'autres réponses.
la source
Python, -28,13%
Cela imprime
11
parce que leelse
bloc, qui appartient à lawhile
, est exécuté après la sortie de la boucle.Score: (8 - 17) / 32 = -28,13%
la source
else:
11
sur une ligne.Python: Note: -27%
Le programme imprime:
Évaluation: Nombre total d'opinions: 22 12 correctes 3 + 1 + 6 incorrectes [pour la réponse de Bakuiru, je dirais que c'était proche mais toujours incorrect, car os.name est une chaîne (os.uname est une fonction)]
Notation basée sur cette hypothèse et ma compréhension du système de notation: Maximum faux = 6 Correct = 12 Score = (6-12) / 22 = -27%
la source
What is your name: [operating system name]
,What is your quest: Seek and find the holy grail
,What is your favourite color: blue
sur des lignes séparées. Évidemment,[operating system name]
est remplacé par le nom réel.name = "Robin"
,seek = "Seek and find holy grail"
etfavorite_color = "red"
, oh, non.blue
! (AAARRGGGHHH!)What is your name: <function os.name at 0x....>
etc.What is your name: Robin
,What is your quest: Seek and find holy grail
etWhat is your favorite color: blue
sur des lignes séparées.Python
modifier:
note (8-1) / 9 == 77,7%
la sortie correcte est "2 is company" sur python 2, "3 est une foule" sur python 3.
la source
2 is a crowd
(en Python 2, 3 en Python 3).2 is company
(en Python 2), ou3 is a crowd
(en Python 3).JavaScript, -46,7%
Vous pouvez le lancer ici quand vous êtes prêt (commencez par deviner!). Si vous faites défiler suffisamment le panneau JS, vous verrez le code avec une brève explication.
Bonne réponse:
Notation:
la source
Please enter a number:
et vous renvoie la réponse suivie detrue
.That's a big number
après un délai égal au nombre entré en ms.Javascript
Réponse: il alerte
Hello
. Laconcat
méthode ne modifie pas le tableau. Elle retourne un tableau contenant la concaténation du tableau sur lequel il a été appelé et tout autre argument fourni.15 corrects, 26 faux, 41 réponses au total et le score est (26-15) / 41 = 11/41 = 26,83%
la source
Hello, world!
Hello
Python 33,3%
Remarque: Supposons qu'il s'agit de Python 2.x et non de Python 3.
Lorsqu'il est exécuté, ce code produit un
UnboundLocalError: local variable 'True' referenced before assignment
.la source
SyntaxError
False, True = True, False
?True
.UnboundLocalError
.Java
Première tentative de codegolf ...
bonne réponse: des impressions
Some ungodly gibberish and then some more.
et une nouvelle ligneÉvaluation:
Score: 9% (55% en mode pédant)
la source
Some ungodly gibberish and then some more.
Some ungodly gibberish
avec une nouvelle ligneC # 62,5%
Ceci est mon premier code de golf.
La réponse correcte était: "quelque chose entre 55 et 110". En effet, chaque fois que l'instruction "sum + = i" est exécutée, elle utilise la valeur actuelle de i. Ce code peut même être exécuté une fois que la boucle for est terminée , où i a la valeur 11. La valeur la plus élevée possible est 110 (vous pouvez vous assurer de la voir si vous ralentissez le lambda dans vos tests). La plus petite valeur possible est sum (1..10), soit 55.
score: à proprement parler, personne ne l'a bien compris, le score devrait donc être (5-0) / 8 = 62,5%. Si nous sommes prêts à considérer «approximativement bien» comme une réponse correcte, le score est de (5-5) / 8 = 0%
la source
Python, -83,3%
Réponse: Imprime
a < b
si les entrées sont égales,a = b
si la première est plus grande eta > b
si la seconde est plus grande.Explication:
cmp(a, b)
renvoie0
si les deux arguments sont égaux,1
si le premier est plus grand et-1
si le premier est plus petit, c'est pourquoi le mauvais symbole de comparaison est imprimé.la source
a = b
pour l'entrée a == b,a < b
pour l'entrée a> b eta > b
pour l'entrée a <ba = b
si a> b,a < b
si a == b,a > b
si a < b. (C’est probablement ce que @Foon voulait dire.)PHP, 100%
Première publication sur code gulf, j'espère que ce n'est pas si mal.
la sortie correcte est 'hellohelloworld'
le score est (10 - 0) / 10 = 1 = 100%
la source
hello world
.'one' == 0
=>true
. Plutot malin.Perl: 100% (4-0) / 4
Ce programme imprime "3" sans nouvelle ligne. Perl analyse cette instruction comme
donc seul le
(1+2)
est passé comme argument àprint
.la source
9
suivies d'une nouvelle ligneC #
la source
CPython
la sortie correcte est 'Bonjour'
note (14-3) / 19 == 57,9%
la source
Hello\nWorld!
.Hello
. (C (note: 4,45%)
Bonnes suppositions: 7
Maximum de mauvaises suppositions: 6 + 2 = 8
Total des suppositions: 6 + 7 + 3 + 2 + 4 = 22
Solution:
??/
est un trigraphe pour\
, donc la nouvelle ligne est échappée et lascanf
ligne est commentée. Par conséquent, le programme fonctionne pour toujours, l'impressionGuess a number between 1 and 10:
. Les commentaires sont une citation de Mozart (viafortune
).Spoiler, comment compiler et exécuter:
la source
"Guess a number between 1 and 10: Guess a number between 1 and 10: Guess a number between 1 and 10: " (and so on)
sans demander sa contributionJava
La réponse
Il imprime
Padded value:
(avec une nouvelle ligne).La
format
méthode de String eststatic
, avec le format passé en tant que premier paramètre. Par exemple, l'appel ci-dessus équivaut à:Nombre de bonnes réponses: 2 Mauvaises réponses: 9
Note : (9-2) / 11 = 63%
la source
Padded value: - 0012\n
C
Note = (3-16) / 19 == -68,4%
N'oublie pas ta serviette.
la source
C ++
Note = (1 - 6) / 7 = -0,71428571428571 = -71,428571428571%
la source
JavaScript
la source
Z = false
.Python
la sortie correcte est 'hell0 w0rld'
note (8-14) / 22 == -27,3%
la source
hell0 w0rld
R: 100%
Pas si imaginatif que ça, mais cela pourrait dérouter certaines personnes:
Selon vous, quel est le résultat?
Modifier :
La réponse était 20. En raison d'un manque
s
àstringAsFactors
( au lieu destringsAsFactors
), l'argument n'est pas reconnu si la fonction de créer une nouvelle colonne appeléestringAsFactors
. En raison du recyclage des vecteurs, la colonne contient 10 foisTRUE
qui sont converties en1
s dans la somme, donc un total de 20 et non de 10.Cette réponse n'a pas été donnée dans les commentaires. 3 réponses ont été données (toutes en
10
plus ou en moins). D'où un score de 100%, je suppose.la source
10
.Tcl
Inspiré par ugoren
Désolé, j'ai oublié un exemple de chaîne. Ok, lancez en tant que
Edit Right solution: Il ne filtre pas du tout. ( 6x )
Max mauvaise réponse: 4x
Total réponses: 10
Score: -0.2
la source
" "
,"&"
,"\"
.