-ENDED- Faites quelque chose qui ressemble à quelque chose d'autre [fermé]


78

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.


5
Les idées possibles pour les participants ( en particulier ceux d' écriture C) se trouvent à underhanded.xcott.com
Shiona

3
J'ai l'impression que les gens seraient réticents à commenter s'ils ne voient pas le truc (parce qu'ils finiraient évidemment par se tromper). Cela modifierait fortement les résultats.
ugoren

2
@Haidro, je dirais que si vous connaissez un peu la langue et avez l'air de comprendre ce que fait le programme, alors commentez. Si vous ne pouvez pas comprendre (par exemple, je ne comprends pas la réponse de slackwear ), ne le faites pas.
ugoren

2
Quand le défi se termine-t-il?
WolframH

4
Je pense que vous devriez exiger un nombre minimum de suppositions pour un gagnant - je dirais 10. Une mauvaise réponse sur 1 n'est pas très impressionnant, pourtant c'est 100%.
Ugoren

Réponses:


79

Javascript

var а;
a = 1;
а++;
alert( a );

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%


57
Sorties 2ou du moins c'est ce que j'espère :)
Alexander

8
C'est l'extrait JS le plus sournois que j'ai jamais vu. Bien joué.
Peter Majeed

1
Pour ceux qui ne l'obtiennent pas (spoilers à venir): lien
BlueRaja - Danny Pflughoeft

3
@soandos: (AGAIN, SPOILERS): la variable utilisée dans les première et troisième lignes est différente de celle des deuxième et quatrième lignes. L' un utilise un (U + 0061) tandis que l'autre utilise un (U + 0430). Voir aussi .
BlueRaja - Danny Pflughoeft Le

5
Un de mes amis pensé que c'était assez drôle et a été inspiré pour écrire ce github.com/johnhaggkvist/WATifyJS - Il avait trop peu de commentaires représentant donc je le fais pour lui ^ _ ^
Henrik Andersson

32

C, note 33,3%

#include <stdio.h>
int main(int ac, char **av) {
        const char *arg = av[1];
        #define valid_ch(ch) (ch!='&' && ch!='\\')  // All valid except & and \
        while (*arg)
        {
                if (valid_ch(*arg)) putchar(*arg);
                arg++;
        }
        puts("");
        return 0;
}

Courir ./prog 'Hello & goodbye, world!'

But

La bonne réponse est H\n(cela whilefait 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\nde 25 personnes.
(25 - 6) / 57 = 33,3%.
Merci à Olivier Dulac d'avoir pris la peine de calculer.


24
Affiche "Bonjour au revoir, mon monde! \ N" ...
Vi.

5
C'est une boucle sans fin.

5
N'imprime que le premier caractère de l'arg et une nouvelle ligne. Donc ça imprime H\n.
marinus

7
Impressions: Hello goodbye, world!(no \ n) (2 espaces après Bonjour)
Olivier Dulac

6
produit un SEGFAULT.
pascalhein

27

Python

a = []
for i in range(10):
    a.append(i * ++i)
for a[i] in a: 
    print(a[i])

Évaluation

  1. Bonne réponse: des impressions 0 1 4 9 16 25 36 49 64 64, chaque numéro sur une ligne.

  2. 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.)

  3. Nombre de bonnes réponses: 0

  4. Nombre de personnes avec la même mauvaise réponse: 7

  5. Nombre total de réponses: 11

  6. Score: 63,64% (arrondi à deux décimales)

Explication

Tout d'abord, une liste aest créée et remplie de valeurs i * ++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. Donc acontient les carrés des entiers de 0à 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:

for a[i] in a: 
    print(a[i])

J'étais persuadé que la plupart des gens penseraient que cela imprime tous les chiffres a[i], c'est 0 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:

for x in a: 
    print(x)

xest affecté aux valeurs dans a, puis xest imprimé. Dans la première version, a[i]les valeurs sont attribuées dans a, puis a[i]sont imprimées. La différence est que dans notre cas nous avons i == 9, et donc la valeur de a[9]est modifiée à chaque fois à travers la boucle. Lorsque finalement a[9]est imprimé, il a la valeur de a[8]et 64est donc imprimé à nouveau.


3
Erreur de syntaxe (non ++en Python).
Ugoren

5
SyntaxErrorsur le second for.
Bakuriu

Imprime 81dix fois
Michael0x2a Le

SyntaxErrorsur le second for. Ceci est incroyable. Cela devrait vraiment gagner. Il m'a fallu 5 minutes pour comprendre ce qui se passait lol!
rubik

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

26

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

alert(Array(16).join("wat?" - 1)+", BATMAN!")

37
Sorties NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, BATMAN! :)
codefreak

1
C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

On dirait que cette vidéo est assez célèbre ...
Bakuriu

3
Est-ce cela -100%? ...
Alvin Wong

Bien sûr. Le batman le donne.
mplungjan

14

Python, -54,8%

Réponse: soulève SyntaxError: not a chance

from __future__ import braces

if (input() > 0) {
print 'You entered a positive number';
}
else {
print 'You didn\'t enter a positive number';
}
  • Bonnes suppositions: 24
  • Mêmes mauvaises suppositions: 7
  • Nombre de suppositions: 31

Explication:

from __future__ import bracesest 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.


6
Teste si le résultat d'une expression fournie par l'utilisateur est signé.
Felix Dombek

1
Je soupçonne qu'il y a pas mal d'erreurs. Les programmeurs Python sont têtus;)
grc

12
C'est une erreur de syntaxe!
Dhara

11
SyntaxError: not a chance
Bakuriu

2
@ BoppreH Veuillez vous limiter à énoncer le résultat sans explication explicite ou à modifier le commentaire énonçant déjà le résultat que vous jugez correct. Les autres types de commentaires ne font que gâcher le plaisir des lecteurs suivants.
Bakuriu

14

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 = @_;. $num1ne se prépare à rien.

Ainsi $num1n'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 = 2réalité (1 ? $a = 1 : $b) = 2. Quelle moyenne ($a = 1) = 2est é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%

no warnings;
no strict;
no feature;
no 5.16;
no Carp;

sub do_mysterious_stuff
{
    my $num1,$num2 = @_;               

    if ($num1 > 0)
    {                                                                                                                  eval q; $num1="This is a secret fish world. Carp cannot be repressed!" or
       $num1 = "Hello, world!";
    }
    else
    {
        $num2 > 0 ? 
            $num1 = "What's up, world?": 
            $num2 = "I am ambivalent about saying anything at all.";
    }

    return $num1;
}

print do_mysterious_stuff(1,1) //"Stuff did not happen.";

2
En sortie, je suis ambivalent de ne rien dire du tout.
marinus

10
Cela imprime This is a secret fish world. Carp cannot be repressed!.
ugoren

13
Ne pas être un gourou Perl cela devrait imprimer Hello, world!.
Alexander

2
Eh bien, c'est tout. Je ne traiterai plus jamais avec Perl.
M. Lama

3
@ContextSwitch et @aidan, l'opérateur ternaire est une valeur l en Perl. 1 ? $a = 1 : $b = 2signifie en réalité (1 ? $a = 1 : $b) = 2. Ce qui signifie ($a = 1) = 2est évalué, à la valeur $a2. En outre, comme l'a souligné Primo, my $num1, $num2 = @_;ne fait pas ce que vous attendez car les parenthèses sont manquantes.

14

PHP 52%

  $arg = 'T';
  $vehicle = ( ( $arg == 'B' ) ? 'bus' :
               ( $arg == 'A' ) ? 'airplane' :
               ( $arg == 'T' ) ? 'train' :
               ( $arg == 'C' ) ? 'car' :
               ( $arg == 'H' ) ? 'horse' :
               'feet' );
  echo $vehicle;

(Copié textuellement d' ici )

Explication et score

La bonne réponse est cheval . Ce n'est pas un tour ou un tour de passe-passe. Bizarrement, c’est ainsi que l’opérateur ternaire est défini en PHP.
3 ont choisi la bonne réponse: cheval ,
16 personnes ont choisi train qui correspond littéralement à toutes les autres langues jamais inventées, à l'exception de PHP. Total de
25 réponses, soit un score de (16 - 3) / 25 = 52%


5
pieds
wim

15
impressions train.
SteeveDroz

3
estampes 'cheval'.
Jonathan


1
Et c’est pourquoi vous devriez presque toujours utiliser des parenthèses pour indiquer l’ordre des opérations, même si vous pensez ne pas en avoir besoin.
Ryan Amos

12

C ++ 28,9%

#include <iostream>

using namespace std;

void print( void ) {
  static int times = 0;

  switch( times ) {
  case 0:
     cout << "Hello";
     break;
  case 1:
     cout << "World";
     break;
  default:
     cout << "Goodbye";
     break;
  }
  times++;
}

int main(int cout, char* argv[]) {

  print();
  cout << '\n';
  print();
}

Solution

Le but de ce code est d'inciter l'utilisateur à penser qu'un caractère de nouvelle ligne sera imprimé entre le texte "Hello" et "World". Notez que le premier paramètre de main est nommé cout. Dans la mesure où cout est un entier dans l'opérateur principal, l'opérateur << effectue en réalité une opération de décalage à gauche avec un paramètre '\ n', plutôt que d'imprimer une nouvelle ligne. La fonction print est principalement là pour détourner l’attention des paramètres d’entrée dans main, mais aussi pour permettre à std :: cout d’être utilisé sans ajouter le préfixe d’espace de nommage.

But

Gracieuseté d'Alvin Wong

  • Total 38 réponses:
  • 12 pensées HelloWorld(vu que minitech et zeel sont identiques)
  • 23 pensaient que Hello\nworld 3 pensaient autre chose.
  • Le score est de (23 - 12) / 38 = 28,9%

23
Imprime "Bonjour" sur une ligne et "Monde" sur la suivante.
Redtuna

2
Imprime "HelloWorld". Met 1024 coutsi appelé sans paramètres.
Alexander

9
Impressions HelloWorld.
Ry-

1
Imprime HelloWorld. Et effectue un décalage légèrement à gauche sur l'entier "cout".
Zeel

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

10

Rubis, 100%

display = lambda { puts "Hello, world!" }
display()

Bonne réponse:

Imprime "main" sans saut de ligne. Explanation: En Ruby, vous ne pouvez pas appeler un lambda en utilisant la syntaxe normale des parenthèses. Display () est interprété à la place de la méthode intégrée utilisée par tous les objets: o.display imprime o.to_s sur la sortie standard. Les méthodes appelées sans objet sont interprétées comme des méthodes de "main", un objet incluant le module Kernel.

Score: 3 de la même mauvaise réponse, pas d'autres réponses.


3
"Bonjour, le monde!"
3Doubloons

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

8

Python, -28,13%

x = 0
while x < 10:
    if (x%2)==0: x += 2
else: x += 1

print x

Cela imprime 11parce que le elsebloc, qui appartient à la while, est exécuté après la sortie de la boucle.

  • Nombre maximum de fausses suppositions: 8
  • Devinettes correctes: 17
  • Total des suppositions: 8 + 17 + 7 = 32

Score: (8 - 17) / 32 = -28,13%


7
Echec à cause de l'indentation manquante danselse:
Alexander

16
Imprime 11sur une ligne.
Bakuriu

6
Ceci imprime 10.
copie

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

8

Python: Note: -27%

name = "Robin"
seek = "Seek and find holy grail"
favorite_color = "blue"

from os import *

print "What is your name: %s" % name
print "What is your quest: %s" % seek
print "What is your favorite color: %s" % favorite_color

Le programme imprime:

What is your name: <value of os.name> 
What is your quest: Seek and find holy grail
What is your favorite color: blue

É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%


11
Estampes What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: bluesur des lignes séparées. Évidemment, [operating system name]est remplacé par le nom réel.
Volatilité

3
Affiche la dernière ligne 3 avec des valeurs name = "Robin", seek = "Seek and find holy grail"et favorite_color = "red", oh, non. blue! (AAARRGGGHHH!)
SteeveDroz

5
Imprime quelque chose comme What is your name: <function os.name at 0x....>etc.
Bakuriu

Sorties What is your name: Robin, What is your quest: Seek and find holy grailet What is your favorite color: bluesur des lignes séparées.
Rory O'Kane le

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

7

Python

import sys

class TwoPlusTwoIsFive(object):
  def __bool__(self):
    if 2 + 2 == 5:
      return True
    else:
      return False

two_plus_two_is_five = TwoPlusTwoIsFive()

if two_plus_two_is_five:
  print('{} is company'.format(sys.version[0]))
else:
  print('{} is a crowd'.format(sys.version[0]))

modifier:

note (8-1) / 9 == 77,7%

la sortie correcte est "2 is company" sur python 2, "3 est une foule" sur python 3.


7
2 is a crowd(en Python 2, 3 en Python 3).
ugoren

2 is company(en Python 2), ou 3 is a crowd(en Python 3).
WolframH

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

5
Damn méthode spéciale renommer! :)
Bakuriu

7

JavaScript, -46,7%

var getResult = function(n, notReadyYet) {
    alert("Calculating results...");
    if (notReadyYet) {
        setTimeout(getResult, 100, n);
    } else {
        sayResult(n);
    }
    return arguments.callee;
}

var sayResult = function(n) {
    if (n >= 10) {
        alert("That's a big number!");
    }
    if (n < 10) {
        alert("That's a small number.");
    }
    return n;
}

(function() {
    var input = parseInt(prompt("Please enter a number:"));
    var result = getResult(input, true);
    return result;
})();

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:

Après avoir demandé à l'utilisateur de saisir un numéro, il entrera dans une boucle infinie et affichera les alertes "Calcul des résultats ..." jusqu'à ce que la taille maximale de la pile d'appels soit dépassée (bien que l'exemple jsfiddle s'arrête environ 20 fois). Toutefois, si un point-virgule est placé après l'accolade fermante de la fonction sayResult, il fonctionnera comme dans mgibsonbr, décrit dans les commentaires.

Notation:

  • Bonnes réponses: 9
  • Fausses opinions les plus populaires: 2
  • Total de réponses: 15

Il demande un numéro avec la question Please enter a number:et vous renvoie la réponse suivie de true.
SteeveDroz

8
il se verrouille dans une boucle infinie en faisant apparaître des "résultats de calcul" à l'infini
SeanC

Il demande un numéro, alerte deux fois "Calcul des résultats", puis "C'est un _ nombre"
mgibsonbr

1
Il émet That's a big numberaprès un délai égal au nombre entré en ms.
Gieron

En fonction du navigateur et / ou de la configuration du DOM (JS en est un nouveau), il affiche le nom de la fonction appelée au chargement de la page.
Kevin

6

Javascript

var a = [];
a.push( "Hello" );
a.concat( [ ", ", "world", "!" ] );
alert( a.join("") )

Réponse: il alerteHello . La concatmé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%


25
AlertesHello, world!
SteeveDroz

14
Il alerteHello
Volatilité

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

5

Python 33,3%

def Test():
    False = True
    True = False
    if False:
        return False
    elif True:
        return True
    else:
        return None

a = Test()
print a

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.


1
Lève unSyntaxError
Volatilité

Cela ne devrait pas être False, True = True, False?

C'est ce que c'est. (de toute façon, je pense que cela ne fait pas de différence dans ce cas)
TerryA

4
Cela imprime True.
WolframH

1
Soulève un UnboundLocalError.
Bakuriu

5

Java

public class Puzzle {

    public static void main(String[] args) {
        String out = "Some ungodly gibberish";
        //char x = \u000a; out = out + " and then some more. ";
        System.out.println(out);
    }
}

Première tentative de codegolf ...

bonne réponse: des impressions Some ungodly gibberish and then some more.et une nouvelle ligne

Évaluation:

  • Nombre maximum de suppositions 6
  • Nombre total de suppositions 11
  • nombre de réponses correctes 5 (0 si vous êtes en mode pedanitc)

Score: 9% (55% en mode pédant)


5
PrintsSome ungodly gibberish and then some more.
cardboard_box

6
Imprime Some ungodly gibberishavec une nouvelle ligne
MrZander

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

5

C # 62,5%

int sum=0;
List<Task> threads = new List<Task>();
for (int i=1; i<=10; i++) {
  Task adder = new Task( ()=> sum += i );
  threads.Add( adder );
  adder.Start();
}
foreach (var t in threads ) { 
  t.Wait();
}
Console.WriteLine("Sum of all numbers in 1..10 is: "+sum);

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.

  • Bonnes réponses: 0
  • Seulement approximativement de bonnes réponses: 5
  • Nombre de fois que la réponse la plus populaire a été sélectionnée: 5
  • Total de réponses: 8

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%


4
Imprime un nombre indéterminé de 55 à 100 inclus.
Ry-

Il suffit d'imprimer 100.
Kevin

1
Imprime un nombre 'aléatoire' entre 0 (inclus) et 110 (inclus)
fjdumont

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

Je suis heureux que la plupart des gens se soient bien compris - sans doute assez pour savoir qu'ils ne sauront pas faire cette erreur dans leur code!
Redtuna

4

Python, -83,3%

Réponse: Imprime a < bsi les entrées sont égales, a = bsi la première est plus grande et a > bsi la seconde est plus grande.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Bonnes suppositions: 11
  • Mêmes mauvaises suppositions: 1
  • Nombre de suppositions: 12

Explication:

cmp(a, b)renvoie 0si les deux arguments sont égaux, 1si le premier est plus grand et -1si le premier est plus petit, c'est pourquoi le mauvais symbole de comparaison est imprimé.


7
Imprime a = b si a> ba <b est a == b, ou a> b si a> b
Foon

imprime a = bpour l'entrée a == b, a < bpour l'entrée a> b et a > bpour l'entrée a <b
wim le

2
Imprime a = bsi a> b, a < bsi a == b, a > bsi a < b. (C’est probablement ce que @Foon voulait dire.)
flornquake le

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

1
Je pense que c'est mieux que ce que montre la partition. Si je n'avais pas été en mode de recherche d'erreur, je ne l'aurais peut-être pas trouvé.
WolframH

4

PHP, 100%

Première publication sur code gulf, j'espère que ce n'est pas si mal.

function word_to_num($word) {
 switch ($word) {
  case "one":
   return 1;
  case "two":
   return 2;
  case "three":
   return 3;
  default:
   return "error";
 }
}
function print_word($num) {
 switch ($num) {
  case 1:
   print "hello";
   break;
  case 2:
   print "world";
   break;
  case "error":
  default:
   print " ";
  }
}

$words = array("one", 0, "two");
foreach ($words as $word) {
 $result = word_to_num($word);
 print_word($result);
}

la sortie correcte est 'hellohelloworld'

le score est (10 - 0) / 10 = 1 = 100%


9
Impressions hello world.
Flornquake

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

Oh, haha. Darn PHP.
Ry-

'one' == 0=> true. Plutot malin.
Primo

4

Perl: 100% (4-0) / 4

print (1 + 2) * 3, "\n"; 
#

Ce programme imprime "3" sans nouvelle ligne. Perl analyse cette instruction comme

((print (1+2)) * 3, "\n")

donc seul le (1+2)est passé comme argument à print.


3
Impressions 9suivies d'une nouvelle ligne
3Doubloons

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

3

C #

static void Main(string[] args)
{
     Console.WriteLine('H' + 'e' + 'l' + 'l' + 'o');
     Console.ReadLine();
}

3
Imprime la somme des valeurs ASCII de chaque lettre (500)
3Doubloons le

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

Pour être honnête, la première fois que je l’ai vu, j’ai pensé que l’impression «Bonjour» était imprimée, mais j’ai ensuite fait une double-prise.
Redtuna

3

CPython

if 'Hello' + 'World' is 'HelloWorld':
  print 'Hello'
if 'Hello' + 'World!' is 'HelloWorld!':
  print 'World!'

la sortie correcte est 'Bonjour'

note (14-3) / 19 == 57,9%


13
Ne rien imprimer.
TerryA

1
Impressions Hello\nWorld!.
Bakuriu

2
Impressions Hello. (
Dépend de la

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

3

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 la scanfligne est commentée. Par conséquent, le programme fonctionne pour toujours, l'impression Guess a number between 1 and 10:. Les commentaires sont une citation de Mozart (via fortune).

// Why not?/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

// What?/
int main(int argc, char** argv)
{
    // Why not?/
    int number;

    // Why should I not send it?/
    srand(time(NULL));

    while(1)
    {
        // Why should I not dispatch it?/
        printf("Guess a number between 1 and 10: ");

        // Why not??/
        scanf("%d", &number);

        // Strange! I don't know why I shouldn't/
        if(number == rand() % 10 + 1)
        {
            // Well, then/
            printf("You guessed right!\n");
            // You will do me this favor./
            exit(0);
        }
    }
}

Spoiler, comment compiler et exécuter:

gcc test.c -trigraphs


5
Les commentaires ne sont que des distractions. Le programme est "Devinez le nombre aléatoire de 1 à 10".
luser droog

6
"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 contribution
pascalhein le

2
Quelque chose de mal est caché dans les commentaires car ils ressemblent à C ++.
Alexandre

1
Finalement, affiche "Vous avez deviné juste!" Et une nouvelle ligne, puis se termine.
Kaz Dragon

4
Le commentaire pervers a quelque chose à voir avec les trigraphes.
Shiona

3

Java

public class Test {
    public static void main(String[] args) {
        String fmt = "%s - %04d\n";
        System.out.println(fmt.format("Padded value: ", 0x0c));
    }
}

La réponse

Il imprime Padded value:(avec une nouvelle ligne).

La formatméthode de String est static, avec le format passé en tant que premier paramètre. Par exemple, l'appel ci-dessus équivaut à:

        System.out.println(String.format("Padded value: ", 0x0c));

Nombre de bonnes réponses: 2 Mauvaises réponses: 9

Note : (9-2) / 11 = 63%


8
Cette Padded value: - 0012\n
copie

1
Ceci affiche "Valeur rembourrée:` suivie d'un caractère de nouvelle ligne.
Alvin Wong

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

3

C

#include <stdio.h>
#define SIX  1+5
#define NINE 8+1

int main()
{
    printf("%d\n", SIX * NINE);
}

Note = (3-16) / 19 == -68,4%

N'oublie pas ta serviette.


15
Il imprime 42 + une nouvelle ligne
Paul Cager

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

Je viens de remarquer ton puzzle. Je me serais trompé xP Je suis un programmeur Java / C #, c'est donc mon excuse ...
Kevin

3

C ++

#include <cstdio>

int main()
{
    int f;

    f or (f = 0, f < 1000, ++f,
        printf("H ello world !\n"));

    return 0;
}

Note = (1 - 6) / 7 = -0,71428571428571 = -71,428571428571%


5
Cela ne fait rien.
SteeveDroz

Ne compile pas.
f.ardelian

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

2

JavaScript

var x = 0;
var y = !x * 4;
var z = !y;
alert("Z = "+z);

13
Cela alerte Z = false.
SteeveDroz

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

2

Python

def greeting():
  try:
    return 'Hello World'
  finally:
    return 'HELL0 W0RLD'

print greeting().lower()

la sortie correcte est 'hell0 w0rld'

note (8-14) / 22 == -27,3%


7
Impressions: Bonjour tout le monde
TerryA

14
Printshell0 w0rld
SteeveDroz

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

2

R: 100%

Pas si imaginatif que ça, mais cela pourrait dérouter certaines personnes:

sum(data.frame(rep(1,10),stringAsFactors=TRUE))

Selon vous, quel est le résultat?

Modifier :

La réponse était 20. En raison d'un manque sà stringAsFactors( au lieu de stringsAsFactors), l'argument n'est pas reconnu si la fonction de créer une nouvelle colonne appelée stringAsFactors. En raison du recyclage des vecteurs, la colonne contient 10 fois TRUEqui sont converties en 1s 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 10plus ou en moins). D'où un score de 100%, je suppose.


Renvoie la valeur 10.
SteeveDroz

1
Au départ, je pensais que ça reviendrait au 10. Sneaky ... laisser ce "s" changera vraiment les choses ...
Dason

1
@Dason Je réalise maintenant que supprimer le second aurait été encore plus sournois: on pourrait supposer que l'appariement partiel le corrige, mais il s'avère que ce n'est pas le cas.
Plannapus

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz

100%! Félicitations!
Redtuna

2

Tcl

Inspiré par ugoren

foreach c [split [lindex $argv 0] {}] {
    # Don't print the invalid chars & and \
    if {$c in "& \\"} {continue}
    puts -nonewline $c
}

Désolé, j'ai oublié un exemple de chaîne. Ok, lancez en tant que

./charfilter.tcl 'Bonjour et au revoir, mon monde!'

Edit Right solution: Il ne filtre pas du tout. ( 6x )
Max mauvaise réponse: 4x
Total réponses: 10
Score: -0.2


5
Il affiche simplement son argument et ne filtre pas réellement.
marinus

3
elle imprime son argument sans " ", "&", "\".
pascalhein

C'est la fin du jeu , évaluez-vous avec les commentaires qui se trouvent au dessus de celui-ci. Modifiez votre contenu et ajoutez la bonne réponse, le nombre de bonnes réponses, le nombre de personnes ayant généralement répondu la même chose, le nombre total de réponses et votre score . N'oubliez pas qu'un 2 à côté d'un commentaire signifie 3 réponses. Commentez librement ci-dessous.
SteeveDroz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.