Turtlèd , 135 129 bytes (no compite)
(el intérprete ya no está ligeramente molesto (más:]) , pero no afecta a este programa )
Al reestructurar y reescribir mi programa, jugué al golf ... seis bytes
Y ahora tengo que hacer una nueva explicación ...
Sin embargo, aún podrían ser problemas más cortos
Al menos la mejor solución en este idioma no es solo escribir en los datos sin procesar ¯ \ _ (ツ) _ / ¯
#3.141592653589793238462643383279502884197169#")()()()()()">10:[)'|l]:[)d'\l]d"(||"2uuu[|;"::"uuu];>"__"[|r'\d]dl[ l[|.+l][\r]ul]
Pruébalo en línea
Explicación
Honestamente, esto no describe el programa real muy bien, pero da pistas sobre los comandos, por lo que es posible que comprenda un poco mejor
#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 compleja: bucles anidados
[ l[|.+l][\r]ul]
Mientras que la celda actual no es espacio {mueva hacia la izquierda, ejecute el bucle: (Mientras la celda no es |, escriba el carácter actual de la variable de cadena (recuerde que pi?), Incremente el puntero de cadena, mueva a la izquierda), ejecute el bucle: (mientras que la celda no \, mover hacia la derecha), hacia arriba, hacia la izquierda}