bin/rps in PlayRockPaperScissorsGame-1.4.8 vs bin/rps in PlayRockPaperScissorsGame-1.4.9

- old
+ new

@@ -8,11 +8,14 @@ |====================================| =end class PlayRockPaperScissorsGame + require "colorize"; + class RPS + protected; module Constants NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS }; VALID_ENTRIES = NTRY_TO_SYM.keys; COMPUTER_CHOICES = NTRY_TO_SYM.values; @@ -22,61 +25,61 @@ end; class RockPaperScissors class << self def continue(str1, str2, str3) - puts str1; - print str2; + puts str1.green.bold; + print str2.green.bold; gets; - puts str3; + puts str3.green.bold; end; end; continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2]); def initialize @player_score = @computer_score = @ties = 0; end; def play(winning_score) while @player_score < winning_score && @computer_score < winning_score - puts "Player score: #{@player_score}, " + - "Computer score: #{@computer_score}, Ties: #{@ties}"; + puts "Player score: #{@player_score}, ".green.bold + + "Computer score: #{@computer_score}, Ties: #{@ties}".green.bold; player = PrivateMethods.player_choice; computer = Constants::COMPUTER_CHOICES.sample; - puts "\nPlayer chooses #{player.to_s.downcase}"; - puts "Computer chooses #{computer.to_s.downcase}"; + puts "\nPlayer chooses #{player.to_s.downcase}".green.bold; + puts "Computer chooses #{computer.to_s.downcase}".green.bold; case PrivateMethods.player_outcome [player, computer] when :WIN - puts "#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"; + puts "#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round".green.bold; @player_score += 1; when :LOSE - puts "#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"; + puts "#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round".green.bold; @computer_score += 1; else - puts "Tie, choose again"; + puts "Tie, choose again".green.bold; @ties += 1; end; end; - puts "\nFinal score: player: #{@player_score}, " + - "computer: #{@computer_score} (ties: #{@ties})"; + puts "\nFinal score: player: #{@player_score}, ".green.bold + + "computer: #{@computer_score} (ties: #{@ties})".green.bold; case PrivateMethods.final_outcome(@player_score, @computer_score) when :WIN - puts "Player wins!"; + puts "Player wins!".green.bold; when :LOSE - puts "Computer wins!"; + puts "Computer wins!".green.bold; else - puts "It's a tie!"; + puts "It's a tie!".green.bold; end; gets; end; private; module PrivateMethods class << self def player_choice loop do - print "Choose rock (r), paper (p) or scissors (s): "; + print "Choose rock (r), paper (p) or scissors (s): ".green.bold; choice = gets.chomp.downcase; return Constants::NTRY_TO_SYM[choice] if Constants::NTRY_TO_SYM.key?(choice); - puts "That entry is invalid. Please re-enter."; + puts "That entry is invalid. Please re-enter.".green.bold; end; end; def player_outcome(plays) return :WIN if Constants::WINNERS.include?(plays); return :LOSE if Constants::LOSERS.include?(plays); @@ -92,6 +95,5 @@ end; end; end; PlayRockPaperScissorsGame::RPS::RockPaperScissors.new.play(2); # best of 3 -