<vD[3'(")'
1x<.5
S\:43_C43CdooI:o@:o@:o@Do
R!"^"x"v">
>:2* _"><"92.
x '>)">('u.02S*2:oooooodO<'<("<)'
在这里尝试!(在n
初始堆栈上写,否则会出现错误)
由于没有100字节以下的答案,因此我决定对我的挑战采取行动。放置n
在堆栈上,并远离你去!这将重用(")
字符以节省一些字节。
说明
初始化
<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向错误的方向移动,这些将使get重新执行。
产生100毫秒的舞蹈
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
产生200毫秒的舞蹈
这是另一个以开头的x
。它将分为两部分:<(")>
另一部分(>")> and <("<)
,因为它们是两个不同的部分,x
是它们唯一共享的部分。
<(")>
>:2* _"><"b2.
这基本上是generate 100ms dance
例程的开始,但是填充了鸟的手><
而不是随机的^v
组合。这次也乘以n
2。这使得所有设置都可以利用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"