*> <> , 103 101 ไบต์
<vD[3'(")'
1x<.5
S\:43_C43CdooI:o@:o@:o@Do
R!"^"x"v">
>:2* _"><"92.
x '>)">('u.02S*2:oooooodO<'<("<)'
ลองที่นี่! (เขียนในn
สแต็กเริ่มต้นมิฉะนั้นคุณจะได้รับข้อผิดพลาด)
ฉันตัดสินใจที่จะท้าทายความสามารถของฉันเนื่องจากไม่มีคำตอบย่อย 100 ไบต์ วางn
บนสแต็กและออกไปคุณไป! วิธีนี้จะใช้(")
อักขระเพื่อบันทึกบางไบต์
คำอธิบาย
initialisation
<vD[3'(")'
ที่นี่เราเก็บ(")
ไว้ใช้ในภายหลัง
< move the IP left
[3'(")' push '(")' to a new stack
D move back down to a clean stack
v move the IP down into "dance chooser"
นักเลือกนักเต้นรำ
1x<.5
\
สิ่งนี้มักจะถูกดำเนินการเพื่อเลือกประเภทของการเต้นรำที่เราจะสร้าง
x generate a 100ms dance or a 200ms dance
1 .5 jump to "200ms dance"
\ mirror IP into "100ms dance"
มีv
ด้านบนx
และ<
ด้านขวาด้วย สิ่งเหล่านี้ทำให้เกิดการx
เรียกใช้อีกครั้งหากพยายามย้าย IP ไปในทิศทางที่ผิด
สร้างการเต้นรำ 100ms
S\:1*43_C43CdooI:o@:o@:o@Do
ที่นี่เราสร้างและส่งออกหนึ่งในการเคลื่อนไหวท่าเต้น 100ms
\ mirror the IP right
: copy n
43 C43C call "generate '^' or 'v'" twice
_ ignored mirror
do output a carriage return
o output the first hand of the bird
I:o@:o@:o@D select, copy, and output '(")'
o output the second hand of the bird
S sleep for previous n*100ms
\ mirror IP back to "dance chooser"
43C - สร้าง "^" หรือ "v"
R!"^"x"v">
นี่เป็นฟังก์ชั่นพื้นฐานที่สร้าง "^" หรือ "v" จากนั้นส่งคืน มันทำงานคล้ายกับตัวเลือกการเต้นรำที่มีคำแนะนำอยู่รอบ ๆx
เพื่อให้แน่ใจว่า IP เคลื่อนไปทางซ้ายหรือขวาเท่านั้น
x generate "^" or "v"
R!"^" > push "^" to stack and return
R "v" push "v" to stack and return
สร้างการเต้นรำ 200ms
x
นี้เป็นอีกหนึ่งที่ขึ้นต้นด้วย มันจะถูกแยกออกเป็นสองส่วน: <(")>
และอีกส่วนหนึ่ง(>")> and <("<)
เนื่องจากเป็นสองส่วนที่แตกต่างกันและx
เป็นสิ่งเดียวที่แบ่งปัน
<(")>
>:2* _"><"b2.
สิ่งนี้จะเป็นจุดเริ่มต้นของgenerate 100ms dance
กิจวัตรประจำวัน แต่เติมมือนก><
แทนการ^v
คอมโบแบบสุ่ม มันคูณn
สองในเวลานี้เช่นกัน สิ่งนี้ทำให้การติดตั้งทั้งหมดใช้ประโยชน์จากgenerate 100ms dance
รูทีนเพื่อส่งออกนกทั้งหมดและรอ 200ms แทน
> move IP right
:2* copy n and do n*2
_ ignored mirror
"><" push "><" to stack
b2. jump to "output carriage return" in "generate 100ms dance"
(>")>
และ <("<)
x '>)">('u.02S*2:oooooodO<'<("<)'
คำอธิบายเล็ก ๆ น้อย ๆ นี้เกี่ยวกับ(>")>
และ<("<)
รุ่น แต่x
สามารถส่ง IP นอกมัน (อธิบายด้านล่าง)
x move to "choose dance", generate (>")>, <("<), or <(")> (previous routine)
'>)">(' push '(>")>' to the stack
'<("<)' push '<("<)' to the stack
u O< ensure inner code block is always executed with IP moving left
od output carriage return
ooooo output bird
S*2: sleep for n*200ms
.02 jump to "dance chooser"