RubyWarrior完全攻略~初級編~ Level4

Level4やっていきます。
ところで、Levelはいくつまであるんでしょうね。

f:id:tumiki_jp:20150623004127p:plain いつも通り問題文をGoogle翻訳します。
You can hear bow strings being stretched.
あなたは弓の弦が張られて聞くことができます。
No new abilities this time, but you must be careful not to rest while taking damage. Save a @health instance variable and compare it on each turn to see if you're taking damage.
新しい能力が、この時間が、あなたはダメージを取りながら休まないように注意してはいけません。 @healthインスタンス変数を保存し、あなたがダメージを取っているかどうかを確認するために、各ターンにそれを比較します。

私なりにポイントとなる部分だけ翻訳すると、
敵からの攻撃を受けている時は回復せずに、攻撃を行う。
ダメージを受けていない時に回復する。
といった感じでしょうか。
 
Level3の時と考え方は同じだと思うのですが、
Level3の時は、目の前に敵がいたら攻撃というプログラムでした。
そこを、敵から攻撃を受けていたらに変えればいいという事です。
で、敵から攻撃を受けたかどうかの判定は、
@healthインスタンス変数を保持し、
前回の体力と今回の体力を比較すればわかるという事です。
これらを踏まえて以下のコードにしました。

@healthの初期化がうまく書けず(思いつかず)、
このプログラムを書くまで結構時間かかりました。
 
だんだん難しくなってきました・・。