*> <> , 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"