kevinnio
5/7/2014 - 1:15 AM

Código del nivel 8, modo Beginner de RubyWarrior

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