-ENDED- Fai qualcosa che assomiglia a qualcos'altro [chiuso]


78

Scrivi uno snippet, una funzione, un programma, ... che è offuscato in modo da sembrare chiaro a prima vista che fa qualcos'altro.

Ad esempio: scrivi un po 'di codice che aggiunge due numeri, ma quando chiedi a qualcuno "cosa fa?", Ti dirà che stampa "Hello, World!".

Regole

  • Il codice deve essere leggibile per qualcuno che conosce approssimativamente la lingua che usi (evita il linguaggio intrinseco offuscato come APL, nel tuo interesse).
  • Il codice deve fare qualcosa di inaspettato che inizialmente il lettore non poteva prevedere.
  • Quando chiedi a lettori diversi, devono avere la stessa (errata) opinione su ciò che fa il codice.

Valutazione

  • Leggi i codici degli altri concorrenti per un massimo di 10-20 secondi, solo per avere una buona idea di cosa succede lì.
  • Aggiungi un commento alla risposta dicendo cosa pensi che faccia il codice. Se la risposta che vuoi dare è già lì, fai +1 sul commento. (se perdi quella risposta e aggiungi un altro commento, non preoccuparti, non verrà conteggiato come un'altra risposta).
  • I punti saranno resi noti in questo modo: ( maxFalseOpinion- goodGuess) / totalOpinion(vedi esempio sotto).
  • Valuta gli altri concorrenti con fairplay e non commentare il tuo codice.
  • Aggiungi solo commenti utili. Evita "Non lo so" e "buono!", Non vengono presi in considerazione per la valutazione, ma è il codice e non le valutazioni che devono essere offuscate.

Esempio di valutazione

Lo snippet aggiunge due numeri. I commenti dicono:

(3) Mostra "Ciao, mondo!"
(1) Sottrae 2 numeri.
(2) Aggiunge 2 numeri.

La quantità totale di punti è il numero massimo di opinioni (3) - il numero di ipotesi valide (2) diviso per la quantità totale di ipotesi (3 + 1 + 2 = 6). Risultato: (3 - 2) / 6 = 1/6 = 16,67% .


MAGGIORI INFORMAZIONI SUI PUNTI

Le persone sembrano avere qualche problema a capire i punti.

Ecco un punteggio perfetto:

printf('Hello World');

commenti:
visualizza il numero di volte in cui si è fatto clic su un pulsante. (17 commenti).
TOTALE: 17 commenti

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

Ecco un punteggio scadente:

printf('Hello World');

commenti:
stampa "Hello World". (13 commenti).
TOTALE: 13 commenti

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

Ecco un punteggio non così negativo:

printf('Hello World');

commenti:
stampa il nome utente. (2 commenti).
Visualizza l'ora corrente (15 commenti).
Restituisce ciò che hai inserito senza modifiche. (3 commenti).
Stampa "Hello World" (1 commento).
TOTALE: 21 commenti

Punteggio: (15 - 1) / 21 = 0.6667 = 66.67%
Spiegazione:
15 è l'ipotesi principale, ciò che la gente ha detto di più. 1 è il numero corretto di ipotesi. 21 è la somma di tutti i commenti.


5
Le possibili idee per i concorrenti (in particolare quelli che scrivono C) sono disponibili su underhanded.xcott.com
shiona,

3
Ho la sensazione che le persone sarebbero riluttanti a commentare se non vedono il trucco (perché ovviamente finirebbero male). Ciò modifica fortemente i risultati.
ugoren,

2
@Haidro, direi che se conosci un po 'la lingua e sembra capire cosa fa il programma, allora commenta. Se non riesci a capirlo (ad es. Non riesco a capire la risposta dello slackwear ), non farlo.
ugoren,

2
Quando finisce la sfida?
WolframH,

4
Penso che dovresti richiedere un numero minimo di ipotesi per un vincitore - direi 10. 1 risposta sbagliata su 1 non è molto impressionante, ma è al 100%.
ugoren,

Risposte:


79

Javascript

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

Risposta: emette 1. I commenti che seguono spiegano abbastanza bene - ci sono due diverse variabili qui, a - 'LATIN SMALL LETTER A' e а - 'CYRILLIC SMALL LETTER A' .

C'è stata 1 risposta corretta, 50 persone l'hanno giudicata uscita 2 e, con un totale di 52 risposte, il punteggio è (50 - 1) / 52 = 49/52 = 94,23%


57
Uscite 2o almeno questo è quello che spero :)
Alexander

8
Questo è lo snippet JS più subdolo che abbia mai visto. Ben fatto.
Peter Majeed,

1
Per chi non lo
capisce

3
@soandos: (ANCORA, SPOILER): la variabile utilizzata nella prima e terza riga è diversa da quella nella seconda e quarta. Uno usa un (U + 0061) mentre l'altro usa un (U + 0430). Vedi anche .
BlueRaja - Danny Pflughoeft

5
Un mio amico ha pensato che fosse abbastanza divertente ed è stato ispirato a scrivere questo github.com/johnhaggkvist/WATifyJS - Aveva troppo poco rappresentante per commentare, quindi lo sto facendo per lui ^ _ ^
Henrik Andersson

32

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

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

Punto

La risposta corretta è H\n( whileè parte del commento, grazie alla linea che termina con \, quindi non c'è loop), data da 6 persone.
L'errore più popolare è stato Hello goodbye, world\ndato da 25 persone.
(25 - 6) / 57 = 33,3%.
Grazie a Olivier Dulac per il disturbo di calcolare.


24
Stampa "Ciao arrivederci, mondo! \ N" ...
Vi.

5
È un ciclo infinito.

5
Stampa solo il primo personaggio in arg e una nuova riga. Quindi stampa H\n.
Marin

7
Stampe: Hello goodbye, world!(no \ n) (2 spazi dopo Hello)
Olivier Dulac il

6
produce un SEGFAULT.
Pascalhein,

27

Pitone

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

Valutazione

  1. Buona risposta: stampa 0 1 4 9 16 25 36 49 64 64ogni numero su una riga.

  2. Spiegazione: Nonostante nessuno ottenga la risposta giusta, considero questo principalmente un tentativo fallito, perché nessuno ha commesso l'errore che avevo voluto. (Aggiungerò una vera spiegazione più tardi se nessun altro lo farà.)

  3. Numero di risposte valide: 0

  4. Numero di persone con la stessa risposta errata: 7

  5. Numero totale di risposte: 11

  6. Punteggio: 63,64% (arrotondato al secondo decimale)

Spiegazione

Innanzitutto, aviene creato un elenco e pieno di valori i * ++i. Non esiste un ++operatore in Python, ma esiste un +operatore unario , che non fa nulla per gli interi, e applicarlo due volte non fa ancora nulla. Quindi acontiene i quadrati degli interi da 0a 9.

Avevo messo la ++distrazione e speravo che la maggior parte degli elettori continuasse, pensando di aver trovato la trappola e di cadere nella vera trappola. Non ha funzionato. Alcuni pensavano che ++fosse un errore di sintassi e altri cercavano ancora la trappola.

La trappola La trappola era nel secondo per loop:

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

Ero sicuro che la maggior parte delle persone avrebbe pensato che questo stampasse tutto a[i], cioè 0 1 4 9 16 25 36 49 64 81ogni numero su una riga. Questo è ciò che ottieni con questo variatore, ad esempio:

for x in a: 
    print(x)

xviene assegnato i valori in a, quindi xviene stampato. Nella prima versione, a[i]vengono assegnati i valori in a, quindi a[i]vengono stampati. La differenza è che nel nostro caso abbiamo i == 9, e quindi il valore di a[9]viene cambiato ogni volta attraverso il ciclo. Quando finalmente a[9]viene stampato, ha il valore di a[8], e quindi 64viene stampato di nuovo.


3
Errore di sintassi (no ++in Python).
ugoren,

5
SyntaxErrorsul secondo for.
Bakuriu,

Stampa 81dieci volte
Michael0x2a,

SyntaxErrorsul secondo for. Questo è fantastico Questo dovrebbe davvero vincere. Mi ci sono voluti 5 minuti per capire cosa stava succedendo lol!
rubik,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

26

JavaScript , punteggio del -100%

Non l'ho inventato, Gary Bernhardt, ma è uno dei miei preferiti

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

37
Uscite NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN, BATMAN! :)
codefreak

1
Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

Sembra che quel video sia abbastanza famoso ...
Bakuriu,

3
È questo -100%? ...
Alvin Wong,

Ovviamente. Il batman lo dà via.
mplungjan,

14

Python, -54,8%

Risposta: aumenta 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';
}
  • Buone ipotesi: 24
  • Stesse cattive ipotesi: 7
  • Totale ipotesi: 31

Spiegazione:

from __future__ import bracesè una delle uova di Pasqua in Python. È inteso come uno scherzo, dicendo che Python non utilizzerà mai le parentesi graffe per lo scoping in futuro.


6
Verifica se il risultato di un'espressione fornita dall'utente è firmato.
Felix Dombek,

1
Sospetto che ci siano alcuni errori. I programmatori Python sono testardi;)
GRC,

12
Questo è un errore di sintassi!
Dhara,

11
SyntaxError: not a chance
Bakuriu,

2
@BoppreH Per favore, limitati a dichiarare il risultato senza alcun tipo di spiegazione esplicita o vota il commento che afferma già il risultato che ritieni sia corretto. Altri tipi di commenti possono solo rovinare il divertimento per i seguenti lettori.
Bakuriu,

14

Perl, 26,67%

risultati:

Questo stampa "Sono ambivalente nel dire qualsiasi cosa".

my $num1,$num2 = @_;mancano le parentesi. Pertanto, è equivalente a my $num1; $num2 = @_;. $num1non viene impostato su nulla.

Quindi $num1non è mai maggiore di zero. La parte del mondo dei pesci segreti nascosta dallo schermo è, err, un'aringa rossa, in modo che la gente pensi di aver trovato il "trucco".

Inoltre, l'operatore ternario è un valore l in Perl: in 1 ? $a = 1 : $b = 2realtà significa (1 ? $a = 1 : $b) = 2. Il che significa che ($a = 1) = 2viene valutato, impostando $asu 2. Contrariamente alle apparenze, viene assegnata la seconda stringa $num1.

Nel caso ti stia chiedendo, //è l'operatore definito. Se il sub restituisse un valore indefinito, la stringa "Stuff did not happen."verrebbe stampata. Ma in realtà non succede. Era solo per dare alla gente un'altra opzione.

punteggio:

Totale corretto: 5

Totale ipotesi: 30

Punteggio: (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
Emette, sono ambivalente nel dire qualsiasi cosa.
Marin il

10
Esso stampa This is a secret fish world. Carp cannot be repressed!.
ugoren,

13
Non essendo un perl guru questo dovrebbe stampare Hello, world!.
Alexander,

2
Bene, è tutto ragazzi. Non mi occuperò mai più di Perl.
Mr. Llama,

3
@ContextSwitch e @aidan, l'operatore ternario è un valore l in Perl. 1 ? $a = 1 : $b = 2in realtà significa (1 ? $a = 1 : $b) = 2. Il che significa che ($a = 1) = 2viene valutato, impostando $asu 2. Inoltre, come sottolineato da Primo, my $num1, $num2 = @_;non fa quello che ti aspetti perché mancano le parentesi.

14

PHP 52%

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

(Copiato letteralmente da qui )

Spiegazione e punteggio

La risposta corretta è cavallo . Questo non è un trucco o un gioco di prestigio. Stranamente, è così che l'operatore ternario è definito in PHP.
3 hanno scelto la risposta corretta: cavallo ,
16 persone hanno scelto il treno che è letteralmente corretto in ogni altra lingua mai inventata, tranne PHP.
25 risposte totali, con un punteggio di (16 - 3) / 25 = 52%


5
piedi
Wim

15
stampe train.
SteeveDroz,

3
stampa "cavallo".
Jonathan,


1
Ed è per questo che dovresti quasi sempre usare la parentesi per indicare l'ordine delle operazioni, anche se pensi di non averne bisogno.
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();
}

Soluzione

Il punto di questo codice è indurre l'utente a pensare che un carattere di nuova riga verrà stampato tra il testo "Hello" e "World". Si noti che il primo parametro su main è denominato cout. Poiché, nell'ambito di main, cout è un numero intero, l'operatore << esegue effettivamente un'operazione di spostamento a sinistra con un parametro di '\ n', anziché stampare una nuova riga. La funzione di stampa è lì principalmente per distogliere l'attenzione dai parametri di input in main, ma anche per consentire l'utilizzo di std :: cout senza aggiungere il prefisso dello spazio dei nomi.

Punto

Per gentile concessione di Alvin Wong

  • Totale 38 risposte:
  • 12 pensato HelloWorld(considerando che Minitech e Zeel sono uguali)
  • 23 pensato Hello\nworld 3 pensato qualcos'altro.
  • Il punteggio è (23 - 12) / 38 = 28,9%

23
Stampa "Hello" in una riga e "World" nella successiva.
Redtuna,

2
Stampa "HelloWorld". Inserisce 1024 coutse chiamato senza parametri.
Alexander,

9
Stampe HelloWorld.
Ry

1
Stampa HelloWorld. Ed esegue uno spostamento sinistro leggermente saggio sull'intero "cout".
zeel

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

10

Rubino, 100%

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

Risposta corretta:

Stampa "principale" senza newline. Spiegazione: In Ruby, non è possibile chiamare un lambda utilizzando la normale sintassi tra parentesi. Invece, display () viene interpretato come il metodo incorporato di tutti gli oggetti: o.display stampa o.to_s sull'output standard. I metodi chiamati senza un oggetto sono interpretati come metodi di "main", un oggetto che include il modulo Kernel.

Punteggio: 3 della stessa risposta sbagliata, nessuna altra risposta.


3
Stampe "Ciao, mondo!"
3Doubloons il

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

8

Python, -28.13%

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

print x

Ciò viene stampato 11perché il elseblocco, che appartiene a while, viene eseguito dopo la chiusura del ciclo.

  • Numero massimo di ipotesi false: 8
  • Supposizione corretta: 17
  • Totale ipotesi: 8 + 17 + 7 = 32

Punteggio: (8 - 17) / 32 = -28.13%


7
Errore a causa di rientro mancante inelse:
Alexander

16
Stampa 11su una riga.
Bakuriu,

6
Questo stampa 10.
copia il

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

8

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

Il programma stampa:

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

Valutazione: Totale opinioni: 22 12 corrette 3 + 1 + 6 sbagliate [per la risposta di Bakuiru, direi che era vicino ma ancora errato poiché os.name è una stringa (os.uname è una funzione)]

Valutazione basata su tale presupposto e sulla mia comprensione del sistema di valutazione: massimo errato = 6 corretto = 12 punteggio = (6-12) / 22 = -27%


11
Stampe What is your name: [operating system name], What is your quest: Seek and find the holy grail, What is your favourite color: bluesu righe separate. Ovviamente [operating system name]viene sostituito dal nome attuale.
Volatilità il

3
Consente di visualizzare l'ultima linea 3 con valori name = "Robin", seek = "Seek and find holy grail"e favorite_color = "red", oh, no. blue! (AAARRGGGHHH!)
SteeveDroz,

5
Stampa qualcosa di simile What is your name: <function os.name at 0x....>ecc.
Bakuriu,

Uscite What is your name: Robin, What is your quest: Seek and find holy graile What is your favorite color: bluesu righe separate.
Rory O'Kane,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

7

Pitone

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

modificare:

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

l'output corretto è "2 is company" su Python 2, "3 is a crowd" su Python 3.


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

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

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

5
Dannazione del metodo speciale dannato! :)
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;
})();

Puoi eseguirlo qui quando sei pronto (prima prova a indovinare!). Se scorri abbastanza in basso nel pannello JS, vedrai il codice con una breve spiegazione.

Risposta corretta:

Dopo aver chiesto all'utente di inserire un numero, entrerà in un ciclo infinito e visualizzerà avvisi "Calcolo dei risultati ..." fino a quando non viene superata la dimensione massima dello stack di chiamate (sebbene l'esempio jsfiddle si interrompa dopo circa 20 volte). Tuttavia, se viene inserito un punto e virgola dopo la parentesi graffa di chiusura della funzione sayResult, funzionerà come mgibsonbr descritto nei commenti.

punteggio:

  • Buone risposte: 9
  • Falso parere più popolare: 2
  • Risposte totali: 15

Richiede un numero con la domanda Please enter a number:e restituisce la risposta seguita da true.
SteeveDroz,

8
si blocca in un ciclo infinito spuntando "Calcolo dei risultati" all'infinito
SeanC

Richiede un numero, avvisa due volte "Calcolo dei risultati", quindi avvisa "Questo è un numero _"
mgibsonbr

1
Emette That's a big numberdopo un ritardo pari al numero immesso in ms.
Gieron,

A seconda del browser e / o della configurazione del DOM (sono veramente nuovo su JS), genera il nome della funzione che viene chiamata al caricamento della pagina.
Kevin,

6

Javascript

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

Risposta: avvisaHello . Il concatmetodo non modifica l'array: restituisce un array che contiene la concatenazione dell'array su cui è chiamato e qualsiasi altro argomento fornito.

15 corrette, 26 sbagliate, 41 risposte in totale e il punteggio è (26-15) / 41 = 11/41 = 26,83%


25
AvvisiHello, world!
SteeveDroz,

14
AvvisaHello
Volatilità il

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
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

Nota: supponiamo che questo sia Python 2.xe non Python 3.


Quando eseguito, questo codice ha prodotto un UnboundLocalError: local variable 'True' referenced before assignment.


1
Aumenta aSyntaxError
Volatilità il

Non dovrebbe essere False, True = True, False?

È quello che è. (in entrambi i casi, penso che in questo caso non faccia alcuna differenza)
TerryA

4
Questo stampa True.
WolframH

1
Alza un UnboundLocalError.
Bakuriu,

5

Giava

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

Primo tentativo di codegolf ...

buona risposta: stampe Some ungodly gibberish and then some more.e una nuova riga

Valutazione:

  • Numero massimo di ipotesi 6
  • Numero totale di ipotesi 11
  • numero di ipotesi corrette 5 (0 se sei in modalità pedanitc)

Punteggio: 9% (55% in modalità pedante)


5
StampeSome ungodly gibberish and then some more.
box_box

6
Stampa Some ungodly gibberishcon una nuova riga
MrZander

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
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);

Questo è il mio primo codice golf.

La risposta corretta è stata: "qualcosa tra 55 e 110". Questo perché ogni volta che viene eseguita l'istruzione "sum + = i", utilizzerà il valore corrente di i. Questo codice potrebbe anche essere eseguito dopo che il ciclo for è terminato , a quel punto ho il valore 11. Questo rende il valore più alto possibile 110 (e puoi assicurarti di vederlo se rallenti il ​​lambda nei tuoi test). Il valore più piccolo possibile è sum (1..10), che è 55.

  • Buone risposte: 0
  • Solo approssimativamente buone risposte: 5
  • Numero di volte in cui è stata selezionata la risposta più popolare: 5
  • Risposte totali: 8

punteggio: a rigor di termini, nessuno ha capito bene, quindi il punteggio dovrebbe essere (5-0) / 8 = 62,5%. Se siamo disposti a contare "approssimativamente buono" come risposta corretta, il punteggio è (5-5) / 8 = 0%


4
Stampa un numero indeterminato da 55 a 100, inclusi.
Ry

Stampa solo 100.
Kevin,

1
Stampa un numero 'casuale' tra 0 (incluso) e 110 (incluso)
fjdumont

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

Sono contento che la maggior parte delle persone abbia capito per lo più nel modo giusto - presumibilmente abbastanza giusto da sapere che non faranno questo errore nel loro codice!
Redtuna,

4

Python, -83.3%

Risposta: stampa a < bse gli input sono uguali, a = bse il primo è più grande e a > bse il secondo è più grande.

a = input()
b = input()
print 'a', '<=>'[cmp(a, b)], 'b'
  • Buone ipotesi: 11
  • Stesse cattive ipotesi: 1
  • Totale ipotesi: 12

Spiegazione:

cmp(a, b)restituisce 0se entrambi gli argomenti sono uguali, 1se il primo è più grande e -1se il primo è più piccolo, motivo per cui viene stampato il simbolo di confronto errato.


7
Stampa a = b se a> ba <b è a == b, oppure a> b se a> b
Foon

stampa a = bper input a == b, a < bper input a> b e a > bper input a <b
wim

2
Stampa a = bse a> b, a < bse a == b, a > bse a < b. (Questo è probabilmente il significato di @Foon.)
terremoto del

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

1
Penso che questo sia meglio di quanto dimostra il punteggio. Se non fossi stato in Error-Finding-Mode, forse non l'avrei trovato.
WolframH

4

PHP, 100%

La prima volta che pubblichi su code gulf, speriamo che questo non sia male.

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

l'output corretto è 'hellohelloworld'

il punteggio è (10 - 0) / 10 = 1 = 100%


9
Stampe hello world.
terremoto del

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

Oh ahah Darn PHP.
Ry,

'one' == 0=> true. Abbastanza intelligente.
primo

4

Perl: 100% (4-0) / 4

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

Questo programma stampa "3" senza una nuova riga. Perl analizza queste istruzioni come

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

quindi solo il (1+2)viene passato come argomento a print.


3
Stampe 9seguite da una nuova riga
3Doubloons

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

3

C #

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

3
Stampa la somma dei valori ASCII di ogni lettera (500)
3Doubloons

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

Ad essere sinceri, la prima volta che l'ho visto ho pensato che avrebbe stampato "Hello", ma poi ho fatto una doppia ripresa.
Redtuna,

3

CPython

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

l'output corretto è 'Hello'

punteggio (14-3) / 19 == 57.9%


13
Non stampa nulla.
TerryA

1
Stampe Hello\nWorld!.
Bakuriu,

2
Stampe Hello. (Attuazione dipendente.)
WolframH

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

3

C (punteggio: 4,45%)

Indovina bene: 7 Indovina
massimo: 6 + 2 = 8
Indovina totale: 6 + 7 + 3 + 2 + 4 = 22

Soluzione: ??/ è una trigrafia \, quindi la nuova riga viene salvata e la scanfriga viene commentata. Pertanto il programma funziona per sempre, stampando Guess a number between 1 and 10:. I commenti sono una citazione di 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, come compilare ed eseguire:

gcc test.c -trigraphs


5
I commenti sono solo distrazioni. Il programma è "Indovina il numero casuale da 1 a 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)senza chiedere input
pascalhein,

2
Qualcosa di malvagio è nascosto nei commenti come sembrano C ++.
Alexander,

1
Alla fine, stampa "Hai indovinato!", E una nuova riga, quindi termina.
Kaz Dragon,

4
Il commento malvagio ha qualcosa a che fare con le trigrafi.
shiona,

3

Giava

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

La risposta

Stampa Padded value:(con una nuova riga).

Il formatmetodo String è static, con il formato passato come primo parametro. Vale a dire la chiamata sopra è equivalente a:

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

Numero di risposte valide: 2 Risposte errate: 9

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


8
Questo stampaPadded value: - 0012\n
copia il

1
Questo stampa "Valore imbottito:" seguito da un carattere di nuova riga.
Alvin Wong

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

3

C

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

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

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

Non dimenticare il tuo asciugamano.


15
Stampa

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

Ho appena notato il tuo puzzle. Avrei sbagliato xP Sono un programmatore Java / C #, quindi questa è la mia scusa ...
Kevin,

3

C ++

#include <cstdio>

int main()
{
    int f;

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

    return 0;
}

Punteggio = (1 - 6) / 7 = -0.71428571428571 = -71.428571428571%


5
Questo non fa nulla.
SteeveDroz,

Non compilare.
f.ardelian,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

2

JavaScript

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

13
Avvisa Z = false.
SteeveDroz,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

2

Pitone

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

print greeting().lower()

l'output corretto è 'hell0 w0rld'

punteggio (8-14) / 22 == -27.3%


7
Stampe: ciao mondo
TerryA

14
Stampehell0 w0rld
SteeveDroz,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

2

R: 100%

Non così fantasioso, ma potrebbe confondere alcune persone:

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

Quale pensi sia il risultato?

Modifica :

La risposta era 20. A causa della mancanza sdi stringAsFactors(anziché di stringsAsFactors), l'argomento non viene riconosciuto, quindi la funzione crea una nuova colonna chiamata stringAsFactors. A causa del riciclo dei vettori, la colonna contiene 10 volte TRUEche vengono convertite in 1s nella somma, quindi un totale di 20 e non 10.

Questa risposta non è stata data nei commenti. Sono state fornite 3 risposte (tutte dicendo 10più o meno). Quindi un punteggio del 100%, immagino.


Restituisce il valore 10.
SteeveDroz,

1
Inizialmente pensavo che sarebbe tornato 10. Subdolo ... tralasciando che una "s" cambia davvero le cose ...
Dason,

1
@Dason Ora mi rendo conto che sopprimere il secondo sarebbe stato ancora più subdolo: si potrebbe presumere che la corrispondenza parziale sarebbe corretta per questo, ma si scopre che non lo è.
plannapus,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,

100%! Congratulazioni!
Redtuna,

2

Tcl

Ispirato da Ugoren

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

Siamo spiacenti, ho dimenticato una stringa di esempio. Ok, corri come

./charfilter.tcl "Ciao e arrivederci, mondo!"

modificare Soluzione corretta: non filtra affatto. ( 6x )
Risposta errata massima: 4x
Risposte totali: 10
Punteggio: -0.2


5
Stampa solo il suo argomento e in realtà non filtra.
Marin

3
esso stampa il suo argomento, senza " ", "&", "\".
Pascalhein,

Questa è la fine del gioco , per favore votati con i commenti che sono sopra questo. Modifica i tuoi contenuti e aggiungi la buona risposta, il numero di buone risposte, il numero di persone che hanno risposto principalmente alla stessa cosa, il numero totale di risposte e il tuo punteggio . Non dimenticare che un 2 accanto a un commento significa 3 risposte. Commenta liberamente sotto questo.
SteeveDroz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.