Ciao mondo con una svolta


17

Il tuo obiettivo : scrivere un pezzo di codice che risulti nel classico risultato di "Ciao, mondo!" in fase di stampa su STDOUT o equivalente.

Regole : il codice deve essere interamente in stampa ASCII. Tutto il codice deve essere funzionale: la rimozione di ogni singolo carattere di conteggio deve modificare il risultato o impedire il funzionamento del codice. Tutte le variabili devono essere utilizzate dopo l'assegnazione. I letterali di caratteri e stringhe devono essere necessari all'output, ovvero la sostituzione di qualsiasi letterale di carattere o di qualsiasi carattere all'interno di un letterale di stringa con un altro carattere deve essere in grado di modificare il risultato (e non tramite l'effetto della sequenza di escape - sostituire il carattere con la barra rovesciata) o equivalente)

(NOTA: la regola finale è stata modificata in)

Punteggio : è qui che diventa interessante. Il punteggio più alto vince secondo il numero di caratteri, secondo le regole tipiche di bowling. Ma l'uso ripetuto dei personaggi comporterà detrazioni puntuali. In particolare ...

  1. L'uso ripetuto di qualsiasi carattere alfanumerico (az, AZ, 0-9) comporterà una detrazione di 3 punti per ripetizione (il primo utilizzo non comporta una detrazione).
  2. L'uso ripetuto della punteggiatura di base ([!? .-, ": ';]) - comprese le parentesi - comporterà una detrazione di 2 punti per ripetizione.
  3. L'uso ripetuto di altri caratteri ASCII {`~ @ # $% ^ & * _ + = | \ /> <} - comprese le parentesi graffe - comporterà una detrazione di 4 punti per ripetizione.
  4. L'uso ripetuto di spazi, tabulazioni e newline comporterà una detrazione di 1 punto per ripetizione. Cioè, solo il primo utilizzo di uno spazio, una scheda o una nuova riga verrà conteggiato ai fini del totale.

Nota: i commenti non contano ai fini del totale, sebbene lo facciano i caratteri che segnano l'inizio / la fine di un commento. Ad esempio, in C / C ++, se hai /* This is a comment */, conterà due barre e due asterischi, ma nulla tra loro.

Alcuni esempi (nota: usare Julia come linguaggio di esempio) ...

print("Hello, world!");

Caratteri visibili totali: 22
Contiene spazio: +1
Alfanumerici ripetuti: -12 per llor Punteggiatura
ripetuta: -2 per "
Punteggio finale: 22 + 1-12-2 = 9

print("Hel",char(108),"o, wor",0x108,"d!"); # 0x108 makes a Uint8 that prints as ASCII

Caratteri totali: 43 (non conta alcun carattere dopo #, che è il carattere del commento)
Contiene spazio: +1
Alfanumerici ripetuti: -18 per rr1008 Punteggiatura
ripetuta: -24 per () "" "" ",,,,,
Finale punteggio: 43 + 1-24-18 = 2

xy=STDOUT
m="Hello, world!"
print(xy,m);

Caratteri visibili totali: 37
Contiene Newline: +1
Contiene Spazio: +1
Alfanumerici ripetuti: -18 per xilora Punteggiatura
ripetuta: -4 per ",
Altri ASCII ripetuti: -4 per =
Punteggio finale: 37 + 1 + 1-18-4 -4 = 13

Un paio di pezzi di codice non validi ...

x=2;print("Hello,world!")  

Problema: xè assegnato, ma non utilizzato.

print("Hello,"*" world!")  

Problema: *non è necessario, il risultato sarà lo stesso senza di essa.

k=1
if k>0
  print("Hello, world!")
else
  print("abcghjmquvxyzABCDEFGIJKLMNOPQRSTUVWXYZ_+*-&|")
end  

Problema: il secondo printcomando non verrà eseguito. Inoltre, la rimozione dei caratteri tra virgolette nel secondo printcomando non cambierà l'output.

x="Hello, world!";
print(x)  

Problema: la rimozione di newline non cambierà il risultato o causerà errori (in Julia, il punto e virgola è necessario solo se più comandi sono sulla stessa riga, altrimenti elimina solo il valore restituito).

print("Hellos\b, world!")  

Problema: il scarattere non influisce sul risultato, poiché viene cancellato da \b. Questo è accettabile se eseguito tramite code ( "Hello",char(100),"\b, world!"), ma non può essere eseguito tramite valori letterali di stringa o caratteri letterali di caratteri.

Pratico calcolatore del punteggio - http://jsfiddle.net/4t7qG/2/ - grazie a Doorknob



1
Questo sembra rilevante per la tua discussione meta.codegolf.stackexchange.com/questions/777/…
Martin Ender

3
Ho creato un JSFiddle in cui puoi inserire il tuo codice e questo determinerà automaticamente il tuo punteggio. Saresti d'accordo con me modificando un link ad esso nel post?
Maniglia della porta

1
@Dennis - se il tuo programma produce una nuova riga a causa del comando, nessun problema (ad esempio, println in Julia stampa e quindi aggiunge una nuova riga alla fine). Ma non dovrebbe far parte della stringa.
Glen O

1
@ACarter - sostanzialmente sì. Ma le restrizioni e le detrazioni lo rendono non banale.
Glen O

Risposte:


17

Perl - 96

(Abbastanza buono, dato il punteggio massimo teorico 97)

s{}[Hel0o, w3$=d!];y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(
    6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)+print

(Nota che la seconda riga inizia con un \tcarattere di tabulazione effettivo )

Il codice è lungo 98 caratteri e contiene ogni carattere ASCII esattamente una volta, più un extra - .
98 - 2 = 96

Non ci sono letterali stringa qui, ma la rimozione di qualsiasi singolo carattere interrompe il programma.

Deobfuscation

Ci sono 3 dichiarazioni in questo programma (beh, in realtà 2 ma ho abusato +come una sorta di separatore di istruzioni)

  1. s{}[Hel0o, w3$=d!]
    Questo è un caso molto allungato dell'operatore sed. È più comunemente scritto come s/a/b/, o s:a:b:, ma perl consente molta più fantasia qui: s(a)(b) s(a)^b^ s(a)[b]e persino s qaqbq.
    Sostituisce una stringa vuota (interno {}) con Hel0o w360d!(interno []) ( $=interpola di 60default). A causa della mancanza di un ~=operatore, opera $_.

  2. y<"#%&'*.124578:?@BCDEFGIJKLMNOQ/-9>(\n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cAk-u)
    Anche questo è un caso molto esteso, ma di un troperatore, che è anche chiamato y( y< >( )).
    Diamo un'occhiata alla tabella di sostituzione:
    " # %&'*.124578:?@BCDEFGIJKLMNOQ /-9
    \n\t6PRSTUVWXYZ^_`abfghjmqvxz|~\cA k-u
    ho spostato alcuni caratteri in modo che la stringa esistente non venga spezzata. L'unica parte effettivamente funzionante qui è /-9-> k-u. Sostituisce 0con l, 3con oe 6con r.
    Ancora una volta a causa della mancanza ~=dell'operatore, funziona su $_
    Quindi ora abbiamo la frase completa nella $_variabile.

  3. print
    La mancanza di argomenti rende la stampa solo la $_variabile.


Non conosco abbastanza Perl per commentare questo: qual è l'insieme di caratteri tra <e +?
Glen O

Solo @GlenO /-9 e k-uvengono effettivamente utilizzati per trasformare la stringa. Il resto è una spazzatura di dimensioni uguali . Se rimuovi solo un carattere, i set non saranno allineati e il programma non mostrerà "Ciao, mondo!" più.
mniip,

In tal caso, in che modo viene eseguita la "spazzatura"? Cioè, in che modo è funzionale? Se è solo il filler che viene saltato dal codice, allora equivale al codice non in esecuzione all'interno di un condizionale.
Glen O

3
@GlenO Non lo è. Per la specifica: la <...> removal of any single counting character must change the result or cause the code to not function.rimozione di 1 carattere ovunque lo rompe. Puoi farlo funzionare rimuovendo 2 caratteri, ma questo non è nelle regole.
mniip,

2
All code must be functional. Stai chiaramente piegando le regole, almeno. Non sto dicendo "infrange le regole", ma è sicuramente discutibile.
Glen O

7

Questa risposta è stata creata prima dell'aggiunta della regola sui letterali di stringa e non partecipa al concorso.

#include <iostream>
int main(){std::cout<<56+"  !$%^&*?12347890-_QWERTYUIOPASDFGJKLZXVBNM,.qypfghjk:zvbHel\x6Co, world!";}

È completamente legittimo. : P Se rimuovi qualsiasi carattere da quella stringa, verrà stampato ello, world!.


Includere il punteggio del codice nella risposta.
Programma FOX il

Inoltre non cambierà il tuo punteggio, ma gli spazi intorno <<devono essere rimossi.
Martin Ender,

1
Hmmm ... mentre applaudo la tua risposta, ha principalmente rivelato un piccolo buco nelle mie restrizioni. Ti darò un voto, e sono felice che gli altri facciano lo stesso se gli piace, ma modificherò in una restrizione aggiuntiva.
Glen O

1
OK, oltre al mio precedente commento, ho ora aggiunto una restrizione che afferma che i valori letterali di stringhe e caratteri devono essere rilevanti: la sostituzione dei caratteri al loro interno deve essere in grado di modificare il risultato. Ciò consente alle if 'x'>'w'tecniche, ma i blocchi "k \ bH" danno come risultato "H", per esempio. Sentiti libero di contribuire con una seconda risposta dopo la restrizione aggiunta.
Glen O

4

CJam, 94

{'H"EJO, WoRLD!"el96A+c/~_-3=0$@}"# 
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"254b87%*

Provalo online! Si noti che dovrebbe esserci un tabulatore subito prima dell'alimentazione di linea. A SE non piacciono i tabulatori, quindi dovrai inserirlo manualmente.

  • Lunga 100 caratteri
  • aln ripetuto: -0 ()
  • punteggiatura ripetuta: -6 ("" ")
  • ripetuto altro: -0 ()
  • spazi bianchi ripetuti: -0 ()

Punteggio totale: 94

Ho usato il seguente codice per verificare che nessuno dei caratteri all'interno della stringa possa essere rimosso:

"#  
`&^<>|;:?.()[]\1aBCdfFgGhiIjkKmMnNpPqQrsStTuUvVwxXyYzZ"
:A,,{_A\<A@)>+254b87%}%`

Stampa un array che mostra il numero di volte Ciao, mondo! verrebbe stampato se il carattere corrispondente all'indice fosse rimosso.


Quando lo eseguo nel tuo link, produce "Ciao, mondo!" sei volte di seguito. Inoltre, cosa sta facendo la serie di personaggi?
Glen O

Immagino che la newline sia un errore: rimuoverlo per farlo funzionare.
Glen O

Problema di copia e incolla. Dovrebbe esserci un tabulatore proprio prima dell'LF. Sembra che SE non mi permetta di farlo ... La stringa è considerata un numero base-254 ( 254b). Il modulo del risultato finale 7 dovrebbe essere 1, quindi il blocco di codice precedente viene eseguito una volta. Avrò bisogno di un modulo per rendere necessario ogni personaggio.
Dennis,

Bene, dopo aver aggiunto la scheda mancante (che "corregge" il codice), rimuovendo il Z, il T, o probabilmente alcuni altri caratteri non cambia il risultato.
Glen O

Avevo orribilmente frainteso una parte della tua domanda. Ora è riparato.
Dennis,

3

Ruby, 28 41

Giusto per iniziare le risposte con una soluzione nello spirito della domanda:

print"He#{?l*2}o, "+'world!'if[$`&(9<=>6)^7|~8-5/3.1%0x4]

Punteggio (penso di aver capito bene):

  • 57 caratteri di lunghezza
  • alnum ripetuto: -12 ( orli)
  • punteggiatura ripetuta: -4 ( "')
  • ripetuto altro: -0
  • spazi bianchi ripetuti: -0

Mi sta benissimo, per quanto riguarda il punteggio. Non è necessario includere sanzioni che non si applicano, ma nessun danno nel includerle.
Glen O

L' .ingresso 3.1può essere rimosso senza problemi. Come può xin 0x4o -in 8-5.

3

PHP, 1 (sì, un punto!)

Utilizzo di personaggi magici per generare un checksum, che in forma binaria corrisponde a "Hell", "o, w", "orld" e "!".

Di solito mi piace trovare delle lacune, ma questa volta ho deciso di giocare con lo spirito e l'intento del concorso. Ogni personaggio e la sua posizione sono essenziali per l'output. Le uniche posizioni che è possibile sostituire sono i nomi delle variabili che non sono valori letterali, lo spazio bianco tra phpe foreachche PHPtratta come equivalente e l'uso di 'vs "quale PHPtratta come simile.

<?php foreach(array('_MC:`~+V4@SbHR/l[J','dN#UB`5!Rv^NG@D}','9gm6L&-kuD','8OM97g.q]XQ0')as$j)print(hash("crc32",$j,1))?>

Cordiali saluti, queste sono alcune altre stringhe magiche e hash di interesse:

E.D}S:  Hell
9UDIRQ: Hell
N\7&*`%:    orld
UWX[E^O:    orld
mAHzDEb:    !   
uLJ7Ck&:    Hell
B+bG5mYJ:   Hell
:OvMzuOR:   !   
TgYR9g!6k:  o, w
NkFN`!8mI:  o, w
N#VA\j~}J[: Hell
vEl*]@0XQ5: o, w
9gm6L&-kuD: orld
*}{Xg@HN`\: !   
Pj@Y44uA6YJ:    Hell
|7OX0VF8gv}:    !   
DLRJAjgMj}\:    !   
!0bT*D}O4Lw:    orld
YGN97^v7ZY`:    Hell
++~bL/kP:|]W:   o, w
8OM97g.q]XQ0:   !   
l^m-DqZ^g[&+:   !   
Ewu]Rv~*DHQ7:   Hell
JIqjgF|S!\`8l:  Hell
b4l!MEG7vTu6/:  Hell
+B:zEq*J\k-Cm:  !   
_}E7wZD76^`Y9AU:    orld
q:Nq-~+_S7~N9Hz:    !   

Le funzioni di codice ancora se mi tolgo la \t, \no lo spazio. Non è un esperto di PHP, ma ;sembra anche facoltativo.
mniip,

@mniip - Modifiche apportate. Non sapevo che il punto e virgola fosse facoltativo in alcuni casi.

3

Befunge-98 , 97 punti!

"v!dlrow ,h
B[CDEFGIJkLMNOPH
$<QRSTUV@|5cg1fe':-%\64*ab+7_/89}{0  j2
WXYZK`.=#>]
s()impq	n 3~
Atuxz&;y^ ?

Provalo online!

La scheda è tra il qe il n.

Usa un trucco simile alla precedente risposta di Befunge per riempire le righe con i caratteri rimanenti, ma evita di usare caratteri duplicati nella sezione di esecuzione. La rimozione di uno qualsiasi dei caratteri non in esecuzione comporta il fuori posto delle parti in esecuzione, di solito finendo in loop infiniti o stampando l'output errato.

Come funziona

In realtà, l'unica parte in esecuzione assomiglia a:

"v!dlrow ,h
         k     H
$<      @|5cg1fe':-%\64*ab+7
         >]
        ^ ?

Innanzitutto usa una stringa di avvolgimento letterale da aggiungere , world!allo stack. Questo evita due" secondi.

$<      @|5cg1fe':-%\64*ab+7

Questo aggiunge Hello allo stack usando una varietà di metodi per evitare caratteri duplicati.$apre letteralmente lo spazio in eccesso causato dalla stringa di avvolgimento.

7+aggiunge 7 alla hfine della stringa letterale per creare il o . ba*46\%:calcola 111, il valore ASCII di le lo duplica.

'e aggiunge e allo stack.

f1g ottiene il personaggio a 1,15 che è il H

Quindi riutilizza il ,nella stringa per stampare l'intero Hello, world!. Il resto sono solo i cambi di direzione per raggiungere il finale @.


1

Ruby, 78

Mi sento più abuso di regole, mi sento, non sono sicuro esattamente quale sarebbe la patch. Prende una stringa lunga e controlla la somma del risultato, quindi qualsiasi cancellazione o modifica farà fallire il programma. Probabilmente potrebbe essere leggermente ottimizzato per rimuovere la duplicazione di alcune lettere e ottenere spazi bianchi.

puts('Hello, world!')if%["\#$&*+-/:;<>?@ABCDEFGIJKLMNOPQRSTUVWXYZ^_`abcghjknqvxyz{|}~123].sum==4980

3
Il problema è che tutto ciò che è incluso e incluso ifpuò essere rimosso.
Seequ,

@TheRare - niente di sbagliato in questo, purché iffunzioni effettivamente e le cose dopo obbediscono ancora alle regole.
Glen O

@GlenO Ma non è conteggiato come "codice rimovibile"? Funzionerebbe e basta puts('Hello, world!'). Penso che le regole debbano essere chiarite se questo è legittimo.
Seequ,

@TheRare - col senno di poi, probabilmente avrei dovuto usare un "un sottoinsieme del codice non dovrebbe essere in grado di produrre lo stesso output", ma non penso che dovrei continuare a cambiare le regole. Allo stato attuale, fintanto che il codice è funzionale e non arbitrario e segue le altre regole, è legittimo. Per lo meno, questo metodo di soluzione non è realizzabile nella maggior parte delle lingue (la modifica che ho fatto ha chiuso una scappatoia che funziona nella maggior parte delle lingue).
Glen O

@GlenO Sei il giudice. Chiedimi di eliminare questi commenti se ritieni che non siano necessari.
Seequ,

1

PHP, 2257

Scappatoia: la barra rovesciata è stata omessa dalle specifiche e dal calcolatore del punteggio!

Questo codice conta il numero di occorrenze di barre rovesciate in ciascuna stringa e stampa un equivalente ASCII. La sostituzione di una barra rovesciata con un altro carattere o l'eliminazione di una barra rovesciata provoca un errore di analisi o modifica il risultato.

Una caratteristica accurata delle barre rovesciate PHPè che devono essere sfuggiti, in modo da raddoppiare il punteggio automaticamente! Puoi ri-raddoppiare, triplicare, ecc., Il punteggio moltiplicando il numero di barre rovesciate, ma non volevo essere avido e penso che potrebbe superare i limiti di ciò che puoi inserire.

<?php foreach(array('\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\','\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\')as$x)print(chr(substr_count($x,"\\")))?>

Chiaramente non è altro che un refuso nella descrizione, non una scappatoia. Inoltre, lo sapevi già. La descrizione dice esplicitamente "altri caratteri ASCII". Quando leggerai questo, sarà stato modificato per includerlo.
Glen O

In particolare, la barra rovesciata era alla base della domanda, ma non mi ero reso conto che lo aveva trattato come una sequenza di fuga.
Glen O

Questo non è un cambiamento nelle regole, sta correggendo un errore di battitura minore. La barra rovesciata era nelle regole, semplicemente non veniva visualizzata (per vederlo da solo, fai clic sul pulsante "modificato", quindi fai clic su "markdown side-by-side"). E gli altri non stanno sfruttando le lacune, stanno sfruttando le caratteristiche delle loro lingue.
Glen O

1

Befunge - 87

"dlrow ,olleH"bk,                                                                   v
!#$%&'()*+-./0123456789:;  <=>?ABCDEFGIJKLMNOPQRSTUVWXYZ[\]^_`acfghijmnpqstuvxyz{|}~@

La prima riga vale quattro punti a causa di tutta la ripetizione, ma non ci sono caratteri duplicati sulla seconda riga. L'unica stringa letterale in questo codice è dlrow ,olleH, che viene invertita e stampata come output. La rimozione di un carattere qualsiasi disconnetterà il valla fine della prima riga dal@ fine della seconda, impedendo al programma di terminare mai. Se lo vstesso viene rimosso, il codice entrerà in un ciclo infinito stampando l'output corretto.



0

Acc !!, -138 (e sì, è negativo 138)

Anche se questo potrebbe non essere esattamente il miglior punteggio che io abbia mai ottenuto in PPCG, dubito che possa essere più alto di questo in Acc !!

108
Write 72
Write 101
Count i while i-2 {
	Write _
}
Write _+3
Write 44
Write 32
Write 119
Write 111
Write 114
Write _
Write 100
Write 33

Provalo online!

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.