class PAUL::Game
Public Class Methods
new(name)
click to toggle source
# File lib/PAUL/exercise11game.rb, line 27 def initialize (name) @name = name @player = [] end
Public Instance Methods
add_player(player)
click to toggle source
# File lib/PAUL/exercise11game.rb, line 32 def add_player(player) @player << player end
load_players(default_player_file)
click to toggle source
# File lib/PAUL/exercise11game.rb, line 40 def load_players(default_player_file) File.readlines(default_player_file).each do |line| name, health = line.split(',') player = PAUL::Player.new(name, Integer(health)) add_player(player) end end
play(rounds)
click to toggle source
# File lib/PAUL/exercise11game.rb, line 96 def play(rounds) puts "There are #{@player.length} in #{@name}'s playlist: " @player.each do |player| puts player end treasures = TreasureTrove::TREASURES puts "\nThere are #{treasures.size} treasures to be found:" treasures.each do |treasure| puts "A #{treasure.name} is worth #{treasure.points} points" end 1.upto(rounds) do |count| puts "\n round #{count}" @player.each do |player| GameTurn.take_turn(player) puts player end end end
print_stats()
click to toggle source
def save_high_scores(to_file=“high_scores.txt”)
File.open(to_file, "w") do |file| file.puts "#{@title} High Scores:" # @player.sort.each do |player| # formatted_name = player.name.ljust(20, '.') # file.puts "#{formatted_name} #{player.score}" # end end
end
# File lib/PAUL/exercise11game.rb, line 60 def print_stats strong_players, wimpy_players = @player.partition { |player| player.strong? } puts "\n#{@name} Statistics:" puts "\n#{strong_players.size} strong players:" strong_players.each do |player| puts "#{player.name} (#{player.health})" end puts "\n#{wimpy_players.size} wimpy players:" wimpy_players.each do |player| puts "#{player.name} (#{player.health})" end sorted_players = @player.sort { |a, b| b.score <=> a.score } puts "\n#{@name} High Scores:" sorted_players.each do |player| formatted_name = player.name.ljust(20, '.') puts "#{formatted_name} #{player.score}" end @player.each do |player| puts "\n#{player.name}'s point totals:" player.each_found_treasure do |treasure| puts "#{treasure.points} total #{treasure.name} points." end puts "#{player.points} grand total points" end end
total_points()
click to toggle source
# File lib/PAUL/exercise11game.rb, line 36 def total_points @player.reduce(0) { |sum, player| sum + player.points } end