class StudioGame::Game
Public Class Methods
new(name)
click to toggle source
# File lib/studio_game/game.rb, line 9 def initialize(name) @name = name.capitalize @players = [] end
Public Instance Methods
add_players(players)
click to toggle source
# File lib/studio_game/game.rb, line 14 def add_players(players) @players.push(players) end
load_players(from_file)
click to toggle source
# File lib/studio_game/game.rb, line 18 def load_players(from_file) File.readlines(from_file).each do |line| name,health = line.split(',') player = Player.new(name,Integer(health)) add_players(player) end end
play(rounds)
click to toggle source
# File lib/studio_game/game.rb, line 37 def play(rounds) treasures = TreasureTrove::TREASURES puts "There are #{treasures.size} treasures to be found:" treasures.each do |treasure| puts "Treasure: #{treasure.name}\t Points: #{treasure.points}" end 1.upto(rounds) do |round| puts "\n" puts "Round: #{round}" @players.each do |player| GameTurn.take_turn(player) end end end
print_name_and_health(player)
click to toggle source
# File lib/studio_game/game.rb, line 52 def print_name_and_health(player) puts "Player: #{player.name}\t Health:#{player.health}" end
print_stats()
click to toggle source
# File lib/studio_game/game.rb, line 56 def print_stats strong_players, weak_players = @players.partition {|p| p.strong?} #weak_players = @players.reject {|p| p.strong?} puts "\n" puts "Strong Players:" strong_players.each do |player| print_name_and_health(player) end puts "\n" puts "Weak Players" weak_players.each do |player| print_name_and_health(player) end sorted_players = @players.sort puts "Knuckleheads High Score:" sorted_players.each do |player| puts "#{player.name}....................#{player.score} " end puts "\n" @players.each do |player| player.each_treasure do |treasure| puts "#{treasure.points} total #{treasure.name} points" end puts "#{player.name}'s grand total points: #{player.points}" puts "\n" end end
save_high_score(to_file = "high_scores.txt")
click to toggle source
# File lib/studio_game/game.rb, line 26 def save_high_score(to_file = "high_scores.txt") File.open(to_file, "w") do |file| puts "Saving high score to file to #{to_file}" file.puts "#{@name} High Scores: " @players.each do |player| formatted_name = player.name.ljust(20,'.') file.puts "#{formatted_name} #{player.score}" end end end