[Ruby] Ruby Warrior Level.9クリアコード
Ruby Warrior
公式HP(かなり大きいBGMが流れるので注意)www.bloc.io
クリアしたら
- このサイトのおもしろい点として、答えとなるコードが決まっているわけではなく、要求されている動きさえすればいいというスタイルなので、100人いれば100通りの解答コードが出来ます。
- 最終レベル(以前はLevel9だったが今は更にLevelが増えている?)をクリアしたらコードを公開して他の人のものと見比べると、「そんな書き方もあったのか」といった感じでおもしろいです。
Level9クリアコード
- 僕がクリアしたのは数年前なのでもしかしたら現在の構成とは違うかもしれない & 初心者の時に書いたので色々つっこみどころはあるかもしれませんが、一応載せておきたいと思います。
class Player def play_turn(warrior) @health = 20 if @health == nil ###captive if warrior.feel.captive? warrior.rescue! elsif (warrior.feel:backward).captive? warrior.rescue!:backward ###meet enemy ##back elsif (warrior.feel:backward).enemy? #turn warrior.pivot! ##center elsif warrior.feel.enemy? #attack if warrior.health > 4 warrior.attack! #escape else warrior.walk!:backward end ##archer aim you elsif warrior.health < @health #go if warrior.health >= 18 warrior.walk! #back else warrior.walk!:backward end #heal elsif warrior.health < 20 warrior.rest! #wall elsif warrior.feel.wall? warrior.pivot! @wall = true #stairs elsif warrior.feel.stairs? warrior.pivot! if @wall == nil warrior.walk! if @wall ##wizard else begin warrior.look.each{|i| break if i.captive? raise if i.enemy? } warrior.walk! rescue warrior.shoot! end end @health = warrior.health end # End of playturn end # End of Class