PlayRockPaperScissorsGame 2.8.7 → 2.8.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +2 -1
- data/bin/PlayRockPaperScissorsGame +7 -7
- data/docs/Code.md +11 -11
- data/docs/Comparing_Code.md +60 -39
- data/docs/_site/about.html +1 -1
- data/docs/_site/code.html +12 -12
- data/docs/_site/comparing_code.html +61 -40
- data/docs/_site/how_to_build.html +1 -1
- data/docs/_site/how_to_run.html +1 -1
- data/docs/_site/index.html +1 -1
- data/docs/_site/testing.html +1 -1
- data/lib/PrivateMethods.rb +1 -1
- data/lib/rps/version.rb +1 -1
- data/rps.gemspec +2 -2
- data/test/test_rps.rb +7 -7
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f601a926c5e59f0cfdec18d13e85759ce9a4a768
|
4
|
+
data.tar.gz: 578bfd6b4d5e64f7dd359e2cda7714ce4777447f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdbe1221670ef068ec2a4bbd81d500bb3347e2d89378533e67bd65b672253eaed756354c13bdf8041949b5182d9cd6b336503cc6514999151a2b14c36652fa7b
|
7
|
+
data.tar.gz: beb70aed971b4de4bc524974de36c7cde89516236c0b46719520d855a5be047ae9548b4eb7895b97e945a78701f7fdc9d60c4ebf274ab387f90d7ff81ea6a1c1
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/.gitignore
CHANGED
@@ -38,25 +38,25 @@ class PlayRockPaperScissorsGame
|
|
38
38
|
def play(winning_score)
|
39
39
|
while @player_score < winning_score && @computer_score < winning_score # both the player's and the computer's score have to be less than 3
|
40
40
|
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
41
|
-
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
|
41
|
+
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}."].colorize(:blue)
|
42
42
|
player = PrivateMethods.player_choice
|
43
43
|
computer = Constants::COMPUTER_CHOICES.sample # chooses a random option for the computer
|
44
|
-
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
|
45
|
-
puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
|
44
|
+
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}."].colorize(:blue)
|
45
|
+
puts ColorizedString["Computer chooses #{computer.to_s.downcase}."].colorize(:blue)
|
46
46
|
case PrivateMethods.player_outcome [player, computer] # pass in player and computer for the contants arrays
|
47
47
|
when :WIN
|
48
|
-
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
|
48
|
+
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round."].colorize(:red)
|
49
49
|
@player_score += 1
|
50
50
|
when :LOSE
|
51
|
-
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
|
51
|
+
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round."].colorize(:red)
|
52
52
|
@computer_score += 1
|
53
53
|
else
|
54
|
-
puts ColorizedString["Tie, choose again"].colorize(:red)
|
54
|
+
puts ColorizedString["Tie, choose again."].colorize(:red)
|
55
55
|
@ties += 1
|
56
56
|
end
|
57
57
|
end
|
58
58
|
puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
|
59
|
-
ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
|
59
|
+
ColorizedString["computer: #{@computer_score} (ties: #{@ties})."].colorize(:blue)
|
60
60
|
case PrivateMethods.final_outcome(@player_score, @computer_score)
|
61
61
|
when :WIN
|
62
62
|
puts ColorizedString["Player wins!"].colorize(:red)
|
data/docs/Code.md
CHANGED
@@ -35,7 +35,7 @@ Master Code
|
|
35
35
|
class PlayRockPaperScissorsGame
|
36
36
|
|
37
37
|
module RockPaperScissors
|
38
|
-
VERSION = "2.8.
|
38
|
+
VERSION = "2.8.8"
|
39
39
|
end
|
40
40
|
|
41
41
|
# import the colorize gem
|
@@ -45,9 +45,9 @@ class PlayRockPaperScissorsGame
|
|
45
45
|
|
46
46
|
module Constants
|
47
47
|
NTRY_TO_SYM = { # define entry to symbol (key to value)
|
48
|
-
'p' => :PAPER ,
|
49
|
-
'r' => :ROCK ,
|
50
|
-
's' => :SCISSORS
|
48
|
+
'p' => :PAPER , 'paper' => :PAPER ,
|
49
|
+
'r' => :ROCK , 'rock' => :ROCK ,
|
50
|
+
's' => :SCISSORS, 'scissors' => :SCISSORS
|
51
51
|
}
|
52
52
|
VALID_ENTRIES = NTRY_TO_SYM.keys
|
53
53
|
COMPUTER_CHOICES = NTRY_TO_SYM.values
|
@@ -85,17 +85,17 @@ class PlayRockPaperScissorsGame
|
|
85
85
|
def play(winning_score)
|
86
86
|
while @player_score < winning_score && @computer_score < winning_score
|
87
87
|
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
88
|
-
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
|
88
|
+
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}."].colorize(:blue)
|
89
89
|
player = PrivateMethods.player_choice
|
90
90
|
computer = Constants::COMPUTER_CHOICES.sample # chooses a "random" option
|
91
|
-
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
|
92
|
-
puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
|
91
|
+
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}."].colorize(:blue)
|
92
|
+
puts ColorizedString["Computer chooses #{computer.to_s.downcase}."].colorize(:blue)
|
93
93
|
case PrivateMethods.player_outcome [player, computer]
|
94
94
|
when :WIN
|
95
|
-
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
|
95
|
+
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round."].colorize(:red)
|
96
96
|
@player_score += 1 # @player_score = @player_score + 1
|
97
97
|
when :LOSE
|
98
|
-
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
|
98
|
+
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round."].colorize(:red)
|
99
99
|
@computer_score += 1
|
100
100
|
else
|
101
101
|
puts ColorizedString["Tie, choose again"].colorize(:red)
|
@@ -103,7 +103,7 @@ class PlayRockPaperScissorsGame
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
|
106
|
-
ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
|
106
|
+
ColorizedString["computer: #{@computer_score} (ties: #{@ties})."].colorize(:blue)
|
107
107
|
case PrivateMethods.final_outcome(@player_score, @computer_score)
|
108
108
|
when :WIN
|
109
109
|
puts ColorizedString["Player wins!"].colorize(:red)
|
@@ -119,7 +119,7 @@ class PlayRockPaperScissorsGame
|
|
119
119
|
class << self
|
120
120
|
def player_choice
|
121
121
|
loop do
|
122
|
-
print ColorizedString["Choose
|
122
|
+
print ColorizedString["Choose: Rock (r), Paper (p), or Scissors (s): "].colorize(:green)
|
123
123
|
choice = gets.chomp.downcase
|
124
124
|
if Constants::NTRY_TO_SYM.key?(choice)
|
125
125
|
return Constants::NTRY_TO_SYM[choice]
|
data/docs/Comparing_Code.md
CHANGED
@@ -124,13 +124,32 @@ Subtlety is usually painted all over advanced ruby code. While this does make th
|
|
124
124
|
```
|
125
125
|
|
126
126
|
```ruby
|
127
|
-
|
127
|
+
#!/usr/bin/env ruby
|
128
|
+
|
129
|
+
=begin
|
130
|
+
|====================================|
|
131
|
+
| Req Ruby Ver | Req Ruby Gems Ver |
|
132
|
+
|--------------|---------------------|
|
133
|
+
| >= v2.0.0 | >= v2.6.0 |
|
134
|
+
|====================================|
|
135
|
+
=end
|
136
|
+
|
137
|
+
class PlayRockPaperScissorsGame
|
138
|
+
|
139
|
+
module RockPaperScissors
|
140
|
+
VERSION = "2.8.8"
|
141
|
+
end
|
142
|
+
|
143
|
+
# import the colorize gem
|
144
|
+
require "colorized_string"
|
145
|
+
ColorizedString.colors # import colors; ex: red, green, blue from colorize gem
|
146
|
+
ColorizedString.modes # import modes; ex: bold, italic, underline from colorize gem
|
128
147
|
|
129
148
|
module Constants
|
130
149
|
NTRY_TO_SYM = { # define entry to symbol (key to value)
|
131
|
-
'p' => :PAPER ,
|
132
|
-
'r' => :ROCK ,
|
133
|
-
's' => :SCISSORS
|
150
|
+
'p' => :PAPER , 'paper' => :PAPER ,
|
151
|
+
'r' => :ROCK , 'rock' => :ROCK ,
|
152
|
+
's' => :SCISSORS, 'scissors' => :SCISSORS
|
134
153
|
}
|
135
154
|
VALID_ENTRIES = NTRY_TO_SYM.keys
|
136
155
|
COMPUTER_CHOICES = NTRY_TO_SYM.values
|
@@ -140,60 +159,60 @@ class PlayRockPaperScissorsGame
|
|
140
159
|
[:PAPER , :ROCK ],
|
141
160
|
[:ROCK , :SCISSORS]
|
142
161
|
]
|
143
|
-
LOSERS = WINNERS.map { |player_choice,computer_choice| [computer_choice,player_choice] } #
|
162
|
+
LOSERS = WINNERS.map { |player_choice,computer_choice| [computer_choice,player_choice] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
|
144
163
|
INIT_STRINGS = [
|
145
|
-
"You are about to enter a rock-paper-scissors best of 3 match.",
|
146
|
-
"Press the return/enter key to continue..." ,
|
164
|
+
ColorizedString["You are about to enter a rock-paper-scissors best of 3 match."].colorize(:green),
|
165
|
+
ColorizedString["Press the return/enter key to continue..."].colorize(:green) ,
|
147
166
|
""
|
148
167
|
]
|
149
168
|
end
|
150
169
|
|
151
|
-
protected_methods :Constants
|
170
|
+
protected_methods :Constants
|
152
171
|
|
153
|
-
class << self
|
172
|
+
class << self # define a self calling method within the parent class
|
154
173
|
def continue(str1,str2,str3)
|
155
|
-
puts str1
|
174
|
+
puts str1
|
156
175
|
print str2
|
157
|
-
gets # press enter
|
176
|
+
gets # press enter or return to continue
|
158
177
|
puts str3
|
159
178
|
end
|
160
179
|
end
|
161
180
|
|
162
|
-
continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
|
181
|
+
continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
|
163
182
|
|
164
|
-
def initialize
|
183
|
+
def initialize # initialize variables
|
165
184
|
@player_score = @computer_score = @ties = 0
|
166
|
-
end
|
185
|
+
end
|
167
186
|
|
168
187
|
def play(winning_score)
|
169
|
-
while @player_score < winning_score && @computer_score < winning_score
|
170
|
-
puts "Player score: #{@player_score}, " +
|
171
|
-
"Computer score: #{@computer_score}, Ties: #{@ties}"
|
188
|
+
while @player_score < winning_score && @computer_score < winning_score
|
189
|
+
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
190
|
+
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}."].colorize(:blue)
|
172
191
|
player = PrivateMethods.player_choice
|
173
|
-
computer = Constants::COMPUTER_CHOICES.sample #
|
174
|
-
puts "\nPlayer chooses #{player.to_s.downcase}"
|
175
|
-
puts "Computer chooses #{computer.to_s.downcase}"
|
176
|
-
case PrivateMethods.player_outcome [player, computer]
|
192
|
+
computer = Constants::COMPUTER_CHOICES.sample # chooses a "random" option
|
193
|
+
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}."].colorize(:blue)
|
194
|
+
puts ColorizedString["Computer chooses #{computer.to_s.downcase}."].colorize(:blue)
|
195
|
+
case PrivateMethods.player_outcome [player, computer]
|
177
196
|
when :WIN
|
178
|
-
puts "#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"
|
179
|
-
@player_score += 1
|
197
|
+
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round."].colorize(:red)
|
198
|
+
@player_score += 1 # @player_score = @player_score + 1
|
180
199
|
when :LOSE
|
181
|
-
puts "#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"
|
200
|
+
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round."].colorize(:red)
|
182
201
|
@computer_score += 1
|
183
|
-
else
|
184
|
-
puts "Tie, choose again"
|
202
|
+
else
|
203
|
+
puts ColorizedString["Tie, choose again"].colorize(:red)
|
185
204
|
@ties += 1
|
186
205
|
end
|
187
206
|
end
|
188
|
-
puts "\nFinal score: player: #{@player_score}, " +
|
189
|
-
"computer: #{@computer_score} (ties: #{@ties})"
|
207
|
+
puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
|
208
|
+
ColorizedString["computer: #{@computer_score} (ties: #{@ties})."].colorize(:blue)
|
190
209
|
case PrivateMethods.final_outcome(@player_score, @computer_score)
|
191
210
|
when :WIN
|
192
|
-
puts "Player wins!"
|
211
|
+
puts ColorizedString["Player wins!"].colorize(:red)
|
193
212
|
when :LOSE
|
194
|
-
puts "Computer wins!"
|
213
|
+
puts ColorizedString["Computer wins!"].colorize(:red)
|
195
214
|
else
|
196
|
-
puts "It's a tie!"
|
215
|
+
puts ColorizedString["It's a tie!"].colorize(:red)
|
197
216
|
end
|
198
217
|
gets
|
199
218
|
end
|
@@ -202,27 +221,29 @@ class PlayRockPaperScissorsGame
|
|
202
221
|
class << self
|
203
222
|
def player_choice
|
204
223
|
loop do
|
205
|
-
print "Choose
|
224
|
+
print ColorizedString["Choose: Rock (r), Paper (p), or Scissors (s): "].colorize(:green)
|
206
225
|
choice = gets.chomp.downcase
|
207
|
-
if Constants::NTRY_TO_SYM.key?(choice)
|
226
|
+
if Constants::NTRY_TO_SYM.key?(choice)
|
208
227
|
return Constants::NTRY_TO_SYM[choice]
|
209
|
-
elsif choice != Constants::VALID_ENTRIES
|
210
|
-
puts "That entry is invalid. Please re-enter."
|
228
|
+
elsif choice != Constants::VALID_ENTRIES
|
229
|
+
puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:red)
|
211
230
|
else
|
212
231
|
return nil
|
213
232
|
end
|
214
233
|
end
|
215
234
|
end
|
235
|
+
|
216
236
|
def player_outcome(plays)
|
217
237
|
# plays = [player_choice, computer_choice]
|
218
238
|
return :WIN if Constants::WINNERS.include?(plays)
|
219
239
|
return :LOSE if Constants::LOSERS.include?(plays)
|
220
|
-
return :TIE if !:WIN | !:LOSE
|
221
|
-
end
|
240
|
+
return :TIE if !:WIN | !:LOSE
|
241
|
+
end
|
242
|
+
|
222
243
|
def final_outcome(pl,co)
|
223
244
|
return :WIN if pl > co
|
224
245
|
return :LOSE if pl < co
|
225
|
-
# there will never be a tie
|
246
|
+
# there will never be a tie fore the final outcome due to the code in the play() method
|
226
247
|
end
|
227
248
|
end
|
228
249
|
end
|
@@ -231,5 +252,5 @@ class PlayRockPaperScissorsGame
|
|
231
252
|
|
232
253
|
end
|
233
254
|
|
234
|
-
PlayRockPaperScissorsGame.new.play(2)
|
255
|
+
PlayRockPaperScissorsGame.new.play(2) # call the play method and pass in 3 (0, 1, 2) for the winning score
|
235
256
|
```
|
data/docs/_site/about.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
data/docs/_site/code.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
@@ -69,7 +69,7 @@
|
|
69
69
|
<span class="k">class</span> <span class="nc">PlayRockPaperScissorsGame</span>
|
70
70
|
|
71
71
|
<span class="k">module</span> <span class="nn">RockPaperScissors</span>
|
72
|
-
<span class="no">VERSION</span> <span class="o">=</span> <span class="s2">"2.8.
|
72
|
+
<span class="no">VERSION</span> <span class="o">=</span> <span class="s2">"2.8.8"</span>
|
73
73
|
<span class="k">end</span>
|
74
74
|
|
75
75
|
<span class="c1"># import the colorize gem</span>
|
@@ -79,9 +79,9 @@
|
|
79
79
|
|
80
80
|
<span class="k">module</span> <span class="nn">Constants</span>
|
81
81
|
<span class="no">NTRY_TO_SYM</span> <span class="o">=</span> <span class="p">{</span> <span class="c1"># define entry to symbol (key to value)</span>
|
82
|
-
<span class="s1">'p'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span>
|
83
|
-
<span class="s1">'r'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span>
|
84
|
-
<span class="s1">'s'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span>
|
82
|
+
<span class="s1">'p'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span> <span class="s1">'paper'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span>
|
83
|
+
<span class="s1">'r'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span> <span class="s1">'rock'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span>
|
84
|
+
<span class="s1">'s'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span><span class="p">,</span> <span class="s1">'scissors'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span>
|
85
85
|
<span class="p">}</span>
|
86
86
|
<span class="no">VALID_ENTRIES</span> <span class="o">=</span> <span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">keys</span>
|
87
87
|
<span class="no">COMPUTER_CHOICES</span> <span class="o">=</span> <span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">values</span>
|
@@ -119,17 +119,17 @@
|
|
119
119
|
<span class="k">def</span> <span class="nf">play</span><span class="p">(</span><span class="n">winning_score</span><span class="p">)</span>
|
120
120
|
<span class="k">while</span> <span class="vi">@player_score</span> <span class="o"><</span> <span class="n">winning_score</span> <span class="o">&&</span> <span class="vi">@computer_score</span> <span class="o"><</span> <span class="n">winning_score</span>
|
121
121
|
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Player score: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span> <span class="o">+</span>
|
122
|
-
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer score: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2">, Ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2"
|
122
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer score: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2">, Ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
123
123
|
<span class="n">player</span> <span class="o">=</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">player_choice</span>
|
124
124
|
<span class="n">computer</span> <span class="o">=</span> <span class="no">Constants</span><span class="o">::</span><span class="no">COMPUTER_CHOICES</span><span class="p">.</span><span class="nf">sample</span> <span class="c1"># chooses a "random" option</span>
|
125
|
-
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Player chooses </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2"
|
126
|
-
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer chooses </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2"
|
125
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Player chooses </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
126
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer chooses </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
127
127
|
<span class="k">case</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">player_outcome</span> <span class="p">[</span><span class="n">player</span><span class="p">,</span> <span class="n">computer</span><span class="p">]</span>
|
128
128
|
<span class="k">when</span> <span class="ss">:WIN</span>
|
129
|
-
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, player wins the round"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
129
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, player wins the round."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
130
130
|
<span class="vi">@player_score</span> <span class="o">+=</span> <span class="mi">1</span> <span class="c1"># @player_score = @player_score + 1</span>
|
131
131
|
<span class="k">when</span> <span class="ss">:LOSE</span>
|
132
|
-
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, computer wins the round"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
132
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, computer wins the round."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
133
133
|
<span class="vi">@computer_score</span> <span class="o">+=</span> <span class="mi">1</span>
|
134
134
|
<span class="k">else</span>
|
135
135
|
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Tie, choose again"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
@@ -137,7 +137,7 @@
|
|
137
137
|
<span class="k">end</span>
|
138
138
|
<span class="k">end</span>
|
139
139
|
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Final score: player: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span> <span class="o">+</span>
|
140
|
-
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"computer: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2"> (ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">)"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
140
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"computer: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2"> (ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">)."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
141
141
|
<span class="k">case</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">final_outcome</span><span class="p">(</span><span class="vi">@player_score</span><span class="p">,</span> <span class="vi">@computer_score</span><span class="p">)</span>
|
142
142
|
<span class="k">when</span> <span class="ss">:WIN</span>
|
143
143
|
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Player wins!"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
@@ -153,7 +153,7 @@
|
|
153
153
|
<span class="k">class</span> <span class="o"><<</span> <span class="nb">self</span>
|
154
154
|
<span class="k">def</span> <span class="nf">player_choice</span>
|
155
155
|
<span class="kp">loop</span> <span class="k">do</span>
|
156
|
-
<span class="nb">print</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Choose
|
156
|
+
<span class="nb">print</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Choose: Rock (r), Paper (p), or Scissors (s): "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:green</span><span class="p">)</span>
|
157
157
|
<span class="n">choice</span> <span class="o">=</span> <span class="nb">gets</span><span class="p">.</span><span class="nf">chomp</span><span class="p">.</span><span class="nf">downcase</span>
|
158
158
|
<span class="k">if</span> <span class="no">Constants</span><span class="o">::</span><span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">key?</span><span class="p">(</span><span class="n">choice</span><span class="p">)</span>
|
159
159
|
<span class="k">return</span> <span class="no">Constants</span><span class="o">::</span><span class="no">NTRY_TO_SYM</span><span class="p">[</span><span class="n">choice</span><span class="p">]</span>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
@@ -176,13 +176,32 @@
|
|
176
176
|
</code></pre>
|
177
177
|
</div>
|
178
178
|
|
179
|
-
<div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="
|
179
|
+
<div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="c1">#!/usr/bin/env ruby</span>
|
180
|
+
|
181
|
+
<span class="cm">=begin
|
182
|
+
|====================================|
|
183
|
+
| Req Ruby Ver | Req Ruby Gems Ver |
|
184
|
+
|--------------|---------------------|
|
185
|
+
| >= v2.0.0 | >= v2.6.0 |
|
186
|
+
|====================================|
|
187
|
+
=end</span>
|
188
|
+
|
189
|
+
<span class="k">class</span> <span class="nc">PlayRockPaperScissorsGame</span>
|
190
|
+
|
191
|
+
<span class="k">module</span> <span class="nn">RockPaperScissors</span>
|
192
|
+
<span class="no">VERSION</span> <span class="o">=</span> <span class="s2">"2.8.8"</span>
|
193
|
+
<span class="k">end</span>
|
194
|
+
|
195
|
+
<span class="c1"># import the colorize gem</span>
|
196
|
+
<span class="nb">require</span> <span class="s2">"colorized_string"</span>
|
197
|
+
<span class="no">ColorizedString</span><span class="p">.</span><span class="nf">colors</span> <span class="c1"># import colors; ex: red, green, blue from colorize gem</span>
|
198
|
+
<span class="no">ColorizedString</span><span class="p">.</span><span class="nf">modes</span> <span class="c1"># import modes; ex: bold, italic, underline from colorize gem</span>
|
180
199
|
|
181
200
|
<span class="k">module</span> <span class="nn">Constants</span>
|
182
201
|
<span class="no">NTRY_TO_SYM</span> <span class="o">=</span> <span class="p">{</span> <span class="c1"># define entry to symbol (key to value)</span>
|
183
|
-
<span class="s1">'p'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span>
|
184
|
-
<span class="s1">'r'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span>
|
185
|
-
<span class="s1">'s'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span>
|
202
|
+
<span class="s1">'p'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span> <span class="s1">'paper'</span> <span class="o">=></span> <span class="ss">:PAPER</span> <span class="p">,</span>
|
203
|
+
<span class="s1">'r'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span> <span class="s1">'rock'</span> <span class="o">=></span> <span class="ss">:ROCK</span> <span class="p">,</span>
|
204
|
+
<span class="s1">'s'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span><span class="p">,</span> <span class="s1">'scissors'</span> <span class="o">=></span> <span class="ss">:SCISSORS</span>
|
186
205
|
<span class="p">}</span>
|
187
206
|
<span class="no">VALID_ENTRIES</span> <span class="o">=</span> <span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">keys</span>
|
188
207
|
<span class="no">COMPUTER_CHOICES</span> <span class="o">=</span> <span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">values</span>
|
@@ -192,60 +211,60 @@
|
|
192
211
|
<span class="p">[</span><span class="ss">:PAPER</span> <span class="p">,</span> <span class="ss">:ROCK</span> <span class="p">],</span>
|
193
212
|
<span class="p">[</span><span class="ss">:ROCK</span> <span class="p">,</span> <span class="ss">:SCISSORS</span><span class="p">]</span>
|
194
213
|
<span class="p">]</span>
|
195
|
-
<span class="no">LOSERS</span> <span class="o">=</span> <span class="no">WINNERS</span><span class="p">.</span><span class="nf">map</span> <span class="p">{</span> <span class="o">|</span><span class="n">player_choice</span><span class="p">,</span><span class="n">computer_choice</span><span class="o">|</span> <span class="p">[</span><span class="n">computer_choice</span><span class="p">,</span><span class="n">player_choice</span><span class="p">]</span> <span class="p">}</span> <span class="c1">#
|
214
|
+
<span class="no">LOSERS</span> <span class="o">=</span> <span class="no">WINNERS</span><span class="p">.</span><span class="nf">map</span> <span class="p">{</span> <span class="o">|</span><span class="n">player_choice</span><span class="p">,</span><span class="n">computer_choice</span><span class="o">|</span> <span class="p">[</span><span class="n">computer_choice</span><span class="p">,</span><span class="n">player_choice</span><span class="p">]</span> <span class="p">}</span> <span class="c1"># this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player</span>
|
196
215
|
<span class="no">INIT_STRINGS</span> <span class="o">=</span> <span class="p">[</span>
|
197
|
-
<span class="s2">"You are about to enter a rock-paper-scissors best of 3 match."</span><span class="p"
|
198
|
-
<span class="s2">"Press the return/enter key to continue..."</span> <span class="p">,</span>
|
216
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"You are about to enter a rock-paper-scissors best of 3 match."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:green</span><span class="p">),</span>
|
217
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Press the return/enter key to continue..."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:green</span><span class="p">)</span> <span class="p">,</span>
|
199
218
|
<span class="s2">""</span>
|
200
219
|
<span class="p">]</span>
|
201
220
|
<span class="k">end</span>
|
202
221
|
|
203
|
-
<span class="nb">protected_methods</span> <span class="ss">:Constants</span>
|
222
|
+
<span class="nb">protected_methods</span> <span class="ss">:Constants</span>
|
204
223
|
|
205
|
-
<span class="k">class</span> <span class="o"><<</span> <span class="nb">self</span>
|
224
|
+
<span class="k">class</span> <span class="o"><<</span> <span class="nb">self</span> <span class="c1"># define a self calling method within the parent class</span>
|
206
225
|
<span class="k">def</span> <span class="nf">continue</span><span class="p">(</span><span class="n">str1</span><span class="p">,</span><span class="n">str2</span><span class="p">,</span><span class="n">str3</span><span class="p">)</span>
|
207
|
-
<span class="nb">puts</span> <span class="n">str1</span>
|
226
|
+
<span class="nb">puts</span> <span class="n">str1</span>
|
208
227
|
<span class="nb">print</span> <span class="n">str2</span>
|
209
|
-
<span class="nb">gets</span> <span class="c1"># press enter
|
228
|
+
<span class="nb">gets</span> <span class="c1"># press enter or return to continue</span>
|
210
229
|
<span class="nb">puts</span> <span class="n">str3</span>
|
211
230
|
<span class="k">end</span>
|
212
231
|
<span class="k">end</span>
|
213
232
|
|
214
|
-
<span class="n">continue</span><span class="p">(</span><span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
233
|
+
<span class="n">continue</span><span class="p">(</span><span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="no">Constants</span><span class="o">::</span><span class="no">INIT_STRINGS</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
215
234
|
|
216
|
-
<span class="k">def</span> <span class="nf">initialize</span>
|
235
|
+
<span class="k">def</span> <span class="nf">initialize</span> <span class="c1"># initialize variables</span>
|
217
236
|
<span class="vi">@player_score</span> <span class="o">=</span> <span class="vi">@computer_score</span> <span class="o">=</span> <span class="vi">@ties</span> <span class="o">=</span> <span class="mi">0</span>
|
218
|
-
<span class="k">end</span>
|
237
|
+
<span class="k">end</span>
|
219
238
|
|
220
239
|
<span class="k">def</span> <span class="nf">play</span><span class="p">(</span><span class="n">winning_score</span><span class="p">)</span>
|
221
|
-
<span class="k">while</span> <span class="vi">@player_score</span> <span class="o"><</span> <span class="n">winning_score</span> <span class="o">&&</span> <span class="vi">@computer_score</span> <span class="o"><</span> <span class="n">winning_score</span>
|
222
|
-
<span class="nb">puts</span> <span class="s2">"Player score: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span> <span class="o">+</span>
|
223
|
-
<span class="s2">"Computer score: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2">, Ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">"</span>
|
240
|
+
<span class="k">while</span> <span class="vi">@player_score</span> <span class="o"><</span> <span class="n">winning_score</span> <span class="o">&&</span> <span class="vi">@computer_score</span> <span class="o"><</span> <span class="n">winning_score</span>
|
241
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Player score: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span> <span class="o">+</span>
|
242
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer score: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2">, Ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
224
243
|
<span class="n">player</span> <span class="o">=</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">player_choice</span>
|
225
|
-
<span class="n">computer</span> <span class="o">=</span> <span class="no">Constants</span><span class="o">::</span><span class="no">COMPUTER_CHOICES</span><span class="p">.</span><span class="nf">sample</span> <span class="c1">#
|
226
|
-
<span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Player chooses </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">"</span>
|
227
|
-
<span class="nb">puts</span> <span class="s2">"Computer chooses </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">"</span>
|
228
|
-
<span class="k">case</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">player_outcome</span> <span class="p">[</span><span class="n">player</span><span class="p">,</span> <span class="n">computer</span><span class="p">]</span>
|
244
|
+
<span class="n">computer</span> <span class="o">=</span> <span class="no">Constants</span><span class="o">::</span><span class="no">COMPUTER_CHOICES</span><span class="p">.</span><span class="nf">sample</span> <span class="c1"># chooses a "random" option</span>
|
245
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Player chooses </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
246
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer chooses </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
247
|
+
<span class="k">case</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">player_outcome</span> <span class="p">[</span><span class="n">player</span><span class="p">,</span> <span class="n">computer</span><span class="p">]</span>
|
229
248
|
<span class="k">when</span> <span class="ss">:WIN</span>
|
230
|
-
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, player wins the round"</span>
|
231
|
-
<span class="vi">@player_score</span> <span class="o">+=</span> <span class="mi">1</span>
|
249
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, player wins the round."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
250
|
+
<span class="vi">@player_score</span> <span class="o">+=</span> <span class="mi">1</span> <span class="c1"># @player_score = @player_score + 1</span>
|
232
251
|
<span class="k">when</span> <span class="ss">:LOSE</span>
|
233
|
-
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, computer wins the round"</span>
|
252
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="si">#{</span><span class="n">computer</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">capitalize</span><span class="si">}</span><span class="s2"> beats </span><span class="si">#{</span><span class="n">player</span><span class="p">.</span><span class="nf">to_s</span><span class="p">.</span><span class="nf">downcase</span><span class="si">}</span><span class="s2">, computer wins the round."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
234
253
|
<span class="vi">@computer_score</span> <span class="o">+=</span> <span class="mi">1</span>
|
235
|
-
<span class="k">else</span>
|
236
|
-
<span class="nb">puts</span> <span class="s2">"Tie, choose again"</span>
|
254
|
+
<span class="k">else</span>
|
255
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Tie, choose again"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
237
256
|
<span class="vi">@ties</span> <span class="o">+=</span> <span class="mi">1</span>
|
238
257
|
<span class="k">end</span>
|
239
258
|
<span class="k">end</span>
|
240
|
-
<span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Final score: player: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span> <span class="o">+</span>
|
241
|
-
<span class="s2">"computer: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2"> (ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">)"</span>
|
259
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"</span><span class="se">\n</span><span class="s2">Final score: player: </span><span class="si">#{</span><span class="vi">@player_score</span><span class="si">}</span><span class="s2">, "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span> <span class="o">+</span>
|
260
|
+
<span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"computer: </span><span class="si">#{</span><span class="vi">@computer_score</span><span class="si">}</span><span class="s2"> (ties: </span><span class="si">#{</span><span class="vi">@ties</span><span class="si">}</span><span class="s2">)."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:blue</span><span class="p">)</span>
|
242
261
|
<span class="k">case</span> <span class="no">PrivateMethods</span><span class="p">.</span><span class="nf">final_outcome</span><span class="p">(</span><span class="vi">@player_score</span><span class="p">,</span> <span class="vi">@computer_score</span><span class="p">)</span>
|
243
262
|
<span class="k">when</span> <span class="ss">:WIN</span>
|
244
|
-
<span class="nb">puts</span> <span class="s2">"Player wins!"</span>
|
263
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Player wins!"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
245
264
|
<span class="k">when</span> <span class="ss">:LOSE</span>
|
246
|
-
<span class="nb">puts</span> <span class="s2">"Computer wins!"</span>
|
265
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Computer wins!"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
247
266
|
<span class="k">else</span>
|
248
|
-
<span class="nb">puts</span> <span class="s2">"It's a tie!"</span>
|
267
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"It's a tie!"</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
249
268
|
<span class="k">end</span>
|
250
269
|
<span class="nb">gets</span>
|
251
270
|
<span class="k">end</span>
|
@@ -254,27 +273,29 @@
|
|
254
273
|
<span class="k">class</span> <span class="o"><<</span> <span class="nb">self</span>
|
255
274
|
<span class="k">def</span> <span class="nf">player_choice</span>
|
256
275
|
<span class="kp">loop</span> <span class="k">do</span>
|
257
|
-
<span class="nb">print</span> <span class="s2">"Choose
|
276
|
+
<span class="nb">print</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"Choose: Rock (r), Paper (p), or Scissors (s): "</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:green</span><span class="p">)</span>
|
258
277
|
<span class="n">choice</span> <span class="o">=</span> <span class="nb">gets</span><span class="p">.</span><span class="nf">chomp</span><span class="p">.</span><span class="nf">downcase</span>
|
259
|
-
<span class="k">if</span> <span class="no">Constants</span><span class="o">::</span><span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">key?</span><span class="p">(</span><span class="n">choice</span><span class="p">)</span>
|
278
|
+
<span class="k">if</span> <span class="no">Constants</span><span class="o">::</span><span class="no">NTRY_TO_SYM</span><span class="p">.</span><span class="nf">key?</span><span class="p">(</span><span class="n">choice</span><span class="p">)</span>
|
260
279
|
<span class="k">return</span> <span class="no">Constants</span><span class="o">::</span><span class="no">NTRY_TO_SYM</span><span class="p">[</span><span class="n">choice</span><span class="p">]</span>
|
261
|
-
<span class="k">elsif</span> <span class="n">choice</span> <span class="o">!=</span> <span class="no">Constants</span><span class="o">::</span><span class="no">VALID_ENTRIES</span>
|
262
|
-
<span class="nb">puts</span> <span class="s2">"That entry is invalid. Please re-enter."</span>
|
280
|
+
<span class="k">elsif</span> <span class="n">choice</span> <span class="o">!=</span> <span class="no">Constants</span><span class="o">::</span><span class="no">VALID_ENTRIES</span>
|
281
|
+
<span class="nb">puts</span> <span class="no">ColorizedString</span><span class="p">[</span><span class="s2">"That entry is invalid. Please re-enter."</span><span class="p">].</span><span class="nf">colorize</span><span class="p">(</span><span class="ss">:red</span><span class="p">)</span>
|
263
282
|
<span class="k">else</span>
|
264
283
|
<span class="k">return</span> <span class="kp">nil</span>
|
265
284
|
<span class="k">end</span>
|
266
285
|
<span class="k">end</span>
|
267
286
|
<span class="k">end</span>
|
287
|
+
|
268
288
|
<span class="k">def</span> <span class="nf">player_outcome</span><span class="p">(</span><span class="n">plays</span><span class="p">)</span>
|
269
289
|
<span class="c1"># plays = [player_choice, computer_choice]</span>
|
270
290
|
<span class="k">return</span> <span class="ss">:WIN</span> <span class="k">if</span> <span class="no">Constants</span><span class="o">::</span><span class="no">WINNERS</span><span class="p">.</span><span class="nf">include?</span><span class="p">(</span><span class="n">plays</span><span class="p">)</span>
|
271
291
|
<span class="k">return</span> <span class="ss">:LOSE</span> <span class="k">if</span> <span class="no">Constants</span><span class="o">::</span><span class="no">LOSERS</span><span class="p">.</span><span class="nf">include?</span><span class="p">(</span><span class="n">plays</span><span class="p">)</span>
|
272
|
-
<span class="k">return</span> <span class="ss">:TIE</span> <span class="k">if</span> <span class="o">!</span><span class="ss">:WIN</span> <span class="o">|</span> <span class="o">!</span><span class="ss">:LOSE</span>
|
273
|
-
<span class="k">end</span>
|
292
|
+
<span class="k">return</span> <span class="ss">:TIE</span> <span class="k">if</span> <span class="o">!</span><span class="ss">:WIN</span> <span class="o">|</span> <span class="o">!</span><span class="ss">:LOSE</span>
|
293
|
+
<span class="k">end</span>
|
294
|
+
|
274
295
|
<span class="k">def</span> <span class="nf">final_outcome</span><span class="p">(</span><span class="n">pl</span><span class="p">,</span><span class="n">co</span><span class="p">)</span>
|
275
296
|
<span class="k">return</span> <span class="ss">:WIN</span> <span class="k">if</span> <span class="n">pl</span> <span class="o">></span> <span class="n">co</span>
|
276
297
|
<span class="k">return</span> <span class="ss">:LOSE</span> <span class="k">if</span> <span class="n">pl</span> <span class="o"><</span> <span class="n">co</span>
|
277
|
-
<span class="c1"># there will never be a tie
|
298
|
+
<span class="c1"># there will never be a tie fore the final outcome due to the code in the play() method</span>
|
278
299
|
<span class="k">end</span>
|
279
300
|
<span class="k">end</span>
|
280
301
|
<span class="k">end</span>
|
@@ -283,7 +304,7 @@
|
|
283
304
|
|
284
305
|
<span class="k">end</span>
|
285
306
|
|
286
|
-
<span class="no">PlayRockPaperScissorsGame</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">play</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
|
307
|
+
<span class="no">PlayRockPaperScissorsGame</span><span class="p">.</span><span class="nf">new</span><span class="p">.</span><span class="nf">play</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> <span class="c1"># call the play method and pass in 3 (0, 1, 2) for the winning score</span>
|
287
308
|
</code></pre>
|
288
309
|
</div>
|
289
310
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
data/docs/_site/how_to_run.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
data/docs/_site/index.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
data/docs/_site/testing.html
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
8
8
|
<meta name="theme-color" content="#157878"/>
|
9
9
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' />
|
10
|
-
<link rel="stylesheet" href="/assets/css/style.css?v=
|
10
|
+
<link rel="stylesheet" href="/assets/css/style.css?v=9dfdf3a7dbe502b5dba0b21bd04c4f6cd97868ee"/>
|
11
11
|
<script src="assets/js/pace.min.js"></script>
|
12
12
|
|
13
13
|
<link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/>
|
data/lib/PrivateMethods.rb
CHANGED
@@ -5,7 +5,7 @@ module PrivateMethods
|
|
5
5
|
class << self
|
6
6
|
def player_choice
|
7
7
|
loop do
|
8
|
-
print ColorizedString["Choose
|
8
|
+
print ColorizedString["Choose: Rock (r), Paper (p), or Scissors (s): "].colorize(:green)
|
9
9
|
choice = gets.chomp.downcase
|
10
10
|
if Constants::NTRY_TO_SYM.key?(choice)
|
11
11
|
return Constants::NTRY_TO_SYM[choice]
|
data/lib/rps/version.rb
CHANGED
data/rps.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "PlayRockPaperScissorsGame"
|
3
|
-
spec.version = "2.8.
|
4
|
-
spec.date = "2017-08-
|
3
|
+
spec.version = "2.8.8"
|
4
|
+
spec.date = "2017-08-31"
|
5
5
|
spec.summary = "A Rock Paper Scissors Ruby Gem"
|
6
6
|
spec.description = <<-EOF
|
7
7
|
A Ruby-programmed rock paper scissors game.
|
data/test/test_rps.rb
CHANGED
@@ -32,25 +32,25 @@ class RakeTest # create test
|
|
32
32
|
def testPlay(winning_score)
|
33
33
|
while @player_score < winning_score && @computer_score < winning_score
|
34
34
|
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
35
|
-
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
|
35
|
+
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}."].colorize(:blue)
|
36
36
|
player = PrivateMethods.player_choice
|
37
37
|
computer = Constants::COMPUTER_CHOICES.sample
|
38
|
-
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
|
39
|
-
puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
|
38
|
+
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}."].colorize(:blue)
|
39
|
+
puts ColorizedString["Computer chooses #{computer.to_s.downcase}."].colorize(:blue)
|
40
40
|
case PrivateMethods.player_outcome [player, computer]
|
41
41
|
when :WIN
|
42
|
-
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
|
42
|
+
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round."].colorize(:red)
|
43
43
|
@player_score += 1
|
44
44
|
when :LOSE
|
45
|
-
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
|
45
|
+
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round."].colorize(:red)
|
46
46
|
@computer_score += 1
|
47
47
|
else
|
48
|
-
puts ColorizedString["Tie, choose again"].colorize(:red)
|
48
|
+
puts ColorizedString["Tie, choose again."].colorize(:red)
|
49
49
|
@ties += 1
|
50
50
|
end
|
51
51
|
end
|
52
52
|
puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
|
53
|
-
ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
|
53
|
+
ColorizedString["computer: #{@computer_score} (ties: #{@ties})."].colorize(:blue)
|
54
54
|
case PrivateMethods.final_outcome(@player_score, @computer_score)
|
55
55
|
when :WIN
|
56
56
|
puts ColorizedString["Player wins!"].colorize(:red)
|
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: 2.8.
|
4
|
+
version: 2.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bag3318
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
ft+uhriUZSVDBJRLSlrQEH2f0866a9dA4oUmvvFU46Mh6pozDjOcLJIp/tCnbVOc
|
31
31
|
HSdXPrjfOoDbhBPH/4wUd5P0rDoNKN1hxH4SzA==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2017-08-
|
33
|
+
date: 2017-08-31 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: bundler
|
metadata.gz.sig
CHANGED
Binary file
|