PlayRockPaperScissorsGame 2.8.7 → 2.8.8
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 +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
|