Turtlèd , 135 129 ไบต์ (ไม่ใช่การแข่งขัน)
(ล่ามไม่ได้เป็นbuggèd จริง ๆเล็กน้อย (อีกต่อไป:]) แต่ไม่มีผลกับโปรแกรมนี้ )
ด้วยการปรับโครงสร้างและเขียนโปรแกรมของฉันใหม่ฉันเล่นกอล์ฟ ... หกไบต์
และตอนนี้ฉันต้องอธิบายใหม่ ...
ยังคงเป็นโพรบที่สั้นกว่าได้
อย่างน้อยที่สุดทางออกที่ดีที่สุดใน lang นี้ไม่เพียงเขียนในข้อมูลดิบ¯ \ _ (ツ) _ / ¯
#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?), ตัวชี้สตริงเพิ่มขึ้น, เลื่อนไปทางซ้าย), ดำเนินการลูป: เลื่อนไปทางขวา) เลื่อนขึ้นไปทางซ้าย}