class StudioGame::Player

Attributes

health[RW]
name[RW]
treasures[RW]

Public Class Methods

new(name, health=100) click to toggle source
# File lib/studio_game/player.rb, line 11
def initialize(name, health=100)
  @name = name.capitalize
  @health = health
  @found_treasures = Hash.new(0) 
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/studio_game/player.rb, line 40
def <=>(other)
  other.score <=> self.score
end
each_found_treasure() { |treasure| ... } click to toggle source
# File lib/studio_game/player.rb, line 45
def each_found_treasure
  @found_treasures.each do |key, value| 
    yield( Treasure.new(key,value)) 
  end
end
found_treasure(t) click to toggle source
# File lib/studio_game/player.rb, line 27
def found_treasure(t)
  @found_treasures[t.name] += t.points
  puts "#{@name} found a #{t.name} worth #{t.points}"
end
pass() click to toggle source
# File lib/studio_game/player.rb, line 23
def pass
  puts "#{@name} got passed."
end
points() click to toggle source
# File lib/studio_game/player.rb, line 32
def points
  @found_treasures.values.reduce(0) { |sum, v| sum + v }
end
print_points() click to toggle source
score() click to toggle source
# File lib/studio_game/player.rb, line 36
def score
  @health + @name.length + self.points 
end
to_s() click to toggle source
# File lib/studio_game/player.rb, line 17
def to_s 
  "I'm #{@name.capitalize} with a health of #{@health} and a score of #{score.to_s}."
end