Tre-Tre-Tre!


66

Scrivi un programma che produce un output in modo tale che:

  1. Compaiono almeno tre personaggi distinti.
  2. Il numero di occorrenze di ciascun personaggio è un multiplo di 3.

Ad esempio, A TEA AT TEEè un'uscita valida in quanto ciascuna delle 4 caratteri distinti, A, E, Te (space), si verifica 3 volte.

Naturalmente, una sfida sul numero 3 deve avere un terzo requisito. Così:

  1. Il programma stesso deve anche seguire i primi due requisiti. (Ciò significa che il tuo programma avrà una lunghezza di almeno 9 byte.)

Devi scrivere un programma completo, non una funzione. Assicurati di mostrare l'output del tuo programma nella tua risposta.

Inoltre, per mantenere le cose interessanti, sei fortemente incoraggiato:

  • di non utilizzare i commenti per soddisfare il requisito 3 se puoi aiutarlo
  • per produrre output che non è solo una stringa ripetuta 3 volte
  • per rendere l'output diverso dal programma stesso (per le lingue che possono generare automaticamente i contenuti del proprio programma, è possibile contribuire a questo wiki della comunità ).

Questo è . Vince il codice più breve in byte.


5
Le newline contano (come un personaggio distinto)?
Zeppelin,

4
Sono consentiti programmi composti interamente da letterali? (Ci sono molte lingue in cui 123123123funzionerà, come attualmente scritto.)

2
@zeppelin Sì, le newline contano come un personaggio distinto.
darrylyeo,

2
Ciò che intendo chiedere è: un programma può produrre ad es. abcabcabcCon una nuova riga finale?
ETHproductions

1
@ETHproductions Ah, capisco. No, non è permesso. Tre newline finali sarebbero comunque accettabili.
darrylyeo,

Risposte:


59

Brain-Flak , Flakcats , Brain-Flakue , Brain-Flak Classic , Miniflak e Fλak 18 byte

Comprovato ottimale!

((([()][()][()])))

Provalo online!

Spiegazione

Brain-Flak, Brain-Flueue, Miniflak e Fλak

   ([()][()][()]) Push -3
  (              ) Copy
 (                ) Copy

Questo stampa:

-3
-3
-3

(C'è una nuova riga finale)

Brain-Flak Classic

Brain-Flak Classic è la versione originale di Brain-Flak e presenta alcune importanti differenze rispetto al moderno Brain-Flak. In BFC [...]stampa il suo contenuto anziché negarlo.

   [()] Print 1
       [()] Print 1
           [()] Print 1
  (            ) Push 3
 (              ) Push 3
(                ) Push 3

Alla fine dell'esecuzione 3 3 3viene stampato il contenuto dello stack ( ).

Questo stampa:

1
1
1
3
3
3

(C'è una nuova riga finale)

Flakcats

Flakcats è abbastanza diverso dagli altri 4 fiocchi e sono sorpreso che questo funzioni in Flakcats. I tre operatori qui sono quasi gli stessi di quelli utilizzati da Brain-Flak.

La principale differenza in questo particolare programma tra Flakcats è l' (...)operatore che in Flakcats equivale a ([{}]...)Brain-Flak. Questo, tuttavia, non fa differenza per noi perché raccoglie zeri e quindi funziona in modo molto simile a Brain-Flak.

Ecco quel programma compilato in Brian-Flak:

([{}]([{}]([{}][()][()][()])))

Questo stampa:

-3
-3
-3

(C'è una nuova riga finale)

Prova di ottimalità in Brain-Flak e Miniflak

Questa non è una prova formale, ma piuttosto una prova informale che dovrebbe essere ampliata per essere resa più rigorosa

A causa delle restrizioni secondo cui i programmi Brain-Flak devono essere una stringa bilanciata e la lunghezza del programma deve essere un multiplo di 3 qualsiasi invio valido deve essere un multiplo di 6 di lunghezza. Ciò significa che qualsiasi soluzione inferiore a 18 deve essere di lunghezza 12.

A causa degli output che seguono newline, l'altezza finale dello stack deve essere un multiplo di tre o infrangeremo le restrizioni sull'output.

Qualsiasi invio valido di lunghezza 12 deve avere 2 tipi di parentesi graffe (avere meno infrange le restrizioni sul numero di caratteri distinti e più significherebbe più di 12 caratteri). Poiché il programma produce output, deve avere una spinta.

Questo ci lascia selezionare l'altro nostro set di parentesi graffe. Le opzioni sono:

<...>/<>

Questo fallisce perché abbiamo bisogno di generare "valore" per creare un numero diverso da zero, dobbiamo rinunciare a ()per crearne uno che rende impossibile spingere più di due volte.


[...]/[]

Questo non riesce per lo stesso motivo per cui l'ultimo fallito. Le parentesi quadre sono davvero pessime nel valorizzare. La []monade può creare valore ma prima dobbiamo spingere i numeri e poi non ci sono abbastanza parentesi da spingere tre volte.


{...}/{}

Questo è promettente, potremmo creare un loop e usarne uno ()per spingere più volte, ma purtroppo non è possibile.

Affinché il loop finisca ci deve essere uno zero nello stack ad un certo punto e per poter avere l'output corretto dobbiamo avere qualcosa di diverso da zero nello stack alla fine del programma. Poiché non abbiamo []<>lo zero alla fine del loop, dobbiamo essere uno zero implicito dal fondo dello stack. Ciò significa che il loop non può aggiungere nuovi numeri allo stack rendendolo inutile.


Poiché nessuna delle opzioni di controvento può creare un programma di lunghezza 12, non può esistere nessuno.

Poiché Miniflak è un sottoinsieme di Brain-Flak, qualsiasi programma Miniflak più breve sarebbe anche un programma Brain-Flak più breve e quindi non esiste.

Prova di ottimalità in Brain-Flueue

Brain-Flueue è un linguaggio scherzoso basato su Brain-Flak. I due sono così simili che i loro interpreti sono identici ovunque tranne che in due righe. La differenza tra i due è, come suggeriscono i loro nomi, Brain-Flueue archivia i suoi dati in coda mentre Brain-Flak archivia i suoi dati in stack.

Per iniziare abbiamo le stesse restrizioni sulla dimensione del programma creata da Brain-Flak, quindi stiamo cercando un programma di dimensione 12. Inoltre avremo bisogno di un (...)per creare qualsiasi output e un'altra coppia. le coppie <>e []non funzionano in Brain-Flueue per la stessa identica ragione per cui non funzionano in Brain-Flak.

Ora sappiamo che il nostro programma deve essere composto da personaggi ((())){{{}}}.

Tramite gli stessi metodi usati nella prova precedente possiamo dimostrare che ci deve essere un ciclo nel programma finale.

Ora qui è dove le prove differiscono, perché Brain-Flueue opera attraverso le code anziché impilare il programma può uscire da un ciclo con i valori sulla coda.

Per uscire dal ciclo avremo bisogno di uno zero nella coda (o di una coda vuota ma se la coda è vuota avremo lo stesso problema di Brain-Flak) questo significa che dovremo aprire il nostro programma ({})per creare il zero. Avremo bisogno di un push all'interno del loop per spingere il numero necessario di elementi in coda. Dovremo anche spingere un numero diverso da zero prima del loop in modo da poter entrare nel loop; questo ci costerà al minimo assoluto (()). Ora abbiamo usato più genitori di noi.

Pertanto, non esiste alcun programma Brain-Flueue per eseguire l'attività di 12 byte, e inoltre il nostro programma è ottimale.

Soluzione ottimale in Flakcats e Brain-Flak Classic

La seguente soluzione è ottimale in Flakcats e Brain-Flak Classic.

((([][][])))

Spiegazione

    [][][] -3
 (((      ))) push 3 times

Soluzioni alternative Brain-Flak a 24 byte

(<((<((<(())>)())>)())>)

Provalo online!

((<((<((<>)())>)())>)())

Provalo online!

((((((()()()){}){}){})))

Provalo online!


2
+1 anche per la prova.
HyperNeutrino,

3
+1 anche per il poliglotta, esp. non tutte le uscite sono uguali.
Shieru Asakoto,

27

Gelatina , 9 byte

**‘‘‘888*

Un programma completo che stampa 700227072 , che è 888 a cubetti.

TryItOnline!

Come?

**‘‘‘888* - Main link: no arguments
          - implicit L=R=0
*         - power       A = L ^ R = 1
  ‘       - increment   B = L + 1 = 1
 *        - power       C = A ^ B = 1
   ‘      - increment   D = C + 1 = 2
    ‘     - increment   E = D + 1 = 3
     888  - literal     F = 888
        * - power           F ^ E = 700227072

5
888^3è 700227072? È molto intelligente, forse altre lingue possono usare questo trucco.
ETHproductions

23

Poliglotta di risposte puramente letterali, 9 byte

333111222

Questo è un post wiki della community per la raccolta di risposte letterali che la lingua in questione stampa automaticamente. Poiché è un wiki della comunità, sentiti libero di modificarlo per aggiungere più lingue dove funziona.

Questo programma funziona in:

  • PHP
  • HTML (probabilmente non una lingua)
  • Gelatina (e M )
  • 7 (più interessante, perché il programma è interpretato sia come dati che come codice; il primo 3stampa i dati, il resto del programma è inutile manipolazione dello stack)
  • CJam
  • Japt
  • Carota
  • R (il display R mostra anche [1] come metadati)
  • RProgN
  • In realtà (anche se in realtà stampa 2\n2\n2\n1\n1\n1\n3\n3\n3\n)
  • ///
  • noodel
  • TI-Basic
  • SimpleTemplate
  • ReRegex
  • buccia
  • Risorsa (sebbene ciò generi la stringa invertita)

Ignorando la nuova riga finale, questo è valido in alcune altre lingue:

La maggior parte dei collegamenti va su Provalo online!


3
Questo stampa 2\n2\n2\n1\n1\n1\n3\n3\n3\nin realtà, che è perfettamente valido. Dovrebbe essere aggiunto al post?
ETHproductions

@ETHproductions In realtà penso che in realtà dovrebbe essere aggiunto al post poiché utilizza lo stesso codice;)
Kritixi Lithos

Come persona che ha effettivamente realizzato, sono d'accordo che appartiene a questo post. Le newline non fanno davvero la differenza.
Mego

Questo funziona anche sulla lingua che ho scritto: SimpleTemplate . Lo compilerà in un over-kill echo '333111222';(in PHP) ma funziona.
Ismael Miguel,

4
@IsmaelMiguel: questa è una risposta wiki della community ; è stato scritto solo dal 29% da ETHproductions (e in effetti, sono stato io a creare la risposta originariamente, come puoi vedere dalla cronologia delle revisioni; ETHproductions ha più testo nella versione attuale della risposta di chiunque altro, ma sicuramente non lo è t responsabile di tutto). Il suo intero scopo è quello di essere modificato da una vasta gamma di utenti come sforzo collaborativo. (Questo è distinto dalle risposte normali, che non sono progettate per essere modificate.)

21

C #, 114 111 118 102 byte

Se non ci interessa usare le parole giuste: (102 byte)

class CCcddiilMMmmnrrSSsttvvWWyy{static void Main(){{System.Console.Write(("A TEA AT TEE"));;;}}}///".

Se ci preoccupiamo delle parole giuste: (120 byte)

class erebeWyvern{static void Main(){int embedWildbanana;{System.Console.Write(("A TEA AT TEE"));;}}}///CC Myst mvcSMS".

La mia presentazione originale - senza distinzione tra maiuscole e minuscole: (113 byte)

class EreBeWyvern{static void Main(){int embedwildbanana; {System.Console.Write(("A TEA AT TEE"));;}}}/// vyt".

So che il commento non è proprio nello spirito del CG, ma è tutto ciò che ho potuto inventare in un periodo di tempo limitato, vedrò se posso migliorarlo durante il giorno. Sicuramente devo ottenere almeno alcuni punti bonus perché il cenno sia avventuroso.

Modifica: grazie a roberto06 per aver catturato le lettere mancanti!


1
Sono un tipo C ++, non C #, ma non puoi semplicemente racchiudere la chiamata Write in {()} senza influenzarla?
Sparr,

1
Potresti essere in grado di mettere le parentesi attorno all'argomento, piuttosto che la chiamata nel suo insieme.

7
Brownie indica la banana selvatica.
darrylyeo,

6
Bello! Mi piacciono i nomi delle variabili. +1
MildlyMilquetoast

1
Dovresti rimuovere Vdal tuo commento e aggiungere vyt, poiché Vè presente solo mentre vè presente due volte (errore di battitura, immagino), yè presente anche due volte ed tè presente 5 volte. Vedi qui . Tuttavia, ottimo lavoro!
roberto06,

18

JavaScript, 36 33 byte

alert(((alert|alert||333111222)))

Avvisi 333111222. Questo funziona perché |converte entrambi i suoi operandi in numeri interi a 32 bit e qualsiasi valore che non assomiglia a un numero intero (ad esempio la funzione alert) viene convertito in 0. 0|0è 0, quindi l' ||operatore restituisce il suo operando destro o333111222

Alcune versioni più interessanti:

(a="(trelalert)\\\"")+alert(a+=a+=a)

Uscite (trelalert)\"(trelalert)\"(trelalert)\".

Una soluzione utilizzata .repeatavrebbe la stessa lunghezza, grazie alla condivisione aert:

alert("(trpp.all)\\\"".repeat(3.33))

quali uscite (trpp.all)\"(trpp.all)\"(trpp.all)\".

Sfruttando le barre rovesciate extra per sbarazzarsi le p quasi funziona:

a\x6cert("(trax.cc)\"".re\x70eat(6.00677))

Questo emette (trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)"(trax.cc)".


1
Bel abuso di decimali!
darrylyeo,

2
@darrylyeo Heh, grazie. Avrei potuto facilmente bloccarli nella corda, ma non sarebbe stato così divertente ;-)
ETHproductions

Pensavo di farti sapere che sei stato superato da una risposta ES6 .
darrylyeo,

14

CJam , 9 byte

10,10,10,

Uscite 012345678901234567890123456789

Provalo online!

Spiegazione

10,       The range from 0 to 9
   10,    The range from 0 to 9
      10, The range from 0 to 9

3,3,3 non funziona per 7 byte?
chim

Ah! sì, il terzo requisito :)
chim il

Argh, un'occasione mancata da usare 99,99,99,, perché perché no?
workoverflow

@workoverflow Perché non funziona con il terzo requisito. Il programma deve contenere tre caratteri distinti.
DLosc

@DLosc Touche, me ne sono dimenticato!
workoverflow

11

Brainfuck , 12 byte

++[+...][][]

Nessuno ha detto che l'uscita doveva essere breve. Questo produrrà 3 copie di ogni carattere ASCII tranne i primi 2.

Puoi provare che questo è il più breve possibile. Devi produrre quindi hai bisogno di 3 '.' ci devono essere output diversi, quindi sono necessari 3 [+ -] ora siamo fino a 6. Devono essere stampati 9 caratteri, il che significa che aggiungere altri 6 '.' o aggiungendo un ciclo, che aggiungerà altri 6 caratteri.

Provalo online!


10

Python 2, 36 30 byte

Poiché una nuova riga finale non è consentita, questa è probabilmente la più breve possibile:

print"\\\""*3;print;print;3**3

Provalo online

Produce \"tre volte, seguito da tre nuove righe.


I seguenti programmi non contano la nuova riga finale, quindi non sono validi.

27 byte :

print"""printprint"""*3*3*3

Stampa 54 di ogni personaggio in print.

Provalo online


Stessa lunghezza, uscita più breve:

print"""printprint*3*3"""*3

Uscite printprint*3*3printprint*3*3printprint*3*3


24 byte:

print~9;print~9;print~9;

Si potrebbe fare print"""printprint*3*3"""*3per un output molto più breve ;-)
ETHproductions

Non potresti fare print 123;print 123;print 123;per la soluzione ingenua?
ETHproductions

OP ha chiarito che la nuova riga finale singola non è consentita (vedere i commenti).
FlipTack

1
@ETHproductions Certo. Dipende da quanto ingenui siamo.
mbomb007,

3
Ancora più ingenuo:print~9;print~9;print~9;
Sp3000,

9

Perl 6 , 15 byte

.say;.say;.say;

Stampa sei caratteri distinti, tre volte ciascuno:

(Qualunque)
(Qualunque)
(Qualunque)

Provalo online!

Come funziona

  • Una chiamata di metodo a nudo opera sul tema corrente, $_.
  • $_inizia come oggetto tipo di tipo Any, che saystampa come (Any).

1
Ora ho una canzone Yeah Yeah Yeahs bloccata nella mia testa.
Stuart P. Bentley,

9

C, 66 byte

main(i){{for(i=0;i<3;i++){printf("""poop+fart=<3<3at0m=m0n""");}}}

Produzione

poop+fart=<3<3at0m=m0npoop+fart=<3<3at0m=m0npoop+fart=<3<3at0m=m0n    

Vecchia versione 72 byte

main(i){for(i=0;i<3;i++){printf("poop+fart=<3<3 at {\"0m=m0\"}" "\n");}}

2
Non solo il tuo codice è molto più piccolo di quello che ho fatto, ma contiene anche veri frammenti di cacca e scoregge. Bravo.
dim

9

JavaScript (ES6), 30 byte

+alert((({alert}+{alert}+{})))

Uscite [object Object][object Object][object Object].

Funziona creando tre oggetti:

  • i primi due sono nel formato { "alert" : alert }usando la notazione ES6{alert}

  • il terzo è un semplice oggetto vuoto

Allora usa +concatenare insieme, e tutti e tre hanno un'identica espressione come una stringa, [object Object].

Il comando +è inutile, presente solo per compilare il numero di +caratteri, ma è innocuo per l'output del programma.


Modo per battere l'altra risposta JS!
darrylyeo,

Dovresti anche aggiungere (ES6)al titolo.
darrylyeo,

@darrylyeo Grazie! :) E ho aggiunto ES6
apsillers il

8

PKod , 9 byte

sonsonson

Uscite: 111222333


Spiegazione:

Background: PKod has only one variable that you mess with, with the code
This variable starts with default value of 0

s  -  Add next char to the variable, and jump over it. 
n  -  Print numeric value of variable

o ha il codice carattere ascii "111" in decimale. Quindi s aggiunge 111 alla variabile, quindi stampa il numero. Il primo "figlio" lo fa 111 e lo stampa 111. Successivamente lo fa 222 e lo stampa 222, infine lo fa 333 e lo stampa 333



7

Microscript II, 9 byte

{{{~~~}}}

Spiegazione: Crea un blocco di codice, ma non lo invoca. Al termine dell'esecuzione, i contenuti del registro principale (ovvero questo blocco di codice) vengono stampati in modo implicito.


Hai pubblicato qualcosa di simile nella sfida Quine?
wizzwizz4,

@ wizzwizz4 {}sarebbe tecnicamente un quine, ma non credo che soddisfi la nostra definizione di "quine corretta". Il programma "q"q(che ho presentato alla quine challenge) invece lo fa.
SuperJedi224,

@ wizzwizz4: Non sarebbe una vera quina, perché ogni personaggio rappresenta se stesso.

7

Esagonia , 9 byte

x!!xx@@!@

Provalo online!

Stampa 120120120. xpuò essere sostituito da f-m(102-109)

Spiegazione

  x ! ! 
 x x @ @
! @ . . .

L' xx@@è solo una copertura per rispettare le regole. Il flusso principale sta salvando xin memoria (con valore ASCII 120) e quindi lo stampa come numero 3 volte.


7

C, 111 byte

(Nota come il conteggio dei byte sia anche i tre stessi numeri. Wow. Non puoi fare più meta di così.)

#include<stdio.h>
#define b "<acdhlmoprsu>."
#define t "en"
main(){{{printf(("<acdhlmoprsu>." b b t t t));;;}}}

stampe:

<acdhlmoprsu>.<acdhlmoprsu>.<acdhlmoprsu>.enenen

6

PHP , 33 byte

<?=($s="<?;<?=;'".'"').($s).($s);

Ha optato per qualcosa di più interessante del programma a 9 byte senza tag PHP.

Uscite <?;<?=;'"<?;<?=;'"<?;<?=;'"

Provalo online!


5

99 , 15 byte

9 9  9999
9
9
9

Sono nove nove, tre spazi e tre avanzamenti di riga, l'output è -1110-1110-1110 .

Provalo online!

Come?

9 9  9999 - V(9)=V(9)-V(9999)=1-1111=-1110
9         - print V(9)
9         - print V(9)
9         - print V(9)

I due spazi sono trattati come uno, questo terzo spazio potrebbe essere uno spazio finale anche su qualsiasi linea.


5

Bash + coreutils, 15 9 byte

id;id;id;

Provalo online!

Uscita campione:

uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211
uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211
uid=1000 gid=1000 groups=1000 context=system_u:unconfined_r:sandbox_t:s0-s0:c19,c100,c173,c211

(Se lo provi, stampa 3 volte il tuo uid, gid, ecc.)


Se vuoi evitare di ripetere la stessa stringa 3 volte (e anche avere lo stesso output per tutti, a differenza della mia prima risposta), il migliore che ho trovato per le utility bash + Unix è lungo 15 byte:

dc<<<cczdzfzfdf

Prova questa seconda versione online!

Produzione:

2
0
0
3
2
0
0
3
3
2
0
0

(Nessuna nuova riga nel programma, 12 nuove righe nell'output.)

Spiegazione del programma DC in questa risposta:

c Clears the stack.
Stack: (empty)

c Clears the stack.
Stack: (empty)

z Pushes the current size of the stack (0) onto the stack.
Stack: (top) 0

d Duplicates the item at the top of the stack.
Stack: (top) 0 0

z Pushes the current size of the stack (2) onto the stack.
Stack: (top) 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the first 3 lines of the output, 2 / 0 / 0 /)

z Pushes the current size of the stack (3) onto the stack.
Stack: (top) 3 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the next 4 lines of the output, 3 / 2 / 0 / 0 /)

d Duplicates the item at the top of the stack.
Stack: (top) 3 3 2 0 0

f Prints the stack, top to bottom, with a newline after each item printed (this prints the final 5 lines of the output, 3 / 3 / 2 / 0 / 0 /)

Come funziona il secondo?
therealfarfetchd,

@therealfarfetchd Ho aggiunto una spiegazione alla risposta.
Mitchell Spector

Dannazione, DC è molto più potente di quanto pensassi. Bel lavoro!
therealfarfetchd,

@therealfarfetchd Grazie. Mi piace DC. A proposito, ci sono stati un paio di errori di battitura nella spiegazione che ho appena risolto.
Mitchell Spector

5

LOLCODE , 273 240 ( 360 286) byte

HAI 1.2
I HAS A U
IM IN YR M UPPIN YR Q TIL BOTH SAEM Q 1
VISIBLE "Y SUB.EK"
IM OUTTA YR M
IM IN YR T UPPIN YR Q TIL BOTH SAEM Q 2
VISIBLE "Y SUB.EK"
IM OUTTA YR T
IM IN YR X UPPIN YR Q TIL BOTH SAEM Q 12
VISIBLE "IM"
IM OUTTA YR X
KTHXBYE

Nota la nuova riga finale e provala online . La seconda riga era più o meno arbitraria e può eventualmente essere sostituita da un comando più breve, ma ho appena imparato LOLCODE per questo puzzle. Poiché il numero di versione è richiesto nella prima riga, ho usato i numeri per aggiungere anelli di lunghezza 1, 2 e 0 mod 3 per assicurarmi che venisse stampato il giusto numero di caratteri. Da questo ho semplicemente contato ogni personaggio (con questo strumento ). Se è apparso 0 mod 3 volte, non è stata richiesta alcuna azione. Se è apparso 1 mod 3 volte, è stato aggiunto ai loop 1 e 2 in modo da apparire tre volte nell'output. Se è apparso 2 mod 3 volte, il personaggio è stato aggiunto al ciclo 12. EDIT: sostituendo il primoVISIBLE con un compito (ancora inutile ma richiesto di avere 12 invece di 11 nuove righe), sono stato in grado di tagliare 33 byte.

Uscita (60 byte):

Y SUB.EK
Y SUB.EK
Y SUB.EK
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM
IM

Nota la nuova riga finale.

La cosa bella di questa soluzione rispetto alle altre risposte è che l'Output può essere facilmente manipolato per produrre testi piuttosto significativi. Esempio (286 byte con nuova riga finale):

HAI 1.2
I HAS A U
IM IN YR MW UPPIN YR Q TIL BOTH SAEM Q 1
VISIBLE "YO SUB. EEEEK!"
IM OUTTA YR MW
IM IN YR STA UPPIN YR Q TIL BOTH SAEM Q 2
VISIBLE "YO SUB. EEEEK!"
IM OUTTA YR STA
IM IN YR XURG UPPIN YR Q TIL BOTH SAEM Q 12
VISIBLE "IMO U R SWAG! "
IM OUTTA YR XURG
KTHXBYE

Provalo online. Output (222 byte con nuova riga finale):

YO SUB. EEEEK!
YO SUB. EEEEK!
YO SUB. EEEEK!
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 
IMO U R SWAG! 

Purtroppo, non sono bravo con gli anagrammi come pensavo: ')


1
Benvenuti nel sito!
DJMcMayhem

@DJMcMayhem Grazie. Qualcosa che devo fare per ottenere LOLCODE un collegamento automatico così bello come ho copiato da altri post? (lo stile # [lingua]) Il link al codice sorgente è contenuto nella risposta.
SK19

Il modo più semplice è, quando hai inserito il tuo programma in TIO, utilizzare il menu dei collegamenti e selezionare (o copiare) la scelta per "Invio golf code". Questo ti dà un modello per un nuovo post. Ho copiato la parte che sembrava mancare da lì.
Ørjan Johansen

5

CONCHIGLIA

scherzare :) ( 9 byte )

ls;ls;ls;

o più seriamente ( 24 byte )

sed s/./sed.g./g <<< edg

Risultato:

sed.g.sed.g.sed.g.

5

PHP, 24 byte

<?=111?><?=222?><?=333?>

1
Che cosa significa questo output? Come funziona?
DJMcMayhem

Esso utilizza lo shorttag PHP <?insieme alla immediata echodichiarazione <?=di uscita 123 3 volte.
junkfoodjunkie,

La versione più breve che hai appena modificato non è valida poiché i <= ?>caratteri non vengono visualizzati più di 3 volte.
DJMcMayhem

Ah, giusto, sapevo che c'era una ragione per cui la versione originale era com'era - mi sono completamente smentito dal requisito - Lo cambierò di nuovo.
junkfoodjunkie,


4

Japt, 9 byte

000OoOoOo

Stampe undefinedundefinedundefined. Provalo online!

Spiegazione

Questo codice viene convertito nel seguente JavaScript:

000,O.o(O.o(O.o()))

O.oè una funzione che genera qualcosa senza una nuova riga finale. Se non viene dato alcun argomento, viene stampato undefined, che potrebbe essere considerato un bug, ma è utile qui. Restituisce anche undefined, quindi tutte e tre le chiamate vengono stampate undefined.

Sono sicuro che ci sono molti altri modi per farlo ...


1
O_o Interessante :)
geisterfurz007,

4

05AB1E , 9 byte (suppongo che si possa dire che questo è un pezzo di PI)

-0 byte grazie a Emigna / ETHProductions, ha reso la soluzione più corretta.

žqžqžq???

Versioni alternative:

ž[g-Q]ž[g-Q]ž[g-Q]???

[g-Q] - Può inserire qui qualsiasi lettera aQ, purché corrispondano tutti (vedi sotto).

Provalo online!

Ha spiegato:

PI,PI,PI,SORT,JOIN,SORT,JOIN,SORT,JOIN.

Risultato:

...111111222333333333444555555555666777888999999999

La ragione per cui sono solo 9 byte è perché non hai bisogno dei tipi, li ho appena inseriti per aiutare a illustrare.

Risultato senza / {nel codice:

3.1415926535897933.1415926535897933.141592653589793


Rendimenti alternativi:

I seguenti comandi possono essere utilizzati al posto di PI:

ž 23  > žg       push current year
        žh       push [0-9]
        ži       push [a-zA-Z]
        žj       push [a-zA-Z0-9_]
        žk       push [z-aZ-A]
        žl       push [z-aZ-A9-0_]
        žm       push [9-0]
        žn       push [A-Za-z]
        žo       push [Z-Az-a]
        žp       push [Z-A]
        žq       push pi
        žr       push e
        žu       push ()<>[]{}
        žy       push 128
        žz       push 256
        žA       push 512
        žB       push 1024
        žC       push 2048
        žD       push 4096
        žE       push 8192
        žF       push 16384
        žG       push 32768
        žH       push 65536
        žI       push 2147483648
        žJ       push 4294967296
        žK       push [a-zA-Z0-9]
        žL       push [z-aZ-A9-0]
        žM       push aeiou
        žN       push bcdfghjklmnpqrstvwxyz
        žO       push aeiouy
        žP       push bcdfghjklmnpqrstvwxz
        žQ       push printable ASCII character set (32-128)

2
Esci per il gioco di parole; per il trucco però
prendine

Ben fatto! Non penso žv, žwo žxsono validi in quanto ognuno di essi ha solo 2 cifre distinte.
ETHproductions

Hmm, che senso hanno le classi di personaggi all'indietro?
ETHproductions

@ETHproductions ahhh, dimenticato at least 3, all'inizio ero solo PI quando l'ho scritto. Cosa intendi per classi di personaggi all'indietro?
Magic Octopus Urn il

1
Si noti che questo è valido solo se non si conta la nuova riga che è implicitamente stampata. Ciò potrebbe essere facilmente risolto sostituendolo JJJcon ???però.
Emigna,

4

Cubix , 12 byte

Un po 'una risposta noiosa davvero. Emette tre 10secondi seguiti da nuove righe

N@N@NOoOoOo@

Provalo online! Mappa sul cubo

    N @
    N @
N O o O o O o @
. . . . . . . .
    . .
    . .

NSpinge 10 nello stack
Oox3 Output 10 e newline
@interrompe il programma

L'iniziale N@N@non viene colpita.


Conto 34 spazi: /
SK19

@ SK19 Il codice è N@N@NOoOoOo@e non include spazi.
MickyT

Ah, okay, pensavo che anche il cubo dovesse soddisfare i requisiti
SK19

4

Pepe , 24 byte

rEeEEeeEEErreEErreEEreEE

Provalo online!

Il programma contiene 6 r, 6 e e 12 E.

Spiegazione:

rEeEEeeEEErreEErreEEreEE # full program

rEeEEeeEEE               # push '103' to the stack
          rreEErreEE     # output as int (r flag: preserve)
                    reEE # output as int

Produzione:

103103103

3

V , 9 byte

12i12i12i

Provalo online!

Uscite 12i24 volte:

12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i12i

Vim, 12 byte

12i12i12i<ESC><ESC><ESC>

Emette lo stesso della risposta V.



3

Befunge 93 , 9 byte

...,,,@@@

TIO

Stampe 0 0 0(spazio finale, seguito da 3 byte null)

Perché lo stack di Befunge è imbottito con 0 s, possiamo stampare sia il carattere ASCII con quel valore, sia l'intero stesso. Poiché Befunge stampa automaticamente uno spazio dopo un numero intero, ci rimangono 3 caratteri distinti.

.stampa 0(spazio finale), ,stampa un byte null e @termina il programma

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.