RubyWarrior完全攻略~中級編~ Level5

Level5はボーナスステージのようです。
さっそくやっていきましょう。
f:id:tumiki_jp:20150629124344p:plain You can feel the stairs right next to you, but are you sure you want to go up them right away?
あなたは正しいあなたの隣に階段を感じることができますが、あなたはすぐにそれら上がるしてもよろしいですか?
You'll get more points for clearing the level first. Use warrior.feel.stairs? and warrior.feel.empty? to determine where to go.
あなたが最初のレベルをクリアするためのより多くのポイントを得るでしょう。 warrior.feel.stairsを使用しますか?とwarrior.feel.empty ?どこへ行くかを決定します。

翻訳すると、
前に進めばすぐに階段にたどり着く事ができるけど、
それってエンジニアとしてどうなの?プライドとかないの?
捕虜を救出したり、敵を倒すプログラムを書いてこそのエンジニアでしょう。
っていうかRubyの勉強してるなら楽しても意味ないでしょう。
といったところでしょうか。
ってことで、ボーナスステージじゃなかった・・・。

なので、敵を倒し、捕虜を助けてから階段へ向かうプログラムを書いていきます。
ポイントは以下のような所でしょうか

  • 敵や捕虜がいる方向を知る
  • その方向に階段がある場合は別の方向へ進む
  • 敵に囲まれた場合はbind!メソッドを使って檻に閉じ込める
  • 敵や捕虜がいなくなったら、階段を目指す。

以上のポイントを踏まえて、以下のソースコードにしました。
これを実行すると、

  1. listenメソッドの結果から右に進もうとする
  2. でも、階段があるので別の方向を探す
  3. 上へ進む
  4. listenメソッドの結果から右に進もうとする x 3回
  5. 敵に囲まれているのでbind!メソッドを使って檻に閉じ込める。
  6. 1対1になったので敵を攻撃する x 倒すまで繰り返す
  7. 回復する x 全回復するまで繰り返す
  8. 檻に閉じ込めた敵を解放する
  9. 1対1になったので敵を攻撃する x 倒すまで繰り返す
  10. listenメソッドの結果から下に進む
  11. 捕虜を救出する
  12. 階段を目指す

以上です。
なんか少し複雑?
まぁでも言われた通りにクリアしたので良しとします。
 
 
段々難しくなってきた。