-ENDED- Zrób coś, co wygląda jak coś innego [zamknięte]

78

Napisz fragment kodu, funkcję, program ..., który jest zaciemniony w taki sposób, że na pierwszy rzut oka wygląda wyraźnie, że robi coś innego.

Na przykład: napisz trochę kodu, który dodaje dwie liczby, ale kiedy zapytasz kogoś „co to robi?”, Powie ci, że drukuje „Witaj, świecie!”.

Zasady

  • Kod musi być czytelny dla kogoś, kto z grubsza zna język, którego używasz (unikaj wewnętrznego zaciemnionego języka, takiego jak APL, we własnym interesie).
  • Kod musi zrobić coś nieoczekiwanego, czego czytelnik początkowo nie był w stanie przewidzieć.
  • Gdy pytasz różnych czytelników, muszą mieć tę samą (błędną) opinię na temat tego, co robi kod.

Ocena

  • Przeczytaj kody innych zawodników przez maksymalnie 10-20 sekund, aby dobrze zorientować się, co się tam dzieje.
  • Dodaj komentarz na odpowiedź mówiąc, co myślę kod robi. Jeśli odpowiedź, którą chcesz udzielić, już tam jest, po prostu daj +1 komentarzowi. (jeśli przegapisz tę odpowiedź i dodasz kolejny komentarz, nie martw się, nie będzie liczony jako kolejna odpowiedź).
  • Punkty będą oczekiwane w ten sposób: ( maxFalseOpinion- goodGuess) / totalOpinion(patrz przykład poniżej).
  • Oceń innych zawodników fair play i nie komentuj własnego kodu.
  • Dodaj tylko przydatne komentarze. Unikaj „Nie wiem” i „Dobry!”, Nie są brane pod uwagę przy ocenie, ale to kod, a nie oceny, muszą być zaciemnione.

Przykład oceny

Fragment dodaje dwie liczby. Komentarze mówią:

(3) Wyświetla „Witaj, świecie!”
(1) Odejmuje 2 liczby.
(2) Dodaje 2 liczby.

Całkowita liczba punktów to maksymalna liczba opinii (3) - liczba dobrych zgadnięć (2) podzielona przez całkowitą liczbę zgadnięć (3 + 1 + 2 = 6). Wynik: (3 - 2) / 6 = 1/6 = 16,67% .


WIĘCEJ INFORMACJI O PUNKTACH

Wydaje się, że ludzie mają problemy z ustaleniem punktów.

Oto idealny wynik:

printf('Hello World');

komentarze:
Wyświetla liczbę kliknięć przycisku. (17 komentarzy).
RAZEM: 17 komentarzy

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

Oto kiepski wynik:

printf('Hello World');

komentarze:
Drukuje „Hello World”. (13 komentarzy).
RAZEM: 13 komentarzy

Wynik: (0–13) / 13 = -1 = -100%

Oto niezły wynik:

printf('Hello World');

komentarze:
wypisuje nazwę użytkownika. (2 komentarze).
Wyświetla aktualny czas (15 komentarzy).
Zwraca to, co wpisałeś bez modyfikacji. (3 komentarze).
Drukuje „Hello World” (1 komentarz).
RAZEM: 21 komentarzy

Wynik: (15 - 1) / 21 = 0,6666 = 66,67%
Wyjaśnianie:
15 to główne przypuszczenie, co ludzie mówią najczęściej. 1 to poprawna liczba domysłów. 21 to suma wszystkich komentarzy.

SteeveDroz
źródło
5
Możliwe pomysły dla zawodników (szczególnie tych, którzy piszą w C) można znaleźć na underhanded.xcott.com
shiona,
3
Mam wrażenie, że ludzie niechętnie komentują, jeśli nie zobaczą sztuczki (bo oczywiście popełniają błąd). To mocno zmodyfikuje wyniki.
ugoren
2
@Haidro, powiedziałbym, że jeśli znasz trochę język i wydaje się, że rozumiesz, co robi program, to skomentuj. Jeśli nie możesz tego zrozumieć (np. Nie rozumiem odpowiedzi na slackwear ), nie rób tego.
ugoren
2
Kiedy kończy się wyzwanie?
WolframH
4
Myślę, że powinieneś potrzebować minimalnej liczby domysłów dla zwycięzcy - powiedziałbym 10. 1 zła odpowiedź na 1 nie jest zbyt imponująca, ale jest w 100%.
ugoren

Odpowiedzi:

79

JavaScript

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

Odpowiedź: Wyprowadza 1. Poniższe komentarze wyjaśniają to całkiem dobrze - są tutaj dwie różne zmienne, a - „LATIN SMALL LETTER A” i а - „CYRILLIC SMALL LETTER A” .

Była 1 poprawna odpowiedź, 50 osób uważało, że daje 2, a przy 52 odpowiedziach wynik wynosi (50 - 1) / 52 = 49/52 = 94,23%

Danko Durbić
źródło
57
Wyniki, 2a przynajmniej tak mam nadzieję :)
Alexander
8
To najbardziej podstępny fragment JS, jaki widziałem. Dobrze rozegrane.
Peter Majeed
1
Dla tych, którzy tego nie
rozumieją
3
@soandos: (PONOWNIE, SPOILERY): Zmienna używana w pierwszym i trzecim wierszu różni się od zmiennej w drugim i czwartym. Używa się (U + 0061), podczas gdy druga używa Á (U + 0430). Zobacz także .
BlueRaja - Danny Pflughoeft
5
Mój przyjaciel pomyślał, że to dość zabawne i zainspirował mnie do napisania tego github.com/johnhaggkvist/WATifyJS - Miał zbyt mało przedstawicieli, aby komentować, więc robię to dla niego ^ _ ^
Henrik Andersson
32

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

Biegać ./prog 'Hello & goodbye, world!'

Wynik

Prawidłowa odpowiedź to H\n( whilejest częścią komentarza, ponieważ wiersz kończy się na \, więc nie ma pętli), podanej przez 6 osób.
Najpopularniejszym błędem było Hello goodbye, world\n25 osób.
(25–6) / 57 = 33,3%.
Podziękowania dla Oliviera Dulaca za kłopoty z obliczeniami.

ugoren
źródło
24
Drukuje „Cześć, do widzenia, świecie! \ N” ...
Vi.
5
To nieskończona pętla.
5
Drukuje tylko pierwszy znak w arg i nowy wiersz. Więc drukuje H\n.
marinus
7
Odbitki: Hello goodbye, world!(nie \ n) (2 spacje po Witam)
Olivier Dulac
6
produkuje SEGFAULT.
pascalhein
27

Pyton

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

Ocena

  1. Dobra odpowiedź: drukuje 0 1 4 9 16 25 36 49 64 64, każdy numer w jednym wierszu.

  2. Wyjaśnienie: Pomimo, że nikt nie otrzymał właściwej odpowiedzi, uważam to za nieudaną próbę, ponieważ nikt nie popełnił błędu, który zamierzałem. (Dodam prawdziwe wyjaśnienie później, jeśli nikt inny tego nie zrobi).

  3. Liczba dobrych odpowiedzi: 0

  4. Liczba osób z tą samą błędną odpowiedzią: 7

  5. Całkowita liczba odpowiedzi: 11

  6. Wynik: 63,64% (w zaokrągleniu do dwóch miejsc po przecinku)

Wyjaśnienie

Najpierw atworzona jest lista wypełniona wartościami i * ++i. W ++Pythonie nie ma operatora, ale istnieje +operator jednoargumentowy , który nie robi nic dla liczb całkowitych, a zastosowanie go dwa razy nadal nic nie robi. aZawiera więc kwadraty liczb całkowitych od 0do 9.

Postawiłem to ++na odwagę i miałem nadzieję, że większość wyborców pójdzie dalej, myśląc, że znaleźli pułapkę i wpadli w prawdziwą pułapkę. Nie wyszło. Niektórzy uważali, że ++to błąd składniowy, a inni wciąż szukali pułapki.

Pułapka Pułapka była na drugim miejscu dla pętli:

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

Byłem pewien, że większość ludzi pomyśli, że to wypisuje wszystkie a[i], tj. 0 1 4 9 16 25 36 49 64 81Każdy numer w jednej linii. To właśnie dostajesz z tą odmianą, na przykład:

for x in a: 
    print(x)

xma przypisane wartości a, a następnie xjest drukowane. W pierwszej wersji a[i]ma przypisane wartości a, a następnie a[i]jest drukowany. Różnica polega na tym, że w naszym przypadku mamy i == 9, a zatem wartość a[9]zmienia się za każdym razem za pośrednictwem pętli. Kiedy w końcu a[9]zostanie wydrukowany, ma wartość a[8]i dlatego 64jest drukowany ponownie.

WolframH
źródło
3
Błąd składniowy (nie ++w Pythonie).
ugoren 24.04.2013
5
SyntaxErrorna drugim for.
Bakuriu
Drukuje 81dziesięć razy
Michael0x2a
SyntaxErrorna drugim for. To jest niesamowite. To naprawdę powinno wygrać. Zajęło mi 5 minut, aby zrozumieć, co się dzieje, lol!
rubik
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
26

JavaScript , wynik -100%

Nie wymyśliłem tego, zrobił to Gary Bernhardt, ale jest to jeden z moich ulubionych

alert(Array(16).join("wat?" - 1)+", BATMAN!")
mplungjan
źródło
37
Wyjścia NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, BATMAN! :)
codefreak
1
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
Wygląda na to, że ten film jest dość sławny ...
Bakuriu
3
Czy to -100%jest ...
Alvin Wong
Oczywiście. Batman rozdaje je.
mplungjan
14

Python, -54,8%

Odpowiedź: Podnosi 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';
}
  • Dobre domysły: 24
  • Te same złe domysły: 7
  • Łączna liczba domysłów: 31

Wyjaśnienie:

from __future__ import bracesjest jednym z pisanek w Pythonie. Ma to być żart, mówiąc, że Python nigdy nie użyje nawiasów klamrowych do określania zakresu w przyszłości.

Zmienność
źródło
6
Sprawdza, czy wynik wyrażenia podanego przez użytkownika jest podpisany.
Felix Dombek
1
Podejrzewam, że jest sporo błędów. Programiści w języku Python są uparci;)
grc
12
To jest błąd składniowy!
Dhara,
11
SyntaxError: not a chance
Bakuriu
2
@BoppreH Ogranicz się w określaniu wyniku bez jakiegokolwiek wyraźnego wyjaśnienia lub głosuj za komentarzem, który już podaje wynik, który Twoim zdaniem jest poprawny. Inne rodzaje komentarzy tylko niszczą zabawę dla kolejnych czytelników.
Bakuriu
14

Perl, 26,67%

Wyniki:

To drukuje: „Jestem ambiwalentny, jeśli chodzi o mówienie czegokolwiek”.

my $num1,$num2 = @_;brakuje nawiasów. Dlatego jest to równoważne z my $num1; $num2 = @_;. $num1niczego się nie ustawia.

Zatem $num1nigdy nie jest większa niż zero. Trochę o tajnym świecie ryb ukrytym poza ekranem jest, bodaj, czerwony śledź, więc ludzie myślą, że znaleźli „sztuczkę”.

Co więcej, operator trójskładnikowy jest wartością Per w Perlu: w 1 ? $a = 1 : $b = 2rzeczywistości oznacza (1 ? $a = 1 : $b) = 2. Który środek ($a = 1) = 2jest oceniany, ustawiając $ana 2. Wbrew pozorom drugi ciąg jest przypisany do $num1.

Jeśli się zastanawiasz, //to operator zdefiniowany lub. Jeśli zmienna podrzędna zwróci niezdefiniowaną wartość, łańcuch "Stuff did not happen."zostanie wydrukowany. Ale tak się nie dzieje. To było po prostu dać ludziom inną opcję.

Punktacja:

Całkowicie prawidłowe: 5

Łączna liczba domysłów: 30

Wynik: (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.";

źródło
2
Wynika z tego, że jestem ambiwalentny w kwestii mówienia czegokolwiek.
marinus
10
Drukuje This is a secret fish world. Carp cannot be repressed!.
ugoren
13
Nie będąc guru perla, powinno to zostać wydrukowane Hello, world!.
Alexander
2
Cóż, to wszystko chłopaki. Nigdy więcej nie mam do czynienia z Perlem.
Pan Llama,
3
@ContextSwitch i @aidan, operator trójskładnikowy jest wartością l w Perlu. 1 ? $a = 1 : $b = 2właściwie znaczy (1 ? $a = 1 : $b) = 2. To, co oznacza, ($a = 1) = 2jest oceniane, ustawiając $ana 2. Ponadto, jak wskazał Primo, my $num1, $num2 = @_;nie robi tego, czego oczekujesz, ponieważ brakuje nawiasów.
14

PHP 52%

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

(Skopiowano dosłownie z stąd )

Wyjaśnienie i wynik

Prawidłowa odpowiedź to koń . To nie jest sztuczka ani sztuczka. Dziwnie, w ten sposób definiuje się trójskładnikowy operator w PHP.
3 wybrałem poprawną odpowiedź: koń ,
16 osób wybrało pociąg, który jest poprawny w dosłownie każdym innym wymyślonym języku, z wyjątkiem PHP. Łącznie
25 odpowiedzi, co daje wynik (16–3) / 25 = 52%

aidan
źródło
5
stóp
wim
15
odbitki train.
SteeveDroz
3
drukuje „koń”.
Jonathan
1
I dlatego ... prawie zawsze powinieneś używać nawiasów, aby wskazać kolejność operacji, nawet jeśli uważasz, że ich nie potrzebujesz.
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();
}

Rozwiązanie

Celem tego kodu jest nakłonienie użytkownika do myślenia, że ​​między wierszami „Witaj” i „Świat” zostanie wydrukowany znak nowej linii. Zauważ, że pierwszy parametr main ma nazwę cout. Ponieważ w zakresie main cout jest liczbą całkowitą, operator << faktycznie wykonuje operację przesunięcia w lewo z parametrem „\ n”, zamiast wypisywać nowy wiersz. Funkcja drukowania ma głównie na celu oderwanie się od parametrów wejściowych w main, ale także umożliwienie użycia std :: cout bez dodawania prefiksu przestrzeni nazw.

Wynik

Dzięki uprzejmości Alvina Wonga

  • Łącznie 38 odpowiedzi:
  • 12 myśli HelloWorld (biorąc pod uwagę, że minitech i zeel są takie same)
  • 23 myśli Hello\nworld 3 myślałem o czymś innym.
  • Wynik to (23–12) / 38 = 28,9%
Nick Hartung
źródło
23
Wyświetla „Witaj” w jednym wierszu, a „Świat” w następnym.
redtuna
2
Drukuje „HelloWorld”. Ustawia 1024 w coutprzypadku wywołania bez parametrów.
Alexander
9
Wydruki HelloWorld.
Ry-
1
Drukuje HelloWorld. I wykonuje nieco mądre przesunięcie w lewo na liczbie całkowitej „cout”.
zeel
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
10

Rubin, 100%

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

Poprawna odpowiedź:

Drukuje „główny” bez nowej linii. Objaśnienie: W Ruby nie można wywoływać lambda przy użyciu normalnej składni nawiasów. Zamiast tego display () jest interpretowany jako wbudowana metoda, którą wszystkie obiekty mają: o.display drukuje o.to_s na standardowe wyjście. Metody wywoływane bez obiektu są interpretowane jako metody „main”, obiektu zawierającego moduł jądra.

Wynik: 3 z tej samej błędnej odpowiedzi, brak innych odpowiedzi.

histocrat
źródło
3
Drukuje „Witaj, świecie!”
3Doubloons,
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
8

Python, -28,13%

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

print x

Drukuje się, 11ponieważ elseblok należący do whilejest wykonywany po wyjściu z pętli.

  • Maksymalna liczba fałszywych domysłów: 8
  • Prawidłowe domysły: 17
  • Całkowita liczba domysłów: 8 + 17 + 7 = 32

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

trzęsienie ziemi
źródło
7
Nie działa z powodu braku wcięcia welse:
Alexander
16
Drukuje 11w jednej linii.
Bakuriu
6
Zostanie wydrukowany 10.
skopiuj
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
8

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

Program drukuje:

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

Ocena: Wszystkie opinie: 22 12 poprawne 3 + 1 + 6 błędne [w przypadku odpowiedzi Bakuiru powiedziałbym, że było blisko, ale wciąż niepoprawne, ponieważ nazwa os jest ciągiem (nazwa os.uname jest funkcją)]

Ocena oparta na tym założeniu i moim zrozumieniu systemu oceny: maksymalna zła = 6 poprawna = 12 ocena = (6-12) / 22 = -27%

Foon
źródło
11
Reprodukcje What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: bluena oddzielnych liniach. Oczywiście [operating system name]zastępuje go rzeczywista nazwa.
Zmienność
3
Wyświetla ostatni wiersz z wartości 3 name = "Robin", seek = "Seek and find holy grail"i favorite_color = "red", och, no. blue! (AAARRGGGHHH!)
SteeveDroz 24.04.2013
5
Drukuje coś podobnego What is your name: <function os.name at 0x....>itp.
Bakuriu
Wyjścia What is your name: Robin, What is your quest: Seek and find holy graili What is your favorite color: bluena oddzielnych liniach.
Rory O'Kane
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
7

Pyton

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]))

edytować:

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

poprawne wyjście to „2 is company” na python 2, „3 is a crow” na python 3.

wim
źródło
7
2 is a crowd(w Python 2, 3 w Python 3).
ugoren 24.04.2013
2 is company(w Python 2) lub 3 is a crowd(w Python 3).
WolframH 24.04.13
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
5
Cholera, specjalna zmiana nazwy metody! :)
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;
})();

Możesz go uruchomić tutaj gdy będziesz gotowy (zgadnij najpierw!). Jeśli przewiniesz wystarczająco daleko w panelu JS, zobaczysz kod z krótkim objaśnieniem.

Poprawna odpowiedź:

Po poproszeniu użytkownika o wpisanie numeru, wejdzie on w nieskończoną pętlę i wyświetli ostrzeżenie „Obliczanie wyników ...” aż do przekroczenia maksymalnego rozmiaru stosu wywołań (chociaż przykład jsfiddle zatrzyma się po około 20 razy). Jeśli jednak średnik zostanie umieszczony po nawiasie zamykającym funkcji sayResult, będzie działał jak mgibsonbr opisany w komentarzach.

Punktacja:

  • Dobre odpowiedzi: 9
  • Najpopularniejsze fałszywe opinie: 2
  • Wszystkie odpowiedzi: 15
grc
źródło
Prosi o numer z pytaniem Please enter a number:i zwraca odpowiedź, a następnie true.
SteeveDroz
8
zamyka się w nieskończoną pętlę, wyświetlając „Obliczanie wyników” ad infinitum
SeanC
Monituje o numer, ostrzega „Obliczanie wyników” dwa razy, a następnie ostrzega „To liczba _”
mgibsonbr 24.04.2013
1
Wyprowadza That's a big numberpo opóźnieniu równym liczbie wprowadzonej w ms.
Gieron
W zależności od przeglądarki i / lub konfiguracji DOM (jestem naprawdę nowy w JS), wyświetla nazwę funkcji wywoływanej podczas ładowania strony.
Kevin
6

JavaScript

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

Odpowiedź: OstrzegaHello . concatSposób nie modyfikuje tablicę - to zwraca tablicę, która zawiera konkatenacji tablicy to wezwał i innych dostarczonych argumentów.

15 poprawnych, 26 błędnych, 41 odpowiedzi ogółem, a wynik to (26-15) / 41 = 11/41 = 26,83%

Danko Durbić
źródło
25
AlertyHello, world!
SteeveDroz,
14
OstrzegaHello
Zmienność
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
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

Uwaga: Załóżmy, że jest to Python 2.x, a nie Python 3.


Po uruchomieniu kod wygenerował UnboundLocalError: local variable 'True' referenced before assignment.

TerryA
źródło
1
PodnosiSyntaxError
Zmienność
Nie powinno tak być False, True = True, False?
Jest jak jest. (tak czy inaczej, myślę, że to nie robi różnicy w tym przypadku)
TerryA
4
To drukuje True.
WolframH
1
Podnosi i UnboundLocalError.
Bakuriu
5

Jawa

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

Pierwsza próba codegolfa ...

dobra odpowiedź: drukuje Some ungodly gibberish and then some more. i nowa linia

Ocena:

  • Maksymalna liczba domysłów 6
  • Całkowita liczba domysłów 11
  • liczba poprawnych domysłów 5 (0, jeśli jesteś w trybie pedanitc)

Wynik: 9% (55% w trybie pedantycznym)

Nicktar
źródło
5
WydrukiSome ungodly gibberish and then some more.
karton_pak
6
Drukuje Some ungodly gibberishz nową linią
MrZander
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
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);

To jest mój pierwszy golfowy kod.

Prawidłowa odpowiedź brzmiała: „coś między 55 a 110”. Dzieje się tak, ponieważ za każdym razem, gdy wykonywana jest instrukcja „sum + = i”, użyje bieżącej wartości i. Ten kod może nawet zostać wykonany po zakończeniu pętli for , w którym to punkcie ma wartość 11. To daje najwyższą możliwą wartość 110 (i możesz się upewnić, że ją zobaczysz, jeśli spowolnisz lambda podczas testowania). Najmniejszą możliwą wartością jest suma (1..10), która wynosi 55.

  • Dobre odpowiedzi: 0
  • Tylko w przybliżeniu dobre odpowiedzi: 5
  • Liczba wyborów najpopularniejszej odpowiedzi: 5
  • Wszystkie odpowiedzi: 8

wynik: ściśle mówiąc, nikt nie miał racji, więc wynik powinien wynosić (5-0) / 8 = 62,5%. Jeśli chcemy policzyć „w przybliżeniu dobrą” jako prawidłową odpowiedź, wynik wynosi (5–5) / 8 = 0%

redtuna
źródło
4
Drukuje nieokreśloną liczbę od 55 do 100 włącznie.
Ry-
Po prostu drukuje 100.
Kevin,
1
Drukuje „losową” liczbę od 0 (włącznie) do 110 (włącznie)
fjdumont,
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
Cieszę się, że większość ludzi ma rację - przypuszczalnie na tyle, że będą wiedzieli, że nie popełnią tego błędu w kodzie!
redtuna
4

Python, -83,3%

Odpowiedź: Drukuje, a < bjeśli dane wejściowe są równe, a = bjeśli pierwszy jest większy, a a > bdrugi jest większy.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Dobre domysły: 11
  • Te same złe domysły: 1
  • Łączna liczba domysłów: 12

Wyjaśnienie:

cmp(a, b)zwraca, 0jeśli oba argumenty są równe, 1jeśli pierwszy jest większy, a -1pierwszy jest mniejszy, dlatego drukowany jest niewłaściwy symbol porównania.

Zmienność
źródło
7
Wyświetla a = b, jeśli a> ba <b jest a == b, lub a> b, jeśli a> b
Foon 24.04.13
wypisuje a = bdane wejściowe a == b, a < bdane wejściowe a> b oraz a > bdane wejściowe a <b
wim
2
Drukuje, a = bjeśli a> b, a < bjeśli a == b, a > bjeśli a < b. (To prawdopodobnie oznaczało @Foon.)
trzęsienie ziemi
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz
1
Myślę, że to lepsze niż pokazuje wynik. Gdybym nie był w trybie wyszukiwania błędów, mógłbym go nie znaleźć.
WolframH 27.04.13
4

PHP, 100%

Po raz pierwszy wysyłając wiadomość do kodu, mam nadzieję, że nie jest tak źle.

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

poprawne wyjście to „hellohelloworld”

wynik to (10 - 0) / 10 = 1 = 100%

Echo
źródło
9
Wydruki hello world.
trzęsienie ziemi
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
Oh haha. Darn PHP.
Ry-
'one' == 0=> true. Całkiem sprytne.
primo
4

Perl: 100% (4-0) / 4

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

Ten program wypisuje „3” bez nowej linii. Perl analizuje tę instrukcję jako

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

więc tylko (1+2)argument jest przekazywany jako argument do print.

tłum
źródło
3
Wydruki 9następnie nową linią
3Doubloons
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
3

DO#

static void Main(string[] args)
{
     Console.WriteLine('H' + 'e' + 'l' + 'l' + 'o');
     Console.ReadLine();
}
Chrupiący
źródło
3
Drukuje sumę wartości ASCII każdej litery (500)
3Doubloons
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
Szczerze mówiąc, kiedy po raz pierwszy go zobaczyłem, pomyślałem, że wydrukuje „Cześć”, ale potem zrobiłem to podwójnie.
redtuna
3

CPython

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

poprawne wyjście to „Hello”

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

wim
źródło
13
Nic nie drukuje.
TerryA 24.04.13
1
Wydruki Hello\nWorld!.
Bakuriu 24.04.13
2
Wydruki Hello. (Zależnie od wdrożenia.)
WolframH
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz
3

C (wynik: 4,45%)

Dobre domysły: 7
Maksymalna liczba błędnych domysłów: 6 + 2 = 8
Suma domysłów: 6 + 7 + 3 + 2 + 4 = 22

Rozwiązanie: ??/ to trójgranica dla \, więc nowa linia jest usuwana, a scanflinia jest komentowana. Dlatego program działa wiecznie, drukując Guess a number between 1 and 10:. Komentarze są cytatem z Mozarta (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, jak skompilować i uruchomić:

gcc test.c -trigrafia

Kopiuj
źródło
5
Komentarze są tylko rozrywką. Program to „Odgadnij losową liczbę od 1 do 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)bez pytania o dane wejściowe
pascalhein
2
Coś złego jest ukryte w komentarzach, które wyglądają jak C ++.
Alexander
1
W końcu drukuje „Zgadłeś dobrze!” I nowy wiersz, a następnie się kończy.
Kaz Dragon
4
Zły komentarz ma coś wspólnego z trigrafiami.
shiona
3

Jawa

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

Odpowiedź

Drukuje Padded value:(z nową linią).

formatMetoda String polega na tym static, że format jest przekazywany jako pierwszy parametr. Tj. Powyższe połączenie jest równoważne z:

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

Liczba dobrych odpowiedzi: 2 Błędne odpowiedzi: 9

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

Paul Cager
źródło
8
To wydrukiPadded value: - 0012\n
skopiuj
1
Wyświetla się „Padded value:„, po którym następuje znak nowej linii.
Alvin Wong
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
3

do

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

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

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

Nie zapomnij swojego ręcznika.

Kaz Dragon
źródło
15
Drukuje 42 + nowy wiersz
Paul Cager
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź,liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz
Właśnie zauważyłem twoją łamigłówkę. Chciałbym zdobyć to źle xP Jestem Java / C # programista, więc to moja wymówka ...
Kevin
3

C ++

#include <cstdio>

int main()
{
    int f;

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

    return 0;
}

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

Paul R.
źródło
5
To nic nie robi.
SteeveDroz
Nie kompiluje się.
f.ardelian
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
2

JavaScript

var x = 0;
var y = !x * 4;
var z = !y;
alert("Z = "+z);
Tushar Koul
źródło
13
Ostrzega Z = false.
SteeveDroz
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
2

Pyton

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

print greeting().lower()

poprawne wyjście to „hell0 w0rld”

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

wim
źródło
7
Odbitki: hello world
TerryA
14
Odbitkihell0 w0rld
SteeveDroz
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
2

R: 100%

Nie tak pomysłowe, ale może zaintrygować niektórych ludzi:

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

Jak myślisz, jaki jest wynik?

Edytuj :

Odpowiedź brzmiała 20. Z powodu braku sw stringAsFactors(zamiast stringsAsFactors) argument nie jest rozpoznawany, więc funkcja tworzy nową kolumnę o nazwie stringAsFactors. Ze względu na recykling wektorów kolumna zawiera 10 razy, TRUEktóre są konwertowane na 1s w sumie, stąd w sumie 20, a nie 10.

Ta odpowiedź nie została podana w komentarzach. Podano 3 odpowiedzi (wszystkie mówią 10mniej więcej). Stąd wynik 100%, jak sądzę.

plannapus
źródło
Zwraca wartość 10.
SteeveDroz
1
Początkowo myślałem, że to zwróci 10. Podstępne ... pomijając to, że „one” naprawdę zmieniają rzeczy…
Dason
1
@Dason Teraz zdaję sobie sprawę, że stłumienie drugiego byłoby jeszcze bardziej podstępne: można by założyć, że częściowe dopasowanie poprawiłoby to, ale okazuje się, że tak nie jest.
plannapus
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13
100%! Gratulacje!
redtuna
2

Tcl

Zainspirowany przez ugoren

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

Przepraszam, zapomniałem przykładowego ciągu. Ok, uruchom jako

./charfilter.tcl „Witaj i do widzenia, świecie!”

Edytuj właściwe rozwiązanie: W ogóle nie filtruje. ( 6x )
Maksymalna zła odpowiedź: 4x
Całkowita liczba odpowiedzi: 10
Wynik: -0,2

Johannes Kuhn
źródło
5
Po prostu wypisuje swój argument i tak naprawdę nie filtruje.
marinus
3
drukuje swój argument bez " ", "&", "\".
pascalhein
To koniec gry , oceń się z komentarzami powyżej. Edytuj treść i dodaj dobrą odpowiedź, liczbę dobrych odpowiedzi, liczbę osób, które w większości odpowiedziały na to samo, całkowitą liczbę odpowiedzi i swój wynik . Nie zapominaj, że 2 obok komentarza oznacza 3 odpowiedzi. Komentarz swobodnie poniżej tego.
SteeveDroz 27.04.13