Turtlèd , 135 129 bayt (yarışmıyor)
(tercüman gerçekten değil biraz :)] artık (dinlenmişti ama bu programı etkilemez )
Programımı yeniden yapılandırarak ve yeniden yazarak, altı bayt golf oynadım.
Ve şimdi yeni bir açıklama yapmalıyım ...
Yine de daha kısa problar olabilir
En azından bu dilde en iyi çözüm sadece ham verilere yazmak değil ¯ \ _ (ツ) _ / ¯
#3.141592653589793238462643383279502884197169#")()()()()()">10:[)'|l]:[)d'\l]d"(||"2uuu[|;"::"uuu];>"__"[|r'\d]dl[ l[|.+l][\r]ul]
Çevrimiçi deneyin
açıklama
Açıkçası, bu gerçek programı çok iyi tanımlamıyor, ancak komutlar hakkında ipucu veriyor, bu yüzden biraz daha iyi anlayabilirsiniz.
#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
KOMPLEKS ŞEY: NESTED LOOPS
[ l[|.+l][\r]ul]
Geçerli hücre boşluk bırakmadan (sola hareket et, döngü yürüt:: hücre değil |, string değişkeninin geçerli karakterini yaz (hatırla ki pi?), Artan string gösterici, sola git), döngü yürüt: (hücre değil \, sağa taşı), yukarı taşı, sola