PlayRockPaperScissorsGame 1.8.1 → 1.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7073a04219fcda32d190ef02164cccb3b0357e3d
4
- data.tar.gz: 55c7e5f7aab030f8b840271e6f515f6e0be5193e
3
+ metadata.gz: 0c735ef86c07f47786469c4edc44598c69c9527a
4
+ data.tar.gz: 3e1aeb49a453290d314f56587e3f5d337188b3a9
5
5
  SHA512:
6
- metadata.gz: 47150f75b914bff84db88162b3985d151f7a3b4a1b531fac53a01beb8930269b3870c92d95923d1021cc944a68908d4e7bec7582f6bbec8e1b5ff61de3d4fe85
7
- data.tar.gz: 3c047926530d22ee40a87cfff199c9ca50bc60de1d9d2515fb865c2be6c1f8a0311e9ee59a338e98b47369334a703e0e7fd16c6f8d75e55bc636bef0485d5f50
6
+ metadata.gz: e3100a3bfd0db3930650297bcf1826d0cf98699a3be4b793fe7b4f2b439b4ca21f4fc12d77fe3b0adde830049fc8e507720b76840736bc89fef4aad78d062382
7
+ data.tar.gz: 1bd1c35cddb7a98ebe6e55001ed6fc3b9d6fe37323dcc3ed7d1fd2eac9d5143f3754183a2a7e12360d97617d0787b1533975310d56e0204c3b59bec97fe8115c
@@ -11,88 +11,91 @@
11
11
 
12
12
  class PlayRockPaperScissorsGame
13
13
 
14
- require "colorized_string";
15
- ColorizedString.colors;
16
- ColorizedString.modes;
14
+ require "colorized_string"
15
+ ColorizedString.colors
16
+ ColorizedString.modes
17
17
 
18
18
  module Constants
19
- protected;
20
- NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS };
21
- VALID_ENTRIES = NTRY_TO_SYM.keys;
22
- COMPUTER_CHOICES = NTRY_TO_SYM.values;
23
- WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]]; # format: player choice, computer choice
24
- LOSERS = WINNERS.map { |i,j| [j,i] }; # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
25
- INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""];
26
- end;
19
+ protected
20
+ NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS }
21
+ VALID_ENTRIES = NTRY_TO_SYM.keys
22
+ COMPUTER_CHOICES = NTRY_TO_SYM.values
23
+ WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
24
+ LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
25
+ INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
26
+ end
27
27
 
28
28
  class << self
29
29
  def continue(str1, str2, str3)
30
- puts ColorizedString[str1].colorize(:color => :green);
31
- print ColorizedString[str2].colorize(:color => :green);
32
- gets;
33
- puts ColorizedString[str3].colorize(:color => :green);
34
- end;
35
- end;
36
- continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2]);
30
+ puts ColorizedString[str1].colorize(:color => :green)
31
+ print ColorizedString[str2].colorize(:color => :green)
32
+ gets
33
+ puts ColorizedString[str3].colorize(:color => :green)
34
+ end
35
+ end
36
+ continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
37
37
  def initialize
38
- @player_score = @computer_score = @ties = 0;
39
- end;
38
+ @player_score = @computer_score = @ties = 0
39
+ end
40
40
  def play(winning_score)
41
41
  while @player_score < winning_score && @computer_score < winning_score
42
42
  puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
43
- ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue);
44
- player = PrivateMethods.player_choice;
45
- computer = Constants::COMPUTER_CHOICES.sample;
46
- puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue);
47
- puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue);
43
+ ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
44
+ player = PrivateMethods.player_choice
45
+ computer = Constants::COMPUTER_CHOICES.sample
46
+ puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
47
+ puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
48
48
  case PrivateMethods.player_outcome [player, computer]
49
49
  when :WIN
50
- puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red);
51
- @player_score += 1;
50
+ puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
51
+ @player_score += 1
52
52
  when :LOSE
53
- puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red);
54
- @computer_score += 1;
53
+ puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
54
+ @computer_score += 1
55
55
  else
56
- puts ColorizedString["Tie, choose again"].colorize(:red);
57
- @ties += 1;
58
- end;
59
- end;
56
+ puts ColorizedString["Tie, choose again"].colorize(:red)
57
+ @ties += 1
58
+ end
59
+ end
60
60
  puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
61
- ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue);
61
+ ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
62
62
  case PrivateMethods.final_outcome(@player_score, @computer_score)
63
63
  when :WIN
64
- puts ColorizedString["Player wins!"].colorize(:red);
64
+ puts ColorizedString["Player wins!"].colorize(:red)
65
65
  when :LOSE
66
- puts ColorizedString["Computer wins!"].colorize(:red);
66
+ puts ColorizedString["Computer wins!"].colorize(:red)
67
67
  else
68
- puts ColorizedString["It's a tie!"].colorize(:red);
69
- end;
70
- gets;
71
- end;
68
+ puts ColorizedString["It's a tie!"].colorize(:red)
69
+ end
70
+ gets
71
+ end
72
72
  module PrivateMethods
73
- private;
73
+ private
74
74
  class << self
75
75
  def player_choice
76
76
  loop do
77
- print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green);
78
- choice = gets.chomp.downcase;
79
- return Constants::NTRY_TO_SYM[choice] if Constants::NTRY_TO_SYM.key?(choice);
80
- puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green);
81
- end;
82
- end;
77
+ print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
78
+ choice = gets.chomp.downcase
79
+ if Constants::NTRY_TO_SYM.key?(choice)
80
+ return Constants::NTRY_TO_SYM[choice]
81
+ elsif choice != Constants::VALID_ENTRIES
82
+ puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
83
+ end
84
+ end
85
+ end
83
86
  def player_outcome(plays)
84
- return :WIN if Constants::WINNERS.include?(plays);
85
- return :LOSE if Constants::LOSERS.include?(plays);
86
- return :TIE if (!:WIN || !:LOSE);
87
- end;
87
+ return :WIN if Constants::WINNERS.include?(plays)
88
+ return :LOSE if Constants::LOSERS.include?(plays)
89
+ return :TIE if !:WIN | !:LOSE
90
+ end
88
91
  def final_outcome(pl, co)
89
- return :WIN if pl > co;
90
- return :LOSE if pl < co;
91
- return :TIE if pl = co;
92
- end;
93
- end;
94
- end;
95
- end;
92
+ return :WIN if pl > co
93
+ return :LOSE if pl < co
94
+ return :TIE if pl = co
95
+ end
96
+ end
97
+ end
98
+ end
96
99
 
97
- PlayRockPaperScissorsGame.new.play(2); # best of 3
100
+ PlayRockPaperScissorsGame.new.play(2) # best of 3
98
101
 
data/bin/rps CHANGED
@@ -11,88 +11,91 @@
11
11
 
12
12
  class PlayRockPaperScissorsGame
13
13
 
14
- require "colorized_string";
15
- ColorizedString.colors;
16
- ColorizedString.modes;
14
+ require "colorized_string"
15
+ ColorizedString.colors
16
+ ColorizedString.modes
17
17
 
18
18
  module Constants
19
- protected;
20
- NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS };
21
- VALID_ENTRIES = NTRY_TO_SYM.keys;
22
- COMPUTER_CHOICES = NTRY_TO_SYM.values;
23
- WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]]; # format: player choice, computer choice
24
- LOSERS = WINNERS.map { |i,j| [j,i] }; # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
25
- INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""];
26
- end;
19
+ protected
20
+ NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS }
21
+ VALID_ENTRIES = NTRY_TO_SYM.keys
22
+ COMPUTER_CHOICES = NTRY_TO_SYM.values
23
+ WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
24
+ LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
25
+ INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
26
+ end
27
27
 
28
28
  class << self
29
29
  def continue(str1, str2, str3)
30
- puts ColorizedString[str1].colorize(:color => :green);
31
- print ColorizedString[str2].colorize(:color => :green);
32
- gets;
33
- puts ColorizedString[str3].colorize(:color => :green);
34
- end;
35
- end;
36
- continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2]);
30
+ puts ColorizedString[str1].colorize(:color => :green)
31
+ print ColorizedString[str2].colorize(:color => :green)
32
+ gets
33
+ puts ColorizedString[str3].colorize(:color => :green)
34
+ end
35
+ end
36
+ continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
37
37
  def initialize
38
- @player_score = @computer_score = @ties = 0;
39
- end;
38
+ @player_score = @computer_score = @ties = 0
39
+ end
40
40
  def play(winning_score)
41
41
  while @player_score < winning_score && @computer_score < winning_score
42
42
  puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
43
- ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue);
44
- player = PrivateMethods.player_choice;
45
- computer = Constants::COMPUTER_CHOICES.sample;
46
- puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue);
47
- puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue);
43
+ ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
44
+ player = PrivateMethods.player_choice
45
+ computer = Constants::COMPUTER_CHOICES.sample
46
+ puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
47
+ puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
48
48
  case PrivateMethods.player_outcome [player, computer]
49
49
  when :WIN
50
- puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red);
51
- @player_score += 1;
50
+ puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
51
+ @player_score += 1
52
52
  when :LOSE
53
- puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red);
54
- @computer_score += 1;
53
+ puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
54
+ @computer_score += 1
55
55
  else
56
- puts ColorizedString["Tie, choose again"].colorize(:red);
57
- @ties += 1;
58
- end;
59
- end;
56
+ puts ColorizedString["Tie, choose again"].colorize(:red)
57
+ @ties += 1
58
+ end
59
+ end
60
60
  puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
61
- ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue);
61
+ ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
62
62
  case PrivateMethods.final_outcome(@player_score, @computer_score)
63
63
  when :WIN
64
- puts ColorizedString["Player wins!"].colorize(:red);
64
+ puts ColorizedString["Player wins!"].colorize(:red)
65
65
  when :LOSE
66
- puts ColorizedString["Computer wins!"].colorize(:red);
66
+ puts ColorizedString["Computer wins!"].colorize(:red)
67
67
  else
68
- puts ColorizedString["It's a tie!"].colorize(:red);
69
- end;
70
- gets;
71
- end;
68
+ puts ColorizedString["It's a tie!"].colorize(:red)
69
+ end
70
+ gets
71
+ end
72
72
  module PrivateMethods
73
- private;
73
+ private
74
74
  class << self
75
75
  def player_choice
76
76
  loop do
77
- print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green);
78
- choice = gets.chomp.downcase;
79
- return Constants::NTRY_TO_SYM[choice] if Constants::NTRY_TO_SYM.key?(choice);
80
- puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green);
81
- end;
82
- end;
77
+ print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
78
+ choice = gets.chomp.downcase
79
+ if Constants::NTRY_TO_SYM.key?(choice)
80
+ return Constants::NTRY_TO_SYM[choice]
81
+ elsif choice != Constants::VALID_ENTRIES
82
+ puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
83
+ end
84
+ end
85
+ end
83
86
  def player_outcome(plays)
84
- return :WIN if Constants::WINNERS.include?(plays);
85
- return :LOSE if Constants::LOSERS.include?(plays);
86
- return :TIE if (!:WIN || !:LOSE);
87
- end;
87
+ return :WIN if Constants::WINNERS.include?(plays)
88
+ return :LOSE if Constants::LOSERS.include?(plays)
89
+ return :TIE if !:WIN | !:LOSE
90
+ end
88
91
  def final_outcome(pl, co)
89
- return :WIN if pl > co;
90
- return :LOSE if pl < co;
91
- return :TIE if pl = co;
92
- end;
93
- end;
94
- end;
95
- end;
92
+ return :WIN if pl > co
93
+ return :LOSE if pl < co
94
+ return :TIE if pl = co
95
+ end
96
+ end
97
+ end
98
+ end
96
99
 
97
- PlayRockPaperScissorsGame.new.play(2); # best of 3
100
+ PlayRockPaperScissorsGame.new.play(2) # best of 3
98
101
 
data/lib/ref/Constants.rb CHANGED
@@ -1,24 +1,24 @@
1
- require "colorized_string";
2
- ColorizedString.colors;
3
- ColorizedString.modes;
1
+ require "colorized_string"
2
+ ColorizedString.colors
3
+ ColorizedString.modes
4
4
  module Constants
5
- protected;
5
+ protected
6
6
  NTRY_TO_SYM = {
7
7
  'p' => :PAPER,
8
8
  'r' => :ROCK,
9
9
  's' => :SCISSORS
10
- };
11
- VALID_ENTRIES = NTRY_TO_SYM.keys;
12
- COMPUTER_CHOICES = NTRY_TO_SYM.values;
10
+ }
11
+ VALID_ENTRIES = NTRY_TO_SYM.keys
12
+ COMPUTER_CHOICES = NTRY_TO_SYM.values
13
13
  WINNERS = [
14
14
  [:SCISSORS, :PAPER],
15
15
  [:PAPER, :ROCK],
16
16
  [:ROCK, :SCISSORS]
17
- ]; # format: player choice, computer choice
18
- LOSERS = WINNERS.map { |i,j| [j,i] }; # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
17
+ ] # format: player choice, computer choice
18
+ LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
19
19
  INIT_STRINGS = [
20
20
  ColorizedString["You are about to enter a rock-paper-scissors best of 3 match."].colorize(:green),
21
21
  ColorizedString["Press the return/enter key to continue..."].colorize(:green),
22
22
  ""
23
- ];
24
- end;
23
+ ]
24
+ end
@@ -1,26 +1,30 @@
1
- require "colorized_string";
2
- ColorizedString.colors;
3
- ColorizedString.modes;
1
+ require "colorized_string"
2
+ ColorizedString.colors
3
+ ColorizedString.modes
4
4
  module PrivateMethods
5
- private;
5
+ private
6
6
  class << self
7
7
  def player_choice
8
8
  loop do
9
- print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green);
10
- choice = gets.chomp.downcase;
11
- return Constants::NTRY_TO_SYM[choice] if Constants::NTRY_TO_SYM.key?(choice);
12
- puts ColorizedString["That entry is invalid. Please re-enter"].colorize(:green);
13
- end;
14
- end;
9
+ print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
10
+ choice = gets.chomp.downcase
11
+
12
+ if Constants::NTRY_TO_SYM.key?(choice)
13
+ return Constants::NTRY_TO_SYM[choice]
14
+ elsif choice != Constants::VALID_ENTRIES
15
+ puts ColorizedString["That entry is invalid. Please re-enter"].colorize(:green)
16
+ end
17
+ end
18
+ end
15
19
  def player_outcome(plays)
16
- return :WIN if Constants::WINNERS.include?(plays);
17
- return :LOSE if Constants::LOSERS.include?(plays);
18
- return :TIE if (!:WIN || !:LOSE);
19
- end;
20
+ return :WIN if Constants::WINNERS.include?(plays)
21
+ return :LOSE if Constants::LOSERS.include?(plays)
22
+ return :TIE if !:WIN | !:LOSE
23
+ end
20
24
  def final_outcome(pl, co)
21
- return :WIN if pl > co;
22
- return :LOSE if pl < co;
23
- return :TIE if pl = co;
24
- end;
25
- end;
26
- end;
25
+ return :WIN if pl > co
26
+ return :LOSE if pl < co
27
+ return :TIE if pl = co
28
+ end
29
+ end
30
+ end
data/lib/rps.rb CHANGED
@@ -8,59 +8,59 @@
8
8
 
9
9
  class PlayRockPaperScissorsGame
10
10
 
11
- require "colorized_string";
12
- ColorizedString.colors;
13
- ColorizedString.modes;
11
+ require "colorized_string"
12
+ ColorizedString.colors
13
+ ColorizedString.modes
14
14
 
15
- require "ref/Constants.rb";
15
+ require "ref/Constants.rb"
16
16
 
17
17
  class << self
18
18
  def continue(str1, str2, str3)
19
- puts ColorizedString[str1].colorize(:color => :green);
20
- print ColorizedString[str2].colorize(:color => :green);
21
- gets;
22
- puts ColorizedString[str3].colorize(:color => :green);
23
- end;
24
- end;
25
- continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2]);
19
+ puts ColorizedString[str1].colorize(:color => :green)
20
+ print ColorizedString[str2].colorize(:color => :green)
21
+ gets
22
+ puts ColorizedString[str3].colorize(:color => :green)
23
+ end
24
+ end
25
+ continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
26
26
  def initialize
27
- @player_score = @computer_score = @ties = 0;
28
- end;
27
+ @player_score = @computer_score = @ties = 0
28
+ end
29
29
  def play(winning_score)
30
30
  while @player_score < winning_score && @computer_score < winning_score
31
31
  puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
32
- ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue);
33
- player = PrivateMethods.player_choice;
34
- computer = Constants::COMPUTER_CHOICES.sample;
35
- puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue);
36
- puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue);
32
+ ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
33
+ player = PrivateMethods.player_choice
34
+ computer = Constants::COMPUTER_CHOICES.sample
35
+ puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
36
+ puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
37
37
  case PrivateMethods.player_outcome [player, computer]
38
38
  when :WIN
39
- puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red);
40
- @player_score += 1;
39
+ puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
40
+ @player_score += 1
41
41
  when :LOSE
42
- puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red);
43
- @computer_score += 1;
42
+ puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
43
+ @computer_score += 1
44
44
  else
45
- puts ColorizedString["Tie, choose again"].colorize(:red);
46
- @ties += 1;
47
- end;
48
- end;
45
+ puts ColorizedString["Tie, choose again"].colorize(:red)
46
+ @ties += 1
47
+ end
48
+ end
49
49
  puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
50
- ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue);
50
+ ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
51
51
  case PrivateMethods.final_outcome(@player_score, @computer_score)
52
52
  when :WIN
53
- puts ColorizedString["Player wins!"].colorize(:red);
53
+ puts ColorizedString["Player wins!"].colorize(:red)
54
54
  when :LOSE
55
- puts ColorizedString["Computer wins!"].colorize(:red);
55
+ puts ColorizedString["Computer wins!"].colorize(:red)
56
56
  else
57
- puts ColorizedString["It's a tie!"].colorize(:red);
58
- end;
59
- gets;
60
- end;
61
- require "ref/PrivateMethods.rb";
62
- end;
57
+ puts ColorizedString["It's a tie!"].colorize(:red)
58
+ end
59
+ gets
60
+ end
61
+ require "ref/PrivateMethods.rb"
62
+ end
63
63
 
64
64
 
65
- PlayRockPaperScissorsGame.new.play(2); # best of 3
65
+ PlayRockPaperScissorsGame.new.play(2) # best of 3
66
66
 
data/lib/rps/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module PlayRockPaperScissorsGame
2
- VERSION = "1.8.1";
3
- end;
2
+ VERSION = "1.8.3"
3
+ end
data/rps.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "PlayRockPaperScissorsGame"
3
- spec.version = "1.8.1"
3
+ spec.version = "1.8.3"
4
4
  spec.date = "2017-04-01"
5
5
  spec.summary = "A Rock Paper Scissors Ruby Gem"
6
6
  spec.description = "A Ruby-programmed rock paper scissors game. To install: gem install PlayRockPaperScissorsGame; To run: rps; or: PlayRockPaperScissorsGame; For issues: https://github.com/bag3318/RockPaperScissors/issues"
data/test/test_rps.rb CHANGED
@@ -8,87 +8,90 @@
8
8
 
9
9
  class RakeTest
10
10
 
11
- require "colorized_string";
12
- ColorizedString.colors;
13
- ColorizedString.modes;
11
+ require "colorized_string"
12
+ ColorizedString.colors
13
+ ColorizedString.modes
14
14
 
15
15
  module Constants
16
- protected;
17
- NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS };
18
- VALID_ENTRIES = NTRY_TO_SYM.keys;
19
- COMPUTER_CHOICES = NTRY_TO_SYM.values;
20
- WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]]; # format: player choice, computer choice
21
- LOSERS = WINNERS.map { |i,j| [j,i] }; # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
22
- INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""];
23
- end;
16
+ protected
17
+ NTRY_TO_SYM = { 'p' => :PAPER, 'r' => :ROCK, 's' => :SCISSORS }
18
+ VALID_ENTRIES = NTRY_TO_SYM.keys
19
+ COMPUTER_CHOICES = NTRY_TO_SYM.values
20
+ WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
21
+ LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
22
+ INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
23
+ end
24
24
  class << self
25
25
  def continue(str1, str2, str3)
26
- puts ColorizedString[str1].colorize(:color => :green);
27
- print ColorizedString[str2].colorize(:color => :green);
28
- gets;
29
- puts ColorizedString[str3].colorize(:color => :green);
30
- end;
31
- end;
32
- continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2]);
26
+ puts ColorizedString[str1].colorize(:color => :green)
27
+ print ColorizedString[str2].colorize(:color => :green)
28
+ gets
29
+ puts ColorizedString[str3].colorize(:color => :green)
30
+ end
31
+ end
32
+ continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
33
33
  def initialize
34
- @player_score = @computer_score = @ties = 0;
35
- end;
34
+ @player_score = @computer_score = @ties = 0
35
+ end
36
36
  def testPlay(winning_score)
37
37
  while @player_score < winning_score && @computer_score < winning_score
38
38
  puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
39
- ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue);
40
- player = PrivateMethods.player_choice;
41
- computer = Constants::COMPUTER_CHOICES.sample;
42
- puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue);
43
- puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue);
39
+ ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
40
+ player = PrivateMethods.player_choice
41
+ computer = Constants::COMPUTER_CHOICES.sample
42
+ puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
43
+ puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
44
44
  case PrivateMethods.player_outcome [player, computer]
45
45
  when :WIN
46
- puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red);
47
- @player_score += 1;
46
+ puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
47
+ @player_score += 1
48
48
  when :LOSE
49
- puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red);
50
- @computer_score += 1;
49
+ puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
50
+ @computer_score += 1
51
51
  else
52
- puts ColorizedString["Tie, choose again"].colorize(:red);
53
- @ties += 1;
54
- end;
55
- end;
52
+ puts ColorizedString["Tie, choose again"].colorize(:red)
53
+ @ties += 1
54
+ end
55
+ end
56
56
  puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
57
- ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue);
57
+ ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
58
58
  case PrivateMethods.final_outcome(@player_score, @computer_score)
59
59
  when :WIN
60
- puts ColorizedString["Player wins!"].colorize(:red);
60
+ puts ColorizedString["Player wins!"].colorize(:red)
61
61
  when :LOSE
62
- puts ColorizedString["Computer wins!"].colorize(:red);
62
+ puts ColorizedString["Computer wins!"].colorize(:red)
63
63
  else
64
- puts ColorizedString["It's a tie!"].colorize(:red);
65
- end;
66
- gets;
67
- end;
64
+ puts ColorizedString["It's a tie!"].colorize(:red)
65
+ end
66
+ gets
67
+ end
68
68
  module PrivateMethods
69
- private;
69
+ private
70
70
  class << self
71
71
  def player_choice
72
72
  loop do
73
- print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green);
74
- choice = gets.chomp.downcase;
75
- return Constants::NTRY_TO_SYM[choice] if Constants::NTRY_TO_SYM.key?(choice);
76
- puts ColorizedString["That entry is invalid. Please re-enter"].colorize(:green);
77
- end;
78
- end;
73
+ print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
74
+ choice = gets.chomp.downcase
75
+ if Constants::NTRY_TO_SYM.key?(choice)
76
+ return Constants::NTRY_TO_SYM[choice]
77
+ elsif choice != Constants::VALID_ENTRIES
78
+ puts ColorizedString["That entry is invalid. Please re-enter"].colorize(:green)
79
+ end
80
+ end
81
+ end
79
82
  def player_outcome(plays)
80
- return :WIN if Constants::WINNERS.include?(plays);
81
- return :LOSE if Constants::LOSERS.include?(plays);
82
- return :TIE if !:WIN | !:LOSE;
83
- end;
83
+ return :WIN if Constants::WINNERS.include?(plays)
84
+ return :LOSE if Constants::LOSERS.include?(plays)
85
+ return :TIE if !:WIN | !:LOSE
86
+ end
84
87
  def final_outcome(pl, co)
85
- return :WIN if pl > co;
86
- return :LOSE if pl < co;
87
- return :TIE if pl = co;
88
- end;
89
- end;
90
- end;
91
- end;
88
+ return :WIN if pl > co
89
+ return :LOSE if pl < co
90
+ return :TIE if pl = co
91
+ end
92
+ end
93
+ end
94
+ end
92
95
 
93
- RakeTest.new.testPlay(2); # best of 3
96
+ RakeTest.new.testPlay(2) # best of 3
94
97
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: PlayRockPaperScissorsGame
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bag3318