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
# File lib/studio_game/player.rb, line 51 def print_points puts "\n#{@name}'s point totals:" self.each_found_treasure do |treasure| puts "#{treasure.points} total #{treasure.name} points" end puts "#{self.points} grand total points" end
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