kevinnio
5/7/2014 - 12:49 AM

Código del nivel 6, modo Beginner de RubyWarrior

Código del nivel 6, modo Beginner de RubyWarrior


class Player
  def play_turn(warrior)
    @health = 0 if not @health
    @direction = :forward if not @direction
    @direction = :forward if @direction == :backward and warrior.feel(@direction).wall?
    if warrior.feel(@direction).empty?
      if warrior.health < 20 and not taking_damage? warrior
        warrior.rest!
      else 
        @direction = :backward if taking_damage? warrior and warrior.health < 10
        warrior.walk! @direction
      end 
    else
      warrior.feel(@direction).captive? ? warrior.rescue!(@direction) : warrior.attack!(@direction)
    end
    
    @health = warrior.health
  end
  
  def taking_damage?(warrior)
    @health > warrior.health
  end
end