Código del nivel 8, modo Beginner de RubyWarrior
class Player
def initialize
@health = 0
end
def play_turn(warrior)
if warrior.feel.empty?
if warrior.health < 20 and not taking_damage? warrior
warrior.rest!
else
enemies = warrior.look.select { |space| space.enemy?}
captives = warrior.look.select { |space| space.captive? }
if not enemies.empty? and captives.empty?
warrior.shoot!
else
(taking_damage? warrior and warrior.health < 10) ? warrior.walk!(:backward) : warrior.walk!
end
end
else
warrior.feel.captive? ? warrior.rescue! : (warrior.feel.wall? ? warrior.pivot! : warrior.attack!)
end
@health = warrior.health
end
def taking_damage?(warrior)
@health > warrior.health
end
end