Level1 をクリアして次の画面へ進むとセーブの確認と、FaceBook に投稿が出来るっぽいのですが、FaceBook は使っていないのでここは SKIP LOGIN を選択します。
すると、次の Level2 が表示されます。
上部の説明文には
It is too dark to see anything, but you smell sludge nearby.
Use warrior.feel.empty? to see if there is anything in front of you, and warrior.attack! to fight it. Remember, you can only do one action (ending in !) per turn.
。。。意訳します。
とても暗く何も見えないが、臭いを感じ取る事はできる。
warrior.empty? を使えば、目の前に何かあるか確かめる事が出来る。そして warrior.attack! を使って戦う事が可能だ。
しかし忘れないでくれ、お前が動けるのは1ターンに一度だけだという事を。
こんな感じ?
要するに新しいメソッドが増えたって事ですね。
ここら辺は、画面の ABILITIES のボタンをクリックすると内容が書かれています。
これをみると、戦士の行動以外に周りの状況判断のメソッドも有る事が書かれています。
使い方は、warrior.feel.メソッド とやるみたいです。
(今回の .empty? も書かれています。)
画面の説明では、warrior.feel.empty? を使えばいけそうなので、早速使ってみたいと思います。
このメソッドは、目の前が空いているか?のチェックを行うもので、空いていれば true が返ってきて、何か障害物があれば false が返ってくる様になっています。
この判断を行うには if 文を使えば分岐が出来るので、今回は以下のような実装になります。
class Player def play_turn(warrior) if warrior.feel.empty? then warrior.walk! else warrior.attack! end end end
見たまんまですけど、目の前が空いていれば歩き、空いていないなら敵がいる物として攻撃を行うようにしています。
あとは、特に説明する必要がないので、実行してみます。
道中を歩き、敵がいるところでは攻撃を行い、敵がない無くなったら再度歩き出してゴールまで行きクリアの動作となります。
今回も上手くいきました。
ここで得た内容は、if 文による分岐と、feel にぶら下がるメソッドです。
次回も頑張ります。
0 件のコメント:
コメントを投稿