Turtlèd、135 129バイト(非競合)
(インタープリターは実際には少しバグゲッドではありません(もう::))が、このプログラムには影響しません)
プログラムを再構築して書き直すことで、ゴルフをしました... 6バイト
そして今、私は新しい説明をしなければなりません...
それでも短い問題になる可能性があります
少なくともこの言語での最善の解決策は、生データを書き込むだけではありません¯\ _(ツ)_ /¯
#3.141592653589793238462643383279502884197169#")()()()()()">10:[)'|l]:[)d'\l]d"(||"2uuu[|;"::"uuu];>"__"[|r'\d]dl[ l[|.+l][\r]ul]
オンラインで試す
説明
正直なところ、これは実際のプログラムをあまりよく説明していませんが、コマンドについてのヒントを提供するので、少しよく理解できるかもしれません
#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
複雑なこと:ネストされたループ
[ l[|.+l][\r]ul]
現在のセルがスペースではない間{左に移動、ループを実行:(セルではなく|、文字列変数の現在の文字を書き込み(piを覚えていますか?)、文字列ポインタをインクリメント、左に移動)、ループを実行:右に移動)、上に移動、左}