Class: PAUL::Player
Direct Known Subclasses
Instance Attribute Summary collapse
-
#health ⇒ Object
Returns the value of attribute health.
-
#name ⇒ Object
Returns the value of attribute name.
Instance Method Summary collapse
- #each_found_treasure ⇒ Object
- #found_treasure(treasure) ⇒ Object
-
#initialize(name, health = 100) ⇒ Player
constructor
A new instance of Player.
- #points ⇒ Object
- #to_s ⇒ Object
Methods included from Paul
#blam, #score, #strong?, #w00t
Constructor Details
#initialize(name, health = 100) ⇒ Player
Returns a new instance of Player.
12 13 14 15 16 |
# File 'lib/PAUL/exercise11play.rb', line 12 def initialize(name, health=100) @name = name.capitalize @health = health @found_treasures = Hash.new(0) end |
Instance Attribute Details
#health ⇒ Object
Returns the value of attribute health.
10 11 12 |
# File 'lib/PAUL/exercise11play.rb', line 10 def health @health end |
#name ⇒ Object
Returns the value of attribute name.
10 11 12 |
# File 'lib/PAUL/exercise11play.rb', line 10 def name @name end |
Instance Method Details
#each_found_treasure ⇒ Object
18 19 20 21 22 |
# File 'lib/PAUL/exercise11play.rb', line 18 def each_found_treasure @found_treasures.each do |name, points| yield Treasure.new(name, points) end end |
#found_treasure(treasure) ⇒ Object
24 25 26 27 28 |
# File 'lib/PAUL/exercise11play.rb', line 24 def found_treasure(treasure) @found_treasures[treasure.name] += treasure.points puts "#{@name} found a #{treasure.name} worth #{treasure.points} points." puts "#{@name}'s treasures: #{@found_treasures}" end |
#points ⇒ Object
30 31 32 |
# File 'lib/PAUL/exercise11play.rb', line 30 def points @found_treasures.values.reduce(0, :+) end |
#to_s ⇒ Object
34 35 36 |
# File 'lib/PAUL/exercise11play.rb', line 34 def to_s "I'm #{@name} with health of #{@health} and score of #{score}." end |