RubyWarrior完全攻略~中級編~ Level3

Level3やっていきます。

f:id:tumiki_jp:20150626000601p:plain

You feel slime on all sides, you're surrounded!
あなたはすべての側面にスライムを感じる、あなたが囲まれています!
Call warrior.bind!(direction) to bind an enemy to keep him from attacking. Bound enemies look like captives.
warrior.bindコール! (方向)は、攻撃から彼を保つために敵をバインドします。バインドされた敵は捕虜のように見えます。

今回からwarrior.bind!メソッドが使えるようになります。
このメソッドを呼ぶと、
捕虜と同じように檻に閉じ込められるようです。
これを踏まえて以下のアルゴリズムでプログラムを作ります。

  1. 周りに敵がいる場合は檻に入れる(bind!)
  2. 体力が減っている場合は回復する (rest!)
  3. 画面下(戦士からみて右側)にいる捕虜を救出する(rescue!(:right))
  4. 檻に入れた敵を攻撃する(attack!)
  5. 階段へ向かう

1から順に優先して実行するプログラムを作っていきます。

一応クリアできました。
bind!した敵と捕虜の見分けがつかず、
上記3.では今回のステージにしか対応できないような
書き方をしてしまっています。
(捕虜が画面右にいるような場合には動かない)
 
もっといい書き方はないだろうか・・・。