class StudioGame::Game
Attributes
title[R]
Public Class Methods
new(name)
click to toggle source
# File lib/studio_game/game.rb, line 10 def initialize(name) @title = name.capitalize @round_number = 1 @players = [] end
Public Instance Methods
add_player(player)
click to toggle source
# File lib/studio_game/game.rb, line 16 def add_player(player) @players.push(player) end
load_players(filename)
click to toggle source
# File lib/studio_game/game.rb, line 30 def load_players(filename) players = CSV.open filename, headers: false players.each do |row| name = row[0] health = Integer(row[1]) add_player(Player.new(name, health)) end end
play()
click to toggle source
# File lib/studio_game/game.rb, line 20 def play puts "Round #{@round_number}" @players.each do |player| GameTurn.take_turn(player) end @round_number += 1 puts print_stats end
print_stats()
click to toggle source
# File lib/studio_game/game.rb, line 56 def print_stats strong, whimpy = @players.partition { |p| p.strong?} puts "\n#{@title} Statistics:\n#{strong.size} strong players:" strong.each do |p| puts "#{p.name} (#{p.health})" end puts "\n#{whimpy.size} whimpy players:" whimpy.each do |p| puts "#{p.name} (#{p.health})" end sorted_players = @players.sort { |a, b| b.score <=> a.score} puts "\n#{@title} Scores:" sorted_players.each do |p| puts "#{p.name} (#{p.health}):\n#{p.points} total points\nTreasures:" p.each_found_treasure do |treasure| puts "#{treasure.points} total #{treasure.name} points" end end end
print_treasures()
click to toggle source
# File lib/studio_game/game.rb, line 40 def print_treasures treasures = TreasureTrove::TREASURES puts "There are #{treasures.size} treasures to be found." treasures.each do |t| puts end end
save_stats(filename="./bin/highscores.txt")
click to toggle source
# File lib/studio_game/game.rb, line 48 def save_stats(filename="./bin/highscores.txt") File.open(filename, "w") do |file| @players.each do |player| file.puts "#{player.name}..........#{player.score}" end end end