kevinnio
5/2/2014 - 6:02 PM

Código del nivel 9, modo Beginner de RubyWarrior

Código del nivel 9, modo Beginner de RubyWarrior

class Player
  def initialize
    @health = 0
  end
  
  def play_turn(warrior)
    if warrior.feel.empty?
      enemies_around = false
      warrior.look.each do |space|
        space.captive? ? enemies_around = false : enemies_around = space.enemy? # Don't attack if there's a captive in the way
      end
      if enemies_around
        warrior.shoot!
      elsif warrior.health < 20 and not taking_damage? warrior
        warrior.rest!
      else
        (taking_damage? warrior and warrior.health < 10) ? warrior.walk!(:backward) : warrior.walk!
      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