Il complemento cat


24

Obiettivo Scrivere un programma completo che generi (a STDOUT o l'alternativa più vicina) una stringa di testo arbitraria, lunga non più di 64 caratteri. Abbastanza semplice, vero? Bene, ecco il trucco: non puoi usare nessun personaggio presente nell'output della risposta precedente. Esatto, nessuno di loro.

Quindi, stai cercando di essere l'ultima risposta per un totale di tre giorni. Cioè, non vuoi che nessuno risponda alla domanda nelle 72 ore successive alla pubblicazione della domanda.

Alcune regole

  • La risposta (e l'output) può contenere solo caratteri ASCII stampabili, nuove righe (ritorni a capo inclusi) e schede.
  • L'output della tua risposta potrebbe non essere uguale all'output di un'altra risposta. Due output sono uguali se e solo se usano esattamente gli stessi caratteri.
  • È possibile utilizzare qualsiasi lingua non specificatamente creata per questa sfida, anche se è stata creata dopo la sfida. (Questa lingua, ovviamente, deve essere testabile.)
  • Non è possibile utilizzare alcuna lingua utilizzata in precedenza.
  • La tua voce potrebbe non includere commenti. Ovviamente puoi fornire un programma commentato extra.
  • Non puoi rispondere due volte di seguito.
  • Il programma deve avere almeno 1 byte.

Formato di iscrizione

La tua risposta dovrebbe apparire generalmente come la seguente:

# {Language}
Uses: `characters present in the output`

Does not use: `characters used in the previous output` from [previous submission, language](link-to-previous-submission]

    {program}

Outputs:

    {output}

Una spiegazione con la tua risposta è apprezzata.


3
Sono incredibilmente confuso su ciò che viene chiesto. Devo stampare una stringa di caratteri <= 64 e non riesco a usare i caratteri nell'output dell'ultimo invio?
Lynn,

1
@Mauris Sì, è corretto.
Conor O'Brien,

3
Ah ok; la parte dello "spazio dei personaggi" confonde davvero l'IMO. Quel termine non significa nulla ... Forse dovresti riscriverlo?
Lynn,

1
@question_asker Se nessuno può trovare una risposta per seguire la tua, vinci la sfida (e ottieni il segno di spunta verde). Ad esempio, se avessi scritto un programma che emettesse tutti i caratteri ASCII stampabili, sarebbe impossibile seguirlo (ignorando quelle lingue fastidiose che generano output per il programma vuoto).
ThisSuitIsBlackNon

1
@question_asker Il tuo codice non può contenere nessuno dei caratteri dell'output della risposta precedente ; l'output non può utilizzare lo stesso set di caratteri di qualsiasi output precedente. Se il codice per la prima risposta è fooe uscite bar, il codice per la risposta successiva non può contenere b, ao r; nessuna ulteriore risposta può emettere abr, arb, bar, bra, rab, o rba. (Sì, sono d'accordo che questo è stato molto confuso.)
ThisSuitIsBlackNon

Risposte:


2

Rubino

$><<'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" '

Non utilizza abcdefghijklmnopqrstuvwxyz{}\~_^[]|`dalla risposta precedente .

Stampa, e quindi utilizza ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", uno spazio e una nuova riga.


5

Pyth

Usi: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg.

Non utilizza: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`abcdefghijklnsm{|}~dalla precedente presentazione in Octave .

Codice:

pMCMryyTyyytytttT

Produzione:

()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg

C'è uno spazio lì dentro? Immagino che non ci siano schede o newline che non sono mostrate? Sembra che la prossima risposta debba essere una risposta per gli spazi bianchi (o almeno vicino) ...
Stewie Griffin,

Nessuno spazio bianco nell'output è mio; Non so se la lingua aggiunge una nuova riga
Lynn il

5

Brainfuck

usi: -.

Non utilizza: !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{| da CJam . Grazie a SuperJedi

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.-------------------------------------------------------------------------------------------.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.

Uscite:

; (){}[]"'

2
Questo potrebbe essere modificato per usare solo -e .. Questa è la mia proposta ai fini della sfida.
SuperJedi224,


2
Spiacenti, ho preso la usesparte per indicare che quelle erano le entità utilizzate nel codice. Dammi un dannato minuto prima di iniziare a usare i voti negativi.
Seadrus,

3

CJam

usi: 0123456789:;_bc

Non utilizza :,!GSaefgimnoprstuw da invio precedente, MATLAB

183185535513294435547695067785526290427932963043839368372854060721693597139131275368051870173845056551161192991350318233082749156998652_;128b:c

Uscite:

 !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{|

Bene, non posso batterlo.
Mutador,

3

Ottava

Usi: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_``abcdefghijklnsm{|}~e una nuova riga nell'output.

Non utilizza: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"dalla precedente presentazione in Microscript .

Codice:

[' ':'@','[':'`','{':'~',('@'+' '):('>'+'/')]

Produzione:

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

Spiegazione:

Questa è una raccolta di caratteri ASCII consecutivi. Il codice è equivalente a:

[char(32:64) char(91:96) char(123:126) char(96:109)]

Dove char(32:64)sono i caratteri ASCII da 32 a 64 (spazio a @). Per ottenere la parte alfabetica alla fine dell'output, ho dovuto aggiungere dei caratteri, poiché non potevo usare ae m. @+è uguale a 96 (``) e >+/uguale a 109 (m)


Come funziona?
Conor O'Brien,

@ CᴏɴᴏʀO'Bʀɪᴇɴ, spiegazione inclusa =)
Stewie Griffin,

3

Perl

Usi: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz}(con spazio)

Non utilizza: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~dall'invio precedente in Illeggibile

eval q!print uc q&} abcdefghijklmnopqrstuvwxyz&!and eval q}print q&0abcdefghijklmnopqrstuvwxyz&}and eval q&print length for qw!a bc def ghij klmno pqrstu vwxyzab cdefghij klmnopqrs!&

Uscite:

} ABCDEFGHIJKLMNOPQRSTUVWXYZ0abcdefghijklmnopqrstuvwxyz123456789

... mi viene in mente la vecchia battuta sulle scimmie che scrivono codice ...

È possibile eseguire il programma online.

Questo programma abusa delle strane funzionalità di Perl per scrivere codice praticamente in qualsiasi sottoinsieme di ASCII:

  • Le funzioni possono essere chiamate senza parentesi in alcuni casi (incerto sulle regole esatte)
  • q#text#dove #può essere quasi ogni personaggio è lo stesso di"text"
  • qw#word1 word2 word3# come sopra è uguale a ["word1", "word2", "word3"]
  • for anelli e altre cose possono essere aggiunti alle linee, eliminando qualsiasi punteggiatura

3

Javascript ES6

Risposta precedente: /codegolf//a/67406/39022

La sorgente non contiene !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ, spazio o newline.

alert`abcdefghijklmnopqrstuvwxyz{}\\~_^[]|\``

Produzione:

abcdefghijklmnopqrstuvwxyz{}\~_^[]|`

(Alfabeto minuscolo, parentesi graffe, barra rovesciata, tilde, carattere di sottolineatura, carati, parentesi quadre, pipe e backtick)


Ti credo media indietro barra invece che in avanti barra. Ma bella voce!
ETHproductions

@ETHproductions Hai ragione sulla barra rovesciata.
SuperJedi224,

2

Python 3

Usi: !CGaceilmnoprstw z.

print("Germanic Capitalization is awesome!")

Stampa semplicemente Germanic Capitalization is awesome!senza restrizioni. In bocca al lupo!


2

Microscript II

Risposta precedente: qui. Il programma non usa punto e virgola, spazio, parentesi, parentesi graffe, parentesi quadre, virgolette singole o doppie virgolette. Questo programma sarebbe molto più breve se non fosse necessario evitare le virgolette.

L'output include: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"e una nuova riga.

Programma:

97Kp98Kp99Kp100Kp101Kp102Kp103Kp104Kp105Kp106Kp107Kp108Kp109Kp110Kp111Kp112Kp113Kp114Kp115Kp116Kp117Kp118Kp119Kp120Kp121Kp122Kp""P65Kp66Kp67Kp68Kp69Kp70Kp71Kp72Kp73Kp74Kp75Kp76Kp77Kp78Kp79Kp80Kp81Kp82Kp83Kp84Kp85Kp86Kp87Kp88Kp89Kp90Kp123456789qh

Uscita esatta:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ"123456789"

1
E il Does not incudepo '.
Conor O'Brien,

2

MATLAB

Usi: !GSaefgimnoprstuwe newline.

Non utilizza: !CGaceilmnoprstw zdall'invio precedente, Python 3 .

[83,116,101,119,105,101,32,71,114,105,102,102,105,110,32,105,115,32,97,32,112,114,111,109,105,110,101,110,116,32,103,101,110,105,111,117,115,33,'']

stampe:

ans =

Stewie Griffin is a prominent genious!

2

Illeggibile

usi: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

Non utilizza: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgdall'invio precedente in Pyth

' ' ' '''' ' ' ' ' '''''' ' ' '''' ' ' '''' ' ' '''' ' ' '''' ' ' '''' "'" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" '" " ' ' ' '''''" " ' ' ' '''''" " ' ' ' '''''" " ' ' ' '''''" " ' ' ' '''''" "'" ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' "'"" ' ' ' '''''" " ' ' ' '''''" " ' ' ' '''''" " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' " ' '''" ' ''' "" ' ' ' ''''' "" ' ' ' ''''' "" ' ''' "" ' ''' "" ' ''' "" ' ''' "" ' ''' "" ' ''' "" ' ''' "" ' ''' "" '"" ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" " ' '''" ""

Uscite:

"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

Nel caso ti stia chiedendo, sì, programmare manualmente in questa lingua è doloroso, quindi ho creato questo script (in JavaScript) per generare il codice:

var program = `"`,
    output = "\"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`{|~";
for(var i = 1, c = 0; c < output.length; i++) {
  program = `'""` + program;
  if(i == output.charCodeAt(c)) {
    program = `'"` + program;
    c++;
  }
}
program;

Ho usato l'interprete Python per Illeggibile qui per eseguire il codice.


Avere uno spazio lì dentro renderebbe la vita difficile per il prossimo =)
Stewie Griffin,

@StewieGriffin È vero. È troppo tardi per modificarlo? xD TBH, penso che questa sfida possa durare ancora più a lungo perché ci sono molte lingue che hanno variabili preimpostate in lettere maiuscole o minuscole, quindi solo un carattere sarebbe una risposta valida. (Anche se non sarebbe troppo interessante e lo rende molto facile per la prossima risposta!)
user81655

1
Penso che sia troppo tardi adesso. Qualcuno potrebbe lavorare su una soluzione per esempio negli spazi bianchi, e improvvisamente l'aggiunta di uno spazio nell'output li renderà probabilmente infastiditi.
Stewie Griffin,

@StewieGriffin Sì, anche quello era il mio ragionamento.
user81655

1

GolfScript

Usi: spazio, nuova riga, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Non utilizza 0-9A-Za-z{o spazio dalla precedente presentazione in Perl .

Il codice:

'!'.!=('['.!=,>''+

L'output:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

E una nuova riga finale.

Provalo qui.

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.