docs/_site/code.html in rpsg-0.3.2 vs docs/_site/code.html in rpsg-0.3.3

- old
+ new

@@ -1,15 +1,15 @@ <!DOCTYPE html> <html lang="en-us"> <head> <meta charset="UTF-8"/> - <title>Master Code - RPSG</title> + <title>Complete Code - RPSG</title> <meta name="description" content="A Ruby Programmed Rock Paper Scissors Game"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <meta name="theme-color" content="#157878"/> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css' /> - <link rel="stylesheet" href="/assets/css/style.css?v=ac6ad727448216a7da0d1d39d1fa24bd93badc5d"/> + <link rel="stylesheet" href="/assets/css/style.css?v=a5baafbc722707c67aa6887b8c329cac4fb1a8fe"/> <script src="assets/js/pace.min.js"></script> <link rel="apple-touch-icon" sizes="180x180" href="assets/favicons/apple-touch-icon.png"/> <link rel="icon" type="image/png" sizes="32x32" href="assets/favicons/favicon-32x32.png"/> <link rel="icon" type="image/png" sizes="16x16" href="assets/favicons/favicon-16x16.png"/> @@ -42,69 +42,81 @@ </section> <section class="main-content"> <!-- contains complete RPSG code --> -<h1 id="master-code">Master Code</h1> +<h1 id="complete-code">Complete Code</h1> <ul id="markdown-toc"> - <li><a href="#master-code" id="markdown-toc-master-code">Master Code</a></li> + <li><a href="#complete-code" id="markdown-toc-complete-code">Complete Code</a></li> </ul> <blockquote> - <p>The master code will look like this:</p> + <p>The complete code will look like this:</p> </blockquote> <div class="highlighter-rouge"><pre class="highlight"><code>% rpsg </code></pre> </div> <div class="language-ruby highlighter-rouge"><pre class="highlight"><code><span class="c1">#!/usr/bin/env ruby</span> <span class="cm">=begin -|==============| -| Req Ruby Ver | -|--------------| -| &gt;= v2.0.0 | -|==============| +|====================================| +| Req Ruby Ver | Req Ruby Gems Ver | +|--------------|---------------------| +| &gt;= v2.0.0 | &gt;= v2.6.0 | +|====================================| =end</span> <span class="c1"># create master class for rpsg</span> <span class="k">class</span> <span class="nc">RockPaperScissorsGame</span> + <span class="c1"># specify the version for the rubygem</span> + <span class="k">module</span> <span class="nn">RPSG</span> + <span class="c1"># create version constant for the rubygem</span> + <span class="no">VERSION</span> <span class="o">=</span> <span class="s2">"0.3.3"</span> + <span class="k">end</span> + <span class="c1"># create module that holds all contents for this script</span> <span class="k">module</span> <span class="nn">Constants</span> <span class="c1"># create 2d list of choices</span> + <span class="kp">protected</span> <span class="no">CHOICES</span> <span class="o">=</span> <span class="p">[[</span><span class="s1">'r'</span><span class="p">,</span> <span class="s1">'rock'</span><span class="p">],</span> <span class="p">[</span><span class="s1">'p'</span><span class="p">,</span> <span class="s1">'paper'</span><span class="p">],</span> <span class="p">[</span><span class="s1">'s'</span><span class="p">,</span> <span class="s1">'scissors'</span><span class="p">]]</span> <span class="c1"># define entry to symbol (key to value)</span> + <span class="kp">protected</span> <span class="no">NTRY_TO_SYM</span> <span class="o">=</span> <span class="p">{</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:ROCK</span> <span class="p">,</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:ROCK</span> <span class="p">,</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:PAPER</span> <span class="p">,</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">1</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:PAPER</span> <span class="p">,</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:SCISSORS</span><span class="p">,</span> <span class="no">CHOICES</span><span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">1</span><span class="p">]</span> <span class="o">=&gt;</span> <span class="ss">:SCISSORS</span> <span class="p">}</span> <span class="c1"># define valid entries</span> + <span class="kp">protected</span> <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> <span class="c1"># define computer choices</span> + <span class="kp">protected</span> <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> <span class="c1"># create winners 2d list array with format: winning choice, losing choice</span> + <span class="kp">protected</span> <span class="no">WINNERS</span> <span class="o">=</span> <span class="p">[</span> <span class="p">[</span><span class="ss">:SCISSORS</span><span class="p">,</span> <span class="ss">:PAPER</span> <span class="p">],</span> <span class="p">[</span><span class="ss">:PAPER</span> <span class="p">,</span> <span class="ss">:ROCK</span> <span class="p">],</span> <span class="p">[</span><span class="ss">:ROCK</span> <span class="p">,</span> <span class="ss">:SCISSORS</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> + <span class="kp">protected</span> <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">winning_choice</span><span class="p">,</span><span class="n">losing_choice</span><span class="o">|</span> <span class="p">[</span><span class="n">losing_choice</span><span class="p">,</span><span class="n">winning_choice</span><span class="p">]</span> <span class="p">}</span> <span class="k">end</span> - <span class="nb">protected_methods</span> <span class="ss">:Constants</span> + <span class="c1"># protected_methods :Constants</span> <span class="k">class</span> <span class="o">&lt;&lt;</span> <span class="nb">self</span> <span class="c1"># add continue method for asking the user if they want to play rock paper scissors</span> <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> <span class="nb">puts</span> <span class="n">str1</span> @@ -147,19 +159,21 @@ <span class="k">end</span> <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> <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="se">\n</span><span class="s2">"</span> <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> <span class="k">when</span> <span class="ss">:WIN</span> - <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Player wins!"</span> + <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Player wins!</span><span class="se">\n</span><span class="s2">"</span> <span class="k">when</span> <span class="ss">:LOSE</span> - <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Computer wins!"</span> + <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">Computer wins!</span><span class="se">\n</span><span class="s2">"</span> <span class="k">else</span> - <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">It's a tie!"</span> + <span class="nb">puts</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">It's a tie!</span><span class="se">\n</span><span class="s2">"</span> <span class="k">end</span> + <span class="nb">print</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">[press any key to exit game]"</span> <span class="nb">gets</span> <span class="k">end</span> + <span class="kp">private</span> <span class="c1"># add module for private methods for the rpsg calculations</span> <span class="k">module</span> <span class="nn">PrivateMethods</span> <span class="k">class</span> <span class="o">&lt;&lt;</span> <span class="nb">self</span> <span class="c1"># make a definition that asks for the players choice</span> <span class="k">def</span> <span class="nf">player_choice</span> @@ -195,13 +209,13 @@ <span class="k">return</span> <span class="ss">:TIE</span> <span class="k">if</span> <span class="n">pl</span> <span class="o">=</span> <span class="n">co</span> <span class="c1"># there will never be a tie for the final outcome due to the code in the play() method</span> <span class="k">end</span> <span class="k">end</span> <span class="k">end</span> - + <span class="kp">public</span> - <span class="nb">private_methods</span> <span class="ss">:PrivateMethods</span> + <span class="c1"># private_methods :PrivateMethods</span> <span class="k">end</span> <span class="no">RockPaperScissorsGame</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"># best out of 3</span> @@ -218,10 +232,10 @@ <td><a href="./">Home</a></td> <td><a href="readme">README File</a></td> <td><a href="install">Install</a></td> <td><a href="update">Update</a></td> <td><a href="uninstall">Uninstall</a></td> - <td><a href="code">Master Code</a></td> + <td><a href="code">Full Code</a></td> <td><a href="simple">Simple Code</td> <td><a href="bundler">Bundler</a></td> </tr> </table> <br/>