Turtlèd , 135 129 byte (non in competizione)
(l'interprete non è davvero un po ' buggèd (più:]) , ma non influisce su questo programma )
Ristrutturando e riscrivendo il mio programma, ho giocato a golf ... sei byte
E ora devo fare una nuova spiegazione ...
Tuttavia, potrebbero essere ancora più brevi
Almeno la migliore soluzione in questo lang non è solo scrivere nei dati grezzi ¯ \ _ (ツ) _ / ¯
#3.141592653589793238462643383279502884197169#")()()()()()">10:[)'|l]:[)d'\l]d"(||"2uuu[|;"::"uuu];>"__"[|r'\d]dl[ l[|.+l][\r]ul]
Provalo online
Spiegazione
Onestamente, questo non descrive molto bene il programma attuale, ma dà suggerimenti sui comandi, quindi potresti capire un po 'meglio
#3.141592653589793238462643383279502884197169# Some pi. Set the string to thing between #s
the last digit was same as first, and the
string wraps, so digit could be removed
")()()()()()" Write this string, by writing char 1 to current cell, moving right, char 2...
> turn right
10 set register to ten
:[)'|l]: move right by amount in register, while current cell isn't ), write |
and move left. move right by amount in register
[)d'\l] while cell is not (, move down, write \, move left
d"(||" move down and string-write "(||"
2 set register to 2
uuu[|;"::"uuu] Move up three, and while the cell is not |, move down by
register (2), string-write "::", move up three
Just remember the turtle is currently pointing right, so up is right.
;>"__" move down by amount in register, turn right, string-write "__"
[|r'\d]dl while cell is not |{ move right, write \, move down}, move down, left
COSA COMPLESSA: ANELLI NIDATI
[ l[|.+l][\r]ul]
Mentre la cella corrente non è spazio {sposta a sinistra, esegue il ciclo: (Mentre la cella non |, scrive il carattere corrente della variabile stringa (ricorda che pi?), Incrementa il puntatore della stringa, sposta a sinistra), esegui il ciclo: (mentre la cella non \, sposta a destra), sposta verso l'alto, a sinistra}