RPSrb 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9c588e87d5578e52678f8c8d9eba937afc42e756
4
- data.tar.gz: b8e4cc4dce52dc2152930ce02a8a315f546fc468
3
+ metadata.gz: 39d2226eb32ff55c9438d638e79d9ea7b2bdbefb
4
+ data.tar.gz: c79ebafce73b8392bee88f5a575dae425974dd49
5
5
  SHA512:
6
- metadata.gz: ba940780e6e22a57c71e5d9eee0964b3a13f32b20804904e15bc8ca7f6527acecf8b552291a1df146df12eb1a08780e8d2f98e82c63f358312525e63085f659d
7
- data.tar.gz: 850cb4fe2874a07bf273ab93c2c17e4bd858d4ef0d1930a71cc4de2c99874752695cced5b808985aeb1ed417be8a58abe2db001c80fa32fc467669f553b0e3ee
6
+ metadata.gz: 1bf2c049a6c5807cc71590b66b81936ac7b7b0a924f7789ee38431e4d325c80d015409dc38f45444820ee0dce2a65891b66f83817d0ba33893249340cf0972db
7
+ data.tar.gz: c809efedf8946449520b6d54bf8e447fd81aa594c7c4cffabc15066675e047b7f5f9f72fd4d211068cb9bde735e91dc618ef24055a1b8b2096f6124bc386e4a6
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 bag3318
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/RPSrb.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "RPSrb"
3
- spec.version = "0.0.9"
3
+ spec.version = "0.1.0"
4
4
  spec.date = "2017-12-12" # format: YYYY/MM/DD
5
5
  spec.summary = "A Rock Paper Scissors Game RubyGem"
6
6
  spec.description = <<-EOF
data/doc/RPSrb.html CHANGED
@@ -69,7 +69,9 @@
69
69
 
70
70
  <section class="description">
71
71
 
72
- <p>version constant for RubyGem</p>
72
+ <h1 id="module-RPSrb-label-RubyGems+version+constant">RubyGems version constant<span><a href="#module-RPSrb-label-RubyGems+version+constant">&para;</a> <a href="#top">&uarr;</a></span></h1>
73
+
74
+ <p>this is required for all rubygem packages</p>
73
75
 
74
76
  </section>
75
77
 
@@ -71,12 +71,16 @@
71
71
 
72
72
  <ul class="link-list" role="directory">
73
73
 
74
- <li ><a href="#method-c-continue">::continue</a>
75
-
76
74
  <li ><a href="#method-c-new">::new</a>
77
75
 
76
+ <li ><a href="#method-i-final_outcome">#final_outcome</a>
77
+
78
78
  <li ><a href="#method-i-play">#play</a>
79
79
 
80
+ <li ><a href="#method-i-player_choice">#player_choice</a>
81
+
82
+ <li ><a href="#method-i-player_outcome">#player_outcome</a>
83
+
80
84
  </ul>
81
85
  </div>
82
86
 
@@ -109,32 +113,44 @@
109
113
 
110
114
  <dt id="CHOICES">CHOICES
111
115
 
112
- <dd><p>make choices constant (2d list)</p>
116
+ <dd><h2 id="label-Make+choices+constant+-282d+list-29">Make choices constant (2d list)<span><a href="#label-Make+choices+constant+-282d+list-29">&para;</a> <a href="#top">&uarr;</a></span></h2>
117
+
118
+ <p>this 2d array contains all the options (in string format) the user can use</p>
113
119
 
114
120
 
115
121
  <dt id="COMPUTER_CHOICES">COMPUTER_CHOICES
116
122
 
117
- <dd><p>define possible computer choices</p>
123
+ <dd><h2 id="label-Define+possible+computer+choices">Define possible computer choices<span><a href="#label-Define+possible+computer+choices">&para;</a> <a href="#top">&uarr;</a></span></h2>
124
+
125
+ <p>grab the values of the hash</p>
118
126
 
119
127
 
120
128
  <dt id="LOSERS">LOSERS
121
129
 
122
- <dd><p>map array for losers</p>
130
+ <dd><h2 id="label-Map+array+for+losers">Map array for losers<span><a href="#label-Map+array+for+losers">&para;</a> <a href="#top">&uarr;</a></span></h2>
131
+
132
+ <p>this flips the items in the `WINNERS` 2d array</p>
123
133
 
124
134
 
125
135
  <dt id="NTRY_TO_SYM">NTRY_TO_SYM
126
136
 
127
- <dd><p>define an entry to symbol dictionary</p>
137
+ <dd><h2 id="label-Define+an+entry+to+symbol+hash">Define an entry to symbol hash<span><a href="#label-Define+an+entry+to+symbol+hash">&para;</a> <a href="#top">&uarr;</a></span></h2>
138
+
139
+ <p>this is a “hash” that contains the keys and values for winning and losing</p>
128
140
 
129
141
 
130
142
  <dt id="VALID_ENTRIES">VALID_ENTRIES
131
143
 
132
- <dd><p>define what our valid entries out</p>
144
+ <dd><h3 id="label-Define+what+our+valid+entries+out">Define what our valid entries out<span><a href="#label-Define+what+our+valid+entries+out">&para;</a> <a href="#top">&uarr;</a></span></h3>
145
+
146
+ <p>grab the keys of the hash</p>
133
147
 
134
148
 
135
149
  <dt id="WINNERS">WINNERS
136
150
 
137
- <dd><p>define winners 2d array</p>
151
+ <dd><h2 id="label-Define+winners+2d+array">Define winners 2d array<span><a href="#label-Define+winners+2d+array">&para;</a> <a href="#top">&uarr;</a></span></h2>
152
+
153
+ <p>defines winners in 2d array/list format</p>
138
154
 
139
155
 
140
156
  </dl>
@@ -163,13 +179,13 @@
163
179
 
164
180
  <div class="method-description">
165
181
 
166
- <p>define constructor for class</p>
182
+ <h2 id="method-c-new-label-Define+constructor+for+class">Define constructor for class<span><a href="#method-c-new-label-Define+constructor+for+class">&para;</a> <a href="#top">&uarr;</a></span></h2>
167
183
 
168
184
 
169
185
 
170
186
 
171
187
  <div class="method-source-code" id="new-source">
172
- <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 47</span>
188
+ <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 53</span>
173
189
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>
174
190
  <span class="ruby-ivar">@player_score</span> = <span class="ruby-ivar">@computer_score</span> = <span class="ruby-ivar">@ties</span> = <span class="ruby-value">0</span>
175
191
  <span class="ruby-keyword">end</span></pre>
@@ -180,50 +196,6 @@
180
196
 
181
197
 
182
198
 
183
- </div>
184
-
185
-
186
- </section>
187
-
188
- <section id="protected-class-5Buntitled-5D-method-details" class="method-section">
189
- <header>
190
- <h3>Protected Class Methods</h3>
191
- </header>
192
-
193
-
194
- <div id="method-c-continue" class="method-detail ">
195
-
196
- <div class="method-heading">
197
- <span class="method-name">continue</span><span
198
- class="method-args">(str1,str2,str3)</span>
199
-
200
- <span class="method-click-advice">click to toggle source</span>
201
-
202
- </div>
203
-
204
-
205
- <div class="method-description">
206
-
207
- <p>define entry point for game</p>
208
-
209
-
210
-
211
-
212
- <div class="method-source-code" id="continue-source">
213
- <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 35</span>
214
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">continue</span>(<span class="ruby-identifier">str1</span>,<span class="ruby-identifier">str2</span>,<span class="ruby-identifier">str3</span>)
215
- <span class="ruby-identifier">puts</span> <span class="ruby-identifier">str1</span>
216
- <span class="ruby-identifier">print</span> <span class="ruby-identifier">str2</span>
217
- <span class="ruby-identifier">gets</span>
218
- <span class="ruby-identifier">puts</span> <span class="ruby-identifier">str3</span>
219
- <span class="ruby-keyword">end</span></pre>
220
- </div>
221
-
222
- </div>
223
-
224
-
225
-
226
-
227
199
  </div>
228
200
 
229
201
 
@@ -248,13 +220,16 @@
248
220
 
249
221
  <div class="method-description">
250
222
 
251
- <p>define play game method</p>
223
+ <h2 id="method-i-play-label-Define+play+game+method">Define play game method<span><a href="#method-i-play-label-Define+play+game+method">&para;</a> <a href="#top">&uarr;</a></span></h2>
224
+
225
+ <p>this method will be public it will also constain most of the “play”
226
+ functioonality for this game</p>
252
227
 
253
228
 
254
229
 
255
230
 
256
231
  <div class="method-source-code" id="play-source">
257
- <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 53</span>
232
+ <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 61</span>
258
233
  <span class="ruby-keyword">def</span> <span class="ruby-identifier">play</span>(<span class="ruby-identifier">winning_score</span>)
259
234
  <span class="ruby-keyword">while</span> <span class="ruby-ivar">@player_score</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">winning_score</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@computer_score</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">winning_score</span>
260
235
  <span class="ruby-identifier">puts</span> <span class="ruby-node">&quot;\nPlayer score: #{@player_score}, &quot;</span> <span class="ruby-operator">+</span>
@@ -293,6 +268,133 @@
293
268
 
294
269
 
295
270
 
271
+ </div>
272
+
273
+
274
+ </section>
275
+
276
+ <section id="protected-instance-5Buntitled-5D-method-details" class="method-section">
277
+ <header>
278
+ <h3>Protected Instance Methods</h3>
279
+ </header>
280
+
281
+
282
+ <div id="method-i-final_outcome" class="method-detail ">
283
+
284
+ <div class="method-heading">
285
+ <span class="method-name">final_outcome</span><span
286
+ class="method-args">(pl, co)</span>
287
+
288
+ <span class="method-click-advice">click to toggle source</span>
289
+
290
+ </div>
291
+
292
+
293
+ <div class="method-description">
294
+
295
+ <h2 id="method-i-final_outcome-label-Define+final+outcome+function">Define final outcome function<span><a href="#method-i-final_outcome-label-Define+final+outcome+function">&para;</a> <a href="#top">&uarr;</a></span></h2>
296
+
297
+ <p>this method is protected this will determine who wins the whole match in
298
+ the end</p>
299
+
300
+
301
+
302
+
303
+ <div class="method-source-code" id="final_outcome-source">
304
+ <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 125</span>
305
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">final_outcome</span>(<span class="ruby-identifier">pl</span>, <span class="ruby-identifier">co</span>)
306
+ <span class="ruby-keyword">return</span> <span class="ruby-value">:WIN</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">pl</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">co</span>
307
+ <span class="ruby-keyword">return</span> <span class="ruby-value">:LOSE</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">pl</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">co</span>
308
+ <span class="ruby-keyword">end</span></pre>
309
+ </div>
310
+
311
+ </div>
312
+
313
+
314
+
315
+
316
+ </div>
317
+
318
+
319
+ <div id="method-i-player_choice" class="method-detail ">
320
+
321
+ <div class="method-heading">
322
+ <span class="method-name">player_choice</span><span
323
+ class="method-args">()</span>
324
+
325
+ <span class="method-click-advice">click to toggle source</span>
326
+
327
+ </div>
328
+
329
+
330
+ <div class="method-description">
331
+
332
+ <h2 id="method-i-player_choice-label-Make+player+choice+method">Make player choice method<span><a href="#method-i-player_choice-label-Make+player+choice+method">&para;</a> <a href="#top">&uarr;</a></span></h2>
333
+
334
+ <p>this method will be protected this will sanity check the user&#39;s choice</p>
335
+
336
+
337
+
338
+
339
+ <div class="method-source-code" id="player_choice-source">
340
+ <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 97</span>
341
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">player_choice</span>
342
+ <span class="ruby-identifier">loop</span> <span class="ruby-keyword">do</span>
343
+ <span class="ruby-identifier">print</span> <span class="ruby-string">&quot;\nChoose: Rock (r), Paper (p), or Scissors (s): &quot;</span>
344
+ <span class="ruby-identifier">choice</span> = <span class="ruby-identifier">gets</span>.<span class="ruby-identifier">chomp</span>.<span class="ruby-identifier">downcase</span>
345
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">NTRY_TO_SYM</span>.<span class="ruby-identifier">key?</span>(<span class="ruby-identifier">choice</span>)
346
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">NTRY_TO_SYM</span>[<span class="ruby-identifier">choice</span>]
347
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">choice</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">VALID_ENTRIES</span>
348
+ <span class="ruby-identifier">puts</span> <span class="ruby-string">&quot;\nThat entry is invalid. Please re-enter.\n&quot;</span>
349
+ <span class="ruby-keyword">else</span>
350
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">nil</span>
351
+ <span class="ruby-keyword">end</span>
352
+ <span class="ruby-keyword">end</span>
353
+ <span class="ruby-keyword">end</span></pre>
354
+ </div>
355
+
356
+ </div>
357
+
358
+
359
+
360
+
361
+ </div>
362
+
363
+
364
+ <div id="method-i-player_outcome" class="method-detail ">
365
+
366
+ <div class="method-heading">
367
+ <span class="method-name">player_outcome</span><span
368
+ class="method-args">(plays)</span>
369
+
370
+ <span class="method-click-advice">click to toggle source</span>
371
+
372
+ </div>
373
+
374
+
375
+ <div class="method-description">
376
+
377
+ <h2 id="method-i-player_outcome-label-Define+player+outcome">Define player outcome<span><a href="#method-i-player_outcome-label-Define+player+outcome">&para;</a> <a href="#top">&uarr;</a></span></h2>
378
+
379
+ <p>this method is protected this defines the round outcome of the game</p>
380
+
381
+
382
+
383
+
384
+ <div class="method-source-code" id="player_outcome-source">
385
+ <pre><span class="ruby-comment"># File lib/RockPaperScissors.rb, line 115</span>
386
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">player_outcome</span>(<span class="ruby-identifier">plays</span>)
387
+ <span class="ruby-keyword">return</span> <span class="ruby-value">:WIN</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">WINNERS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">plays</span>)
388
+ <span class="ruby-keyword">return</span> <span class="ruby-value">:LOSE</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">LOSERS</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">plays</span>)
389
+ <span class="ruby-keyword">return</span> <span class="ruby-value">:TIE</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span><span class="ruby-value">:WIN</span> <span class="ruby-operator">|</span> <span class="ruby-operator">!</span><span class="ruby-value">:LOSE</span>
390
+ <span class="ruby-keyword">end</span></pre>
391
+ </div>
392
+
393
+ </div>
394
+
395
+
396
+
397
+
296
398
  </div>
297
399
 
298
400
 
data/doc/created.rid CHANGED
@@ -1,4 +1,4 @@
1
- Tue, 12 Dec 2017 09:46:51 -0800
2
- lib/exec.rb Mon, 11 Dec 2017 12:15:28 -0800
3
- lib/RockPaperScissors.rb Tue, 12 Dec 2017 09:41:20 -0800
4
- lib/RPSrb/Version.rb Tue, 12 Dec 2017 09:46:02 -0800
1
+ Tue, 12 Dec 2017 10:03:36 -0800
2
+ lib/exec.rb Tue, 12 Dec 2017 09:59:08 -0800
3
+ lib/RockPaperScissors.rb Tue, 12 Dec 2017 10:03:25 -0800
4
+ lib/RPSrb/Version.rb Tue, 12 Dec 2017 09:53:54 -0800
Binary file
@@ -1 +1 @@
1
- var search_data = {"index":{"searchIndex":["rpsrb","rockpaperscissors","continue()","new()","play()"],"longSearchIndex":["rpsrb","rockpaperscissors","rockpaperscissors::continue()","rockpaperscissors::new()","rockpaperscissors#play()"],"info":[["RPSrb","","RPSrb.html","","<p>version constant for RubyGem\n"],["RockPaperScissors","","RockPaperScissors.html","",""],["continue","RockPaperScissors","RockPaperScissors.html#method-c-continue","(str1,str2,str3)","<p>define entry point for game\n"],["new","RockPaperScissors","RockPaperScissors.html#method-c-new","()","<p>define constructor for class\n"],["play","RockPaperScissors","RockPaperScissors.html#method-i-play","(winning_score)","<p>define play game method\n"]]}}
1
+ var search_data = {"index":{"searchIndex":["rpsrb","rockpaperscissors","final_outcome()","new()","play()","player_choice()","player_outcome()"],"longSearchIndex":["rpsrb","rockpaperscissors","rockpaperscissors#final_outcome()","rockpaperscissors::new()","rockpaperscissors#play()","rockpaperscissors#player_choice()","rockpaperscissors#player_outcome()"],"info":[["RPSrb","","RPSrb.html","","<p>RubyGems version constant\n<p>this is required for all rubygem packages\n"],["RockPaperScissors","","RockPaperScissors.html","",""],["final_outcome","RockPaperScissors","RockPaperScissors.html#method-i-final_outcome","(pl, co)","<p>Define final outcome function\n<p>this method is protected this will determine who wins the whole match in …\n"],["new","RockPaperScissors","RockPaperScissors.html#method-c-new","()","<p>Define constructor for class\n"],["play","RockPaperScissors","RockPaperScissors.html#method-i-play","(winning_score)","<p>Define play game method\n<p>this method will be public it will also constain most of the “play” …\n"],["player_choice","RockPaperScissors","RockPaperScissors.html#method-i-player_choice","()","<p>Make player choice method\n<p>this method will be protected this will sanity check the user&#39;s choice\n"],["player_outcome","RockPaperScissors","RockPaperScissors.html#method-i-player_outcome","(plays)","<p>Define player outcome\n<p>this method is protected this defines the round outcome of the game\n"]]}}
Binary file
Binary file
@@ -28,6 +28,10 @@
28
28
  <ul>
29
29
  <li class="module">
30
30
  <a href="RPSrb.html">RPSrb</a>
31
+
32
+ <ul>
33
+ <li><a href="RPSrb.html#label-RubyGems+version+constant">RubyGems version constant</a>
34
+ </ul>
31
35
  </li>
32
36
  <li class="class">
33
37
  <a href="RockPaperScissors.html">RockPaperScissors</a>
@@ -38,12 +42,12 @@
38
42
  <ul>
39
43
 
40
44
  <li class="method">
41
- <a href="RockPaperScissors.html#method-c-continue">::continue</a>
45
+ <a href="RockPaperScissors.html#method-c-new">::new</a>
42
46
  &mdash;
43
47
  <span class="container">RockPaperScissors</span>
44
48
 
45
49
  <li class="method">
46
- <a href="RockPaperScissors.html#method-c-new">::new</a>
50
+ <a href="RockPaperScissors.html#method-i-final_outcome">#final_outcome</a>
47
51
  &mdash;
48
52
  <span class="container">RockPaperScissors</span>
49
53
 
@@ -51,6 +55,16 @@
51
55
  <a href="RockPaperScissors.html#method-i-play">#play</a>
52
56
  &mdash;
53
57
  <span class="container">RockPaperScissors</span>
58
+
59
+ <li class="method">
60
+ <a href="RockPaperScissors.html#method-i-player_choice">#player_choice</a>
61
+ &mdash;
62
+ <span class="container">RockPaperScissors</span>
63
+
64
+ <li class="method">
65
+ <a href="RockPaperScissors.html#method-i-player_outcome">#player_outcome</a>
66
+ &mdash;
67
+ <span class="container">RockPaperScissors</span>
54
68
  </ul>
55
69
  </main>
56
70
 
data/lib/RPSrb/Version.rb CHANGED
@@ -1,4 +1,5 @@
1
- # version constant for RubyGem
1
+ # = RubyGems version constant
2
+ # this is required for all rubygem packages
2
3
  module RPSrb
3
- VERSION = '0.0.9'
4
+ VERSION = '0.1.0'
4
5
  end
@@ -2,36 +2,43 @@ class RockPaperScissors
2
2
 
3
3
  require_relative 'RPSrb/Version.rb'
4
4
 
5
- # make choices constant (2d list)
5
+ # == Make choices constant (2d list)
6
+ # this 2d array contains all the options (in string format) the user can use
6
7
  CHOICES = [['r', 'rock'], ['p', 'paper'], ['s', 'scissors']]
7
8
 
8
9
 
9
- # define an entry to symbol dictionary
10
+ # == Define an entry to symbol hash
11
+ # this is a "hash" that contains the keys and values for winning and losing
10
12
  NTRY_TO_SYM = {
11
13
  CHOICES[0][0] => :ROCK , CHOICES[0][1] => :ROCK ,
12
14
  CHOICES[1][0] => :PAPER , CHOICES[1][1] => :PAPER ,
13
15
  CHOICES[2][0] => :SCISSORS, CHOICES[2][1] => :SCISSORS
14
16
  }
15
17
 
16
- # define what our valid entries out
18
+ # === Define what our valid entries out
19
+ # grab the keys of the hash
17
20
  VALID_ENTRIES = NTRY_TO_SYM.keys
18
21
 
19
- # define possible computer choices
22
+ # == Define possible computer choices
23
+ # grab the values of the hash
20
24
  COMPUTER_CHOICES = NTRY_TO_SYM.values
21
25
 
22
- # define winners 2d array
26
+ # == Define winners 2d array
27
+ # defines winners in 2d array/list format
23
28
  WINNERS = [
24
29
  [:SCISSORS, :PAPER ],
25
30
  [:PAPER , :ROCK ],
26
31
  [:ROCK , :SCISSORS]
27
32
  ]
28
33
 
29
- # map array for losers
34
+ # == Map array for losers
35
+ # this flips the items in the `WINNERS` 2d array
30
36
  LOSERS = WINNERS.map { |winning_choice,losing_choice| [losing_choice,winning_choice] }
31
37
 
32
38
  class << self
33
- # define entry point for game
34
- protected
39
+ # == Define entry point for game
40
+ # this function is private
41
+ private
35
42
  def continue(str1,str2,str3)
36
43
  puts str1
37
44
  print str2
@@ -42,13 +49,14 @@ class RockPaperScissors
42
49
 
43
50
  continue("\nYou are about to enter a rock-paper-scissors best of 3 match.", "\nPress the return/enter key to continue...", "")
44
51
 
45
- # define constructor for class
46
- protected
52
+ # == Define constructor for class
47
53
  def initialize
48
54
  @player_score = @computer_score = @ties = 0
49
55
  end
50
56
 
51
- # define play game method
57
+ # == Define play game method
58
+ # this method will be public
59
+ # it will also constain most of the "play" functioonality for this game
52
60
  public
53
61
  def play(winning_score)
54
62
  while @player_score < winning_score && @computer_score < winning_score
@@ -82,8 +90,10 @@ class RockPaperScissors
82
90
  puts
83
91
  end
84
92
 
85
- # make player choice method
86
- private
93
+ # == Make player choice method
94
+ # this method will be protected
95
+ # this will sanity check the user's choice
96
+ protected
87
97
  def player_choice
88
98
  loop do
89
99
  print "\nChoose: Rock (r), Paper (p), or Scissors (s): "
@@ -98,16 +108,20 @@ class RockPaperScissors
98
108
  end
99
109
  end
100
110
 
101
- # define player outcome
102
- private
111
+ # == Define player outcome
112
+ # this method is protected
113
+ # this defines the round outcome of the game
114
+ protected
103
115
  def player_outcome(plays)
104
116
  return :WIN if WINNERS.include?(plays)
105
117
  return :LOSE if LOSERS.include?(plays)
106
118
  return :TIE if !:WIN | !:LOSE
107
119
  end
108
120
 
109
- # define final outcome function
110
- private
121
+ # == Define final outcome function
122
+ # this method is protected
123
+ # this will determine who wins the whole match in the end
124
+ protected
111
125
  def final_outcome(pl, co)
112
126
  return :WIN if pl > co
113
127
  return :LOSE if pl < co
data/lib/exec.rb CHANGED
@@ -1 +1,3 @@
1
- RockPaperScissors.new.play(2) # best out of 3 (0, 1, 2)
1
+ # == Execute game
2
+ # best out of 3 (0, 1, 2)
3
+ RockPaperScissors.new.play(2)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: RPSrb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bag3318
@@ -102,6 +102,7 @@ extra_rdoc_files:
102
102
  files:
103
103
  - ".gitignore"
104
104
  - Gemfile
105
+ - LICENSE
105
106
  - README.md
106
107
  - RPSrb.gemspec
107
108
  - Rakefile