*> <>、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スタック上と離れてあなたが行きます!これは、(")文字を再利用していくつかのバイトを節約します。
説明
初期化
<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を再実行します。
100msのダンスを生成
S\:1*43_C43CdooI:o@:o@:o@Do
ここでは、100msのダンスの動きの1つを生成して出力します。
 \                         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」を生成して戻る単純な関数です。xIPが左または右にのみ移動するように指示するダンスチューザーと同様に機能します。
     x      generate "^" or "v"
R!"^"    >  push "^" to stack and return
R     "v"   push "v" to stack and return
200msのダンスを生成
これはで始まる別の例ですx。2つのセクションに分割されます:<(")>と別の(>")> and <("<)セクションxは、2つの異なるセクションであり、共有する唯一のものであるためです。
<(")>
>: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<'<("<)'
この小さな説明は(>")>and <("<)生成に関するものですが、その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"