Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require_relative 'player'
- require_relative 'die'
- require_relative "game_turn"
- require_relative "treasure_trove"
- class Game
- attr_reader :title
- def initialize(title)
- @title = title
- @players = []
- end
- def add_player(player)
- # if @title == "knucleheads" then
- @players << player
- # def add_player(a_player)
- # @players.push(a_player)
- end
- # if @title == "chipmunks" then
- # @players << player
- #end
- # if @title == "tmnt" then
- # @players << player
- #end
- #end
- def play(rounds)
- puts "There are #{@players.size} players in #{@title.upcase}: "
- @players.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 |round|
- puts "\nRound #{round}:"
- @players.each do |player|
- GameTurn.take_turn(player)
- puts player
- end
- end
- end
- def print_name_and_health(player)
- puts "#{player.name} (#{player.health})"
- end
- def total_points
- @players.reduce(0) { |sum, player| sum + player.points }
- end
- def print_stats
- puts "\n#{@title.upcase} Statistics:"
- strong_players, wimpy_players = @players.partition { |player| player.strong? }
- puts "\n#{strong_players.size} strong players:"
- strong_players.each do |player|
- print_name_and_health(player)
- end
- puts "\n#{wimpy_players.size} wimpy players:"
- wimpy_players.each do |player|
- print_name_and_health(player)
- end
- puts "\n#{@title.upcase} High Scores:"
- @players.sort.each do |player|
- formatted_name = player.name.ljust(20, '.')
- puts "#{formatted_name} #{player.score}"
- end
- # puts "\n#{total_points} total points from treasures found"
- #@players.sort.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
- puts "\n#{total_points} total points from treasures found"
- @players.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
- def high_score_entry(player)
- formatted_name = player.name.ljust(20, '.')
- "#{formatted_name} #{player.score}"
- puts "\n#{@title} High Scores:"
- @players.sort.each do |player|
- puts high_score_entry(player)
- end
- end
- def load_players(from_file)
- File.readlines(from_file).each do |line|
- add_player(Player.from_csv(line))
- puts line
- # end
- end
- end
- def save_high_scores(to_file="high_scores.txt")
- File.open(to_file, "w") do |file|
- file.puts "#{@title} High Scores:"
- @players.sort.each do |player|
- file.puts high_score_entry(player)
- end
- #number_rolled = die.roll
- #puts player.to_s
- #end
- #@players.each do |player|
- #player.blam
- #player.wOOt
- #player.wOOt
- # puts player
- #end
- #@players.each do |player|
- # die =
- #end
- #end
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement