-ENDED- Mach etwas, das aussieht wie etwas anderes [geschlossen]


78

Schreiben Sie ein Snippet, eine Funktion, ein Programm, ... das so verschleiert ist, dass auf den ersten Blick klar wird, dass es etwas anderes tut.

Beispiel: Schreiben Sie einen Code, der zwei Zahlen hinzufügt. Wenn Sie jedoch jemanden fragen, "was macht er?", Wird er Ihnen mitteilen, dass "Hallo, Welt!" Gedruckt wird.

Regeln

  • Der Code muss für jemanden lesbar sein, der die von Ihnen verwendete Sprache ungefähr kennt (vermeiden Sie in Ihrem eigenen Interesse intrinsisch verschleierte Sprachen wie APL).
  • Der Code muss etwas Unerwartetes tun, das der Leser zunächst nicht vorhersagen konnte.
  • Wenn Sie verschiedene Leser fragen, müssen sie dieselbe (falsche) Meinung über die Funktionsweise des Codes haben.

Bewertung

  • Bitte lies die Codes anderer Teilnehmer innerhalb von maximal 10-20 Sekunden durch, um eine gute Vorstellung davon zu bekommen, was dort passiert.
  • Fügen Sie der Antwort einen Kommentar hinzu, der besagt, was Ihrer Meinung nach der Code bewirkt. Wenn die Antwort, die Sie geben möchten, bereits vorhanden ist, geben Sie einfach +1 für den Kommentar. (Wenn Sie diese Antwort verpassen und einen weiteren Kommentar hinzufügen, wird sie nicht als weitere Antwort gewertet.)
  • Die Punkte werden folgendermaßen angezeigt: ( maxFalseOpinion- goodGuess) / totalOpinion(siehe Beispiel unten).
  • Bewerten Sie andere Teilnehmer mit Fairplay und kommentieren Sie Ihren eigenen Code nicht.
  • Füge nur nützliche Kommentare hinzu. Vermeiden Sie "Ich weiß nicht" und "Gute!", Sie werden für die Bewertung nicht berücksichtigt, aber es ist der Code und nicht die Bewertung, die verschleiert werden muss.

Rating-Beispiel

Das Snippet fügt zwei Zahlen hinzu. Die Kommentare sagen:

(3) Es wird "Hallo Welt!" Angezeigt.
(1) Es werden 2 Zahlen abgezogen.
(2) Es werden 2 Zahlen hinzugefügt.

Die Gesamtpunktzahl ist die maximale Anzahl der Meinungen (3) - die Anzahl der guten Vermutungen (2) geteilt durch die Gesamtzahl der Vermutungen (3 + 1 + 2 = 6). Ergebnis: (3 - 2) / 6 = 1/6 = 16,67% .


MEHR ÜBER PUNKTE

Die Leute scheinen Probleme damit zu haben, die Punkte herauszufinden.

Hier ist eine perfekte Punktzahl:

printf('Hello World');

Kommentare:
Zeigt an, wie oft Sie auf eine Schaltfläche geklickt haben. (17 Kommentare).
Insgesamt: 17 Kommentare

Punktzahl: (17 - 0) / 17 = 1 = 100%

Hier ist eine lahme Punktzahl:

printf('Hello World');

Kommentare:
Es wird "Hello World" gedruckt. (13 Kommentare).
Insgesamt: 13 Kommentare

Punktzahl: (0 - 13) / 13 = -1 = -100%

Hier ist ein nicht so schlechtes Ergebnis:

printf('Hello World');

Kommentare:
Gibt den Benutzernamen aus. (2 Kommentare).
Es zeigt die aktuelle Uhrzeit an (15 Kommentare).
Es gibt das, was Sie eingegeben haben, unverändert zurück. (3 Kommentar).
Es druckt "Hallo Welt" (1 Kommentar).
Insgesamt: 21 Kommentare

Punktzahl: (15 - 1) / 21 = 0.6667 = 66.67% Erklärung
:
15 ist die wichtigste Vermutung, was die Leute am meisten sagten. 1 ist die richtige Anzahl von Vermutungen. 21 ist die Summe aller Kommentare.


5
Mögliche Ideen für die Teilnehmer (vor allem diejenigen , Schreiben C) finden Sie unter underhanded.xcott.com
Shiona

3
Ich habe das Gefühl, die Leute würden nur ungern einen Kommentar abgeben, wenn sie den Trick nicht sehen (weil sie offensichtlich falsch liegen würden). Dies würde die Ergebnisse stark verändern.
Ugoren

2
@Haidro, ich würde sagen, wenn du die Sprache nur ein bisschen kennst und scheinst zu verstehen, was das Programm macht, dann kommentiere. Wenn Sie es nicht verstehen können (z. B. kann ich die Antwort von Slackwear nicht verstehen ), tun Sie es nicht.
Ugoren

2
Wann endet die Herausforderung?
WolframH

4
Ich denke, Sie sollten eine Mindestanzahl von Vermutungen für einen Gewinner verlangen - ich würde 10 sagen. 1 falsche Antwort von 1 ist nicht sehr beeindruckend, aber es ist 100%.
Ugoren

Antworten:


79

Javascript

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

Antwort: Es wird ausgegeben 1. Die folgenden Kommentare erklären es recht gut - hier gibt es zwei verschiedene Variablen : 'LATIN SMALL LETTER A' und 'CYRILLIC SMALL LETTER A' .

Es gab 1 richtige Antwort, 50 Leute dachten, es gäbe 2 aus, und bei insgesamt 52 Antworten ist die Punktzahl (50 - 1) / 52 = 49/52 = 94,23%.


57
Ausgänge 2oder zumindest das ist, was ich hoffe :)
Alexander

8
Dies ist das hinterhältigste JS-Snippet, das ich je gesehen habe. Gut gespielt.
Peter Majeed

1
Für diejenigen, die es nicht bekommen (Spoiler voraus): Link
BlueRaja - Danny Pflughoeft

3
@soandos: (AGAIN, SPOILERS): Die in der ersten und dritten Zeile verwendete Variable unterscheidet sich von der in der zweiten und vierten Zeile. Einer verwendet ein (U + 0061), während der andere ein (U + 0430) verwendet. Siehe auch .
BlueRaja - Danny Pflughoeft

5
Ein Freund von mir dachte , das war ziemlich lustig und wurde inspiriert , diese zu schreiben github.com/johnhaggkvist/WATifyJS - Er hatte zu wenig rep kommentieren so für ihn mache ich ^ _ ^
Henrik Andersson

32

C, Score 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;
}

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

Ergebnis

Die richtige Antwort ist H\n(das whileist Teil des Kommentars, da die Zeile mit endet \, es gibt also keine Schleife), gegeben von 6 Personen.
Der häufigste Fehler wurde Hello goodbye, world\nvon 25 Personen begangen.
(25 - 6) / 57 = 33,3%.
Vielen Dank an Olivier Dulac für die Mühe zu berechnen.


24
Druckt "Hallo auf Wiedersehen, Welt! \ N" ...
Vi.

5
Es ist eine Endlosschleife.

5
Gibt nur das erste Zeichen im Argument und eine neue Zeile aus. Also druckt es H\n.
marinus

7
Drucke: Hello goodbye, world!(no \ n) (2 Leerzeichen nach Hallo)
Olivier Dulac

6
erzeugt ein SEGFAULT.
Pascalhein

27

Python

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

Bewertung

  1. Gute Antwort: Druckt 0 1 4 9 16 25 36 49 64 64jede Zahl in einer Zeile.

  2. Erläuterung: Obwohl niemand die richtige Antwort erhält, halte ich dies größtenteils für einen fehlgeschlagenen Versuch, da niemand den Fehler gemacht hat, den ich beabsichtigt hatte. (Ich werde später eine echte Erklärung hinzufügen, wenn es sonst niemand tut.)

  3. Anzahl guter Antworten: 0

  4. Anzahl der Personen mit der gleichen falschen Antwort: 7

  5. Gesamtzahl der Antworten: 11

  6. Punktzahl: 63,64% (auf zwei Dezimalstellen gerundet)

Erläuterung

Zunächst wird eine Liste aerstellt und mit Werten gefüllt i * ++i. ++In Python gibt es keinen Operator, aber es gibt einen unären +Operator, der nichts für Ganzzahlen tut, und dessen zweimalige Anwendung immer noch nichts bewirkt. So aenthält die Quadrate der ganzen Zahlen von 0zu 9.

Ich hatte das ++als Ablenkung gewertet und gehofft, dass die meisten Wähler weitermachen würden, weil sie dachten, sie hätten die Falle gefunden und wären in die wahre Falle geraten. Es hat nicht geklappt. Einige dachten, das ++sei ein Syntaxfehler, und die anderen suchten immer noch nach der Falle.

Die Falle Die Falle befand sich in der zweiten for-Schleife:

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

Ich war mir sicher, dass die meisten Leute denken würden, dies druckt alle a[i], dh 0 1 4 9 16 25 36 49 64 81jede Zahl in einer Zeile aus. Das bekommen Sie mit dieser Variante zum Beispiel:

for x in a: 
    print(x)

xwird die Werte in zugewiesen aund dann xgedruckt. In der ersten Version werden a[i]die Werte in zugewiesen aund dann a[i]gedruckt. Der Unterschied ist, dass wir in unserem Fall haben i == 9und somit der Wert von a[9]jedes Mal durch die Schleife geändert wird. Wenn final a[9]gedruckt wird, hat es den Wert von a[8]und wird somit 64erneut gedruckt.


3
Syntaxfehler (nein ++in Python).
Ugoren

5
SyntaxErroram zweiten for.
Bakuriu

Druck 81zehnmal
Michael0x2a

SyntaxErroram zweiten for. Das ist großartig. Das sollte wirklich gewinnen. Ich brauchte 5 Minuten, um zu verstehen, was los war, lol!
Rubik

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

26

JavaScript , Score von -100%

Ich habe das nicht erfunden, Gary Bernhardt, aber es ist einer meiner Favoriten

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

37
Ausgänge NaNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN, BATMAN! :)
Codefreak

1
Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

Scheint, dass Video ist ziemlich berühmt ...
Bakuriu

3
Ist das -100%? ...
Alvin Wong

Na sicher. Der Batman gibt es weg.
Mplungjan

14

Python, -54,8%

Antwort: Wirft 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';
}
  • Gute Vermutungen: 24
  • Gleiche Vermutungen: 7
  • Schätzung gesamt: 31

Erläuterung:

from __future__ import bracesist eines der Ostereier in Python. Es ist ein Scherz, der besagt, dass Python in Zukunft niemals mehr geschweifte Klammern verwenden wird.


6
Prüft, ob das Ergebnis eines vom Benutzer angegebenen Ausdrucks signiert ist.
Felix Dombek

1
Ich vermute, dass es einige Fehler gibt. Python-Programmierer sind hartnäckig;)
Grc

12
Dies ist ein Syntaxfehler!
Dhara

11
SyntaxError: not a chance
Bakuriu

2
@BoppreH Bitte beschränken Sie sich darauf, das Ergebnis ohne explizite Erklärung anzugeben, oder stimmen Sie dem Kommentar zu, der bereits das Ergebnis angibt, das Sie für richtig halten. Andere Art von Kommentaren ruinieren nur den Spaß für nachfolgende Leser.
Bakuriu

14

Perl, 26,67%

Ergebnisse:

Dieses druckt "ich bin über das Sagen alles überhaupt ambivalent."

my $num1,$num2 = @_;Klammern fehlen. Daher ist es äquivalent zu my $num1; $num2 = @_;. $num1wird auf nichts eingestellt.

Ist $num1also nie größer als Null. Das bisschen über die geheime Fischwelt, die sich hinter dem Bildschirm verbirgt, ist ein roter Hering, so dass die Leute denken, sie hätten den "Trick" gefunden.

Außerdem ist der ternäre Operator in Perl ein l-Wert: 1 ? $a = 1 : $b = 2eigentlich bedeutet (1 ? $a = 1 : $b) = 2. Welches Mittel ($a = 1) = 2ausgewertet wird, setzt $aauf 2. Im Gegensatz zum Aussehen wird die zweite Zeichenfolge zugewiesen $num1.

Wenn Sie sich fragen, //ist der definierte Operator. Wenn das Sub einen undefinierten Wert zurückgibt, wird die Zeichenfolge "Stuff did not happen."gedruckt. Aber das passiert eigentlich nicht. Es ging nur darum, den Menschen eine andere Option zu geben.

Wertung:

Insgesamt richtig: 5

Gesamtschätzungen: 30

Ergebnis: (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
Es gibt, ich bin ambivalent darüber, überhaupt etwas zu sagen.
marinus

10
Es druckt This is a secret fish world. Carp cannot be repressed!.
Ugoren

13
Kein Perl-Guru, das sollte sich auszahlen Hello, world!.
Alexander

2
Nun, das ist es Jungs. Ich habe nie wieder mit Perl zu tun.
Mr. Llama

3
@ContextSwitch und @aidan, der ternäre Operator ist in Perl ein l-Wert. 1 ? $a = 1 : $b = 2bedeutet eigentlich (1 ? $a = 1 : $b) = 2. Welches Mittel ($a = 1) = 2ausgewertet wird, wird $aauf 2 gesetzt. Wie Primo betont hat, wird my $num1, $num2 = @_;auch nicht das getan, was Sie erwarten, da die Klammern fehlen.

14

PHP 52%

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

(Wörtlich von hier kopiert )

Erklärung & Score

Die richtige Antwort ist Pferd . Dies ist kein Trick oder Trick. Seltsamerweise ist dies die Definition des ternären Operators in PHP.
3 wählten die richtige Antwort: Pferd ,
16 Leute wählten Zug, der buchstäblich in jeder anderen Sprache, die jemals erfunden wurde, außer PHP, korrekt ist.
25 Antworten insgesamt, was einer Punktzahl von (16 - 3) / 25 = 52% entspricht


5
Füße
wim

15
druckt train.
SteeveDroz

3
druckt "Pferd".
Jonathan


1
Und deshalb sollten Sie fast immer Klammern verwenden, um die Reihenfolge der Operationen anzugeben, auch wenn Sie glauben, dass Sie sie nicht benötigen.
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();
}

Lösung

Der Zweck dieses Codes besteht darin, den Benutzer zu täuschen, dass ein Zeilenumbruchzeichen zwischen dem Text "Hallo" und "Welt" gedruckt wird. Beachten Sie, dass der erste Parameter für main den Namen cout hat. Da cout im Gültigkeitsbereich von main eine Ganzzahl ist, führt der Operator << tatsächlich eine Linksverschiebung mit dem Parameter '\ n' durch, anstatt eine neue Zeile zu drucken. Die Druckfunktion dient hauptsächlich dazu, die Aufmerksamkeit auf die Eingabeparameter in main zu lenken, aber auch die Verwendung von std :: cout zu ermöglichen, ohne das Namespace-Präfix hinzuzufügen.

Ergebnis

Mit freundlicher Genehmigung von Alvin Wong

  • Insgesamt 38 Antworten:
  • 12 Gedanken HelloWorld( unter Berücksichtigung MiniTech ist und Zeel- Gruppen sind gleich)
  • 23 dachte Hello\nworld 3 dachte etwas anderes.
  • Ergebnis ist (23 - 12) / 38 = 28,9%

23
Gibt "Hallo" in einer Zeile und "Welt" in der nächsten aus.
Redtuna

2
Druckt "HelloWorld". Fügt 1024 ein, coutwenn es ohne Parameter aufgerufen wird.
Alexander

9
Druckt HelloWorld.
Ry

1
Druckt HelloWorld. Und führt eine etwas weise Linksverschiebung auf der ganzen Zahl "cout" durch.
Zeel

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

10

Rubin, 100%

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

Korrekte Antwort:

Druckt "main" ohne Zeilenumbruch. Erläuterung: In Ruby können Sie ein Lambda nicht mit der normalen Klammersyntax aufrufen. Stattdessen wird display () als die integrierte Methode interpretiert, die alle Objekte haben: o.display druckt o.to_s zur Standardausgabe. Methoden, die ohne Objekt aufgerufen werden, werden als Methoden von "main" interpretiert, einem Objekt, das das Kernel-Modul enthält.

Punktzahl: 3 der gleichen falschen Antwort, keine anderen Antworten.


3
Prints "Hallo, Welt!"
3Doubloons

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

8

Python, -28,13%

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

print x

Dies wird gedruckt, 11weil der elseBlock, der zu dem gehört while, ausgeführt wird, nachdem die Schleife verlassen wurde.

  • Maximale Anzahl falscher Vermutungen: 8
  • Richtige Vermutungen: 17
  • Gesamtschätzungen: 8 + 17 + 7 = 32

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


7
Scheitert an fehlender Einrückung inelse:
Alexander

16
Druckt 11in einer Zeile.
Bakuriu

6
Dies druckt 10.
Kopie

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

8

Python: Bewertung: -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

Das Programm druckt:

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

Rating: Gesamt Meinungen: 22 12 Richtig 3 + 1 + 6 Falsch

Bewertung basierend auf dieser Annahme und meinem Verständnis des Bewertungssystems: Maximal falsch = 6 richtig = 12 Punkte = (6-12) / 22 = -27%


11
Drucke What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: blueauf separaten Zeilen. Offensichtlich [operating system name]wird durch den tatsächlichen Namen ersetzt.
Volatility

3
Zeigt die 3 letzten Zeilen mit Werten name = "Robin", seek = "Seek and find holy grail"und favorite_color = "red", oh, nein. blue! (AAARRGGGHHH!)
SteeveDroz

5
Drucke so etwas wie What is your name: <function os.name at 0x....>etc.
Bakuriu

Ausgänge What is your name: Robin, What is your quest: Seek and find holy grailund What is your favorite color: bluein separaten Zeilen.
Rory O'Kane

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
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]))

bearbeiten:

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

Die korrekte Ausgabe ist '2 is company' in Python 2, '3 is a crowd' in Python 3.


7
2 is a crowd(in Python 2, 3 in Python 3).
Ugoren

2 is company(in Python 2) oder 3 is a crowd(in Python 3).
WolframH

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

5
Verdammt spezielle Methode umbenennen! :)
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;
})();

Sie können es hier ausführen, wenn Sie bereit sind (raten Sie zuerst!). Wenn Sie im JS-Bedienfeld weit genug nach unten scrollen, wird der Code mit einer kurzen Erläuterung angezeigt.

Korrekte Antwort:

Nachdem Sie den Benutzer aufgefordert haben, eine Zahl einzugeben, wird eine Endlosschleife geöffnet und der Alarm "Ergebnisse werden berechnet ..." wird angezeigt, bis die maximale Call-Stack-Größe überschritten ist (obwohl das Beispiel "jsfiddle" nach ca. 20-mal beendet wird). Wenn jedoch ein Semikolon nach der schließenden Klammer der sayResult-Funktion steht, funktioniert es wie in den Kommentaren beschrieben.

Wertung:

  • Gute Antworten: 9
  • Beliebteste falsche Meinung: 2
  • Antworten insgesamt: 15

Es fragt nach einer Nummer mit der Frage Please enter a number:und gibt Ihre Antwort gefolgt von zurück true.
SteeveDroz

8
Es wird in eine Endlosschleife
eingebunden,

Es fordert zur Eingabe einer Zahl auf, gibt zweimal die
Meldung

1
Die Ausgabe erfolgt That's a big numbernach einer Verzögerung, die der von Ihnen eingegebenen Zahl in ms entspricht.
Gieron

Abhängig vom Browser und / oder der Einrichtung des DOM (ich bin wirklich neu in JS) wird der Name der Funktion ausgegeben, die beim Laden der Seite aufgerufen wird.
Kevin

6

Javascript

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

Antwort: Es warntHello . Die concatMethode ändert das Array nicht - sie gibt ein Array zurück, das die Verkettung des aufgerufenen Arrays und aller anderen angegebenen Argumente enthält.

15 richtig, 26 falsch, 41 Antworten insgesamt und die Punktzahl ist (26-15) / 41 = 11/41 = 26,83%


25
AlertsHello, world!
SteeveDroz

14
Es warntHello
Volatilität

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
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

Hinweis: Angenommen, dies ist Python 2.x und nicht Python 3.


Beim Ausführen wurde mit diesem Code ein UnboundLocalError: local variable 'True' referenced before assignment.


1
Raises aSyntaxError
Volatility

Sollte das nicht sein False, True = True, False?

Es ist was es ist. (So ​​oder so, ich denke, das macht in diesem Fall keinen Unterschied)
TerryA

4
Dies wird gedruckt True.
WolframH

1
Wirft ein 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);
    }
}

Erster Codegolfversuch ...

gute Some ungodly gibberish and then some more.antwort : drucke und eine newline

Bewertung:

  • Maximale Anzahl von Vermutungen 6
  • Gesamtzahl der Vermutungen 11
  • Anzahl der richtigen Vermutungen 5 (0, wenn Sie sich im pedanitischen Modus befinden)

Prüfungsergebnis: 9% (55% im pedantischen Modus)


5
DruckeSome ungodly gibberish and then some more.
cardboard_box

6
Druck Some ungodly gibberishmit einem Newline
MrZander

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
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);

Dies ist mein erster Code Golf.

Die richtige Antwort war: "Etwas zwischen 55 und 110". Dies liegt daran, dass bei jeder Ausführung der Anweisung "sum + = i" der aktuelle Wert von i verwendet wird. Dieser Code wird möglicherweise sogar ausgeführt, nachdem die for-Schleife ausgeführt wurde. Zu diesem Zeitpunkt hat i den Wert 11. Dies ergibt den höchstmöglichen Wert 110 (und Sie können sicherstellen, dass er angezeigt wird, wenn Sie das Lambda in Ihren Tests verlangsamen). Der kleinstmögliche Wert ist sum (1..10) und beträgt 55.

  • Gute Antworten: 0
  • Nur annähernd gute Antworten: 5
  • Häufigkeit, mit der die beliebteste Antwort ausgewählt wurde: 5
  • Antworten insgesamt: 8

Punktzahl: Genau genommen hat es niemand richtig gemacht, daher sollte die Punktzahl (5-0) / 8 = 62,5% betragen. Wenn wir bereit sind, "ungefähr gut" als richtige Antwort zu zählen, ist die Punktzahl (5-5) / 8 = 0%.


4
Gibt eine unbestimmte Zahl von 55 bis einschließlich 100 aus.
Ry

Es druckt nur 100.
Kevin

1
Druckt eine Zufallszahl zwischen 0 (einschließlich) und 110 (einschließlich)
fjdumont

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

Ich bin froh, dass die meisten Leute es größtenteils richtig verstanden haben - vermutlich so richtig, dass sie wissen, dass sie diesen Fehler nicht in ihrem Code machen!
Redtuna

4

Python, -83,3%

Antwort: Druckt, a < bwenn die Eingaben gleich sind, a = bwenn die erste größer ist und a > bwenn die zweite größer ist.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Gute Vermutungen: 11
  • Gleiche Vermutungen: 1
  • Vermutungen insgesamt: 12

Erläuterung:

cmp(a, b)Gibt zurück, 0wenn beide Argumente gleich sind, 1wenn das erste größer und -1das erste kleiner ist. Aus diesem Grund wird das falsche Vergleichssymbol gedruckt.


7
Gibt a = b aus, wenn a> ba <b a == b ist, oder a> b, wenn a> b
Foon

druckt a = bfür Eingabe a == b, a < bfür Eingabe a> b und a > bfür Eingabe a <b
wim

2
Druckt, a = bwenn a> b, a < bwenn a == b, a > bwenn a < b. (Dies ist wahrscheinlich, was @Foon bedeutete.)
Flornquake

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

1
Ich denke, das ist besser als die Partitur zeigt. Wenn ich nicht im Fehlersuchmodus gewesen wäre, hätte ich ihn möglicherweise nicht gefunden.
WolframH

4

PHP, 100%

Zum ersten Mal in Code Gulf posten, hoffentlich ist das nicht so schlimm.

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);
}

korrekte Ausgabe ist 'hellohelloworld'

Punktzahl ist (10 - 0) / 10 = 1 = 100%


9
Druckt hello world.
Flornquake

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

Oh haha. Verdammtes PHP.
Ry

'one' == 0=> true. Ziemlich schlau.
Primo

4

Perl: 100% (4-0) / 4

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

Dieses Programm gibt "3" ohne eine neue Zeile aus. Perl analysiert diese Anweisung als

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

so wird nur das (1+2)als argument an übergeben print.


3
Drucke 9gefolgt von einer neuen Zeile
3Doubloons

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

3

C #

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

3
Druckt die Summe der ASCII-Werte jedes Buchstabens (500)
3Doubloons

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

Um ehrlich zu sein, als ich es das erste Mal sah, dachte ich, es würde "Hallo" drucken, aber dann machte ich eine doppelte Einstellung.
Redtuna

3

CPython

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

korrekte Ausgabe ist 'Hallo'

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


13
Druckt nichts.
TerryA

1
Druckt Hello\nWorld!.
Bakuriu

2
Druckt Hello. (Implementierungsabhängig.)
WolframH

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

3

C (Ergebnis: 4,45%)

Gute Vermutungen: 7
Maximum der falschen Vermutungen: 6 + 2 = 8
Gesamte Vermutungen: 6 + 7 + 3 + 2 + 4 = 22

Lösung: Ist ??/ein Trigraph für \, so wird die neue scanfZeile ausgeblendet und die Zeile auskommentiert . Daher läuft das Programm für immer und druckt Guess a number between 1 and 10:. Die Kommentare sind ein Zitat von 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, wie kompiliert und ausgeführt wird:

gcc test.c -graphen


5
Kommentare sind nur Ablenkungen. Programm ist "Rate die Zufallszahl von 1 bis 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)ohne
nachzufragen

2
In den Kommentaren ist etwas Böses versteckt, da sie wie C ++ aussehen.
Alexander

1
Schließlich wird "Sie haben richtig geraten!" Und eine neue Zeile gedruckt und endet dann.
Kaz Dragon

4
Der böse Kommentar hat etwas mit Trigraphen zu tun.
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));
    }
}

Die Antwort

Es wird gedruckt Padded value:(mit einer neuen Zeile).

Die formatMethode von String ist static, wobei das Format als erster Parameter übergeben wird. Dh der obige Aufruf entspricht:

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

Anzahl guter Antworten: 2 Falsche Antworten: 9

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


8
Diese DruckePadded value: - 0012\n
Kopie

1
Dies gibt "Gepolsterter Wert:" gefolgt von einem Zeilenumbruchzeichen aus.
Alvin Wong,

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

3

C

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

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

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

Vergiss dein Handtuch nicht.


15
Es druckt 42 + eine neue Zeile
Paul Cager

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

Ich habe gerade dein Rätsel bemerkt. Ich hätte es falsch verstanden xP Ich bin ein Java / C # -Programmierer, das ist also meine Entschuldigung ...
Kevin

3

C ++

#include <cstdio>

int main()
{
    int f;

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

    return 0;
}

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


5
Das macht nichts.
SteeveDroz

Kompiliert nicht.
f.ardelian

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

2

JavaScript

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

13
Es warnt Z = false.
SteeveDroz

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

2

Python

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

print greeting().lower()

korrekte Ausgabe ist 'hell0 w0rld'

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


7
Drucke: Hallo Welt
TerryA

14
Druckehell0 w0rld
SteeveDroz

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

2

R: 100%

Nicht so einfallsreich, könnte aber einige Leute verwirren:

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

Was denkst du ist das Ergebnis?

Bearbeiten :

Die Antwort war 20. Aufgrund eines Fehlens sin stringAsFactors(anstelle von stringsAsFactors) wird das Argument nicht erkannt, sodass die Funktion eine neue Spalte mit dem Namen erstellt stringAsFactors. Aufgrund des Vektorrecyclings enthält die Säule 10-mal, TRUEdie 1in der Summe in s umgewandelt werden , also insgesamt 20 und nicht 10.

Diese Antwort wurde in den Kommentaren nicht gegeben. Es wurden 3 Antworten gegeben (alle sagen 10mehr oder weniger). Also eine Punktzahl von 100%, denke ich.


Liefert den Wert 10.
SteeveDroz

1
Ich dachte zunächst, es würde 10 zurückkehren. Sneaky ...
aufhören

1
@Dason Mir ist jetzt klar, dass das Unterdrücken des zweiten noch hinterhältiger gewesen wäre: Man würde annehmen, dass eine teilweise Übereinstimmung dies korrigieren würde, aber es stellt sich heraus, dass dies nicht der Fall ist.
Plannapus

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz

100%! Glückwunsch!
Redtuna

2

Tcl

Inspiriert von ugoren

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

Sorry, habe einen Beispielstring vergessen. Ok, lauf als

./charfilter.tcl 'Hallo & auf Wiedersehen, Welt!'

Richtige Lösung bearbeiten : Es wird überhaupt nicht gefiltert. ( 6x )
Max falsche Antwort: 4x
Alle Antworten: 10
Punkte: -0.2


5
Es gibt nur das Argument aus und filtert nicht wirklich.
marinus

3
er druckt ihr Argument , ohne " ", "&", "\".
Pascalhein

Dies ist das Ende des Spiels , bitte bewerten Sie sich mit den Kommentaren, die über diesem stehen. Bearbeiten Sie Ihren Inhalt und fügen Sie die gute Antwort, die Anzahl der guten Antworten, die Anzahl der Personen, die am häufigsten dieselbe Antwort gegeben haben, die Gesamtzahl der Antworten und Ihre Punktzahl hinzu . Vergessen Sie nicht, dass eine 2 neben einem Kommentar 3 Antworten bedeutet . Kommentar frei darunter.
SteeveDroz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.