PlayRockPaperScissorsGame 2.2.4 → 2.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/bin/PlayRockPaperScissorsGame +14 -44
- data/bin/rps +19 -49
- data/lib/{ref/Constants.rb → Constants.rb} +0 -1
- data/lib/{ref/PrivateMethods.rb → PrivateMethods.rb} +3 -4
- data/lib/rps/version.rb +2 -2
- data/rps.gemspec +1 -1
- data/test/test_rps.rb +10 -44
- metadata +3 -4
- metadata.gz.sig +0 -0
- data/lib/rps.rb +0 -66
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4b3fc06f4d65bfd48e21b4426e9eb132c07a149b
|
4
|
+
data.tar.gz: ae5db8785077f8f2f894822d246f5abee54ee156
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51a2b1dea0d717090474b09721b9df34ab1e8eb55649f75627031e01ed69977b461988c35cdd6238980ec05d20156d52c0634f038f307899262c057505c94b16
|
7
|
+
data.tar.gz: d19e73ab940e73cb8b3703f49f844cff8c61cb457e685c1f1823004b3f858519c691aa8ed4068391ad4ee699511f4d036d5021fa0b3f56fa67f4abeda89c33f3
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -4,27 +4,23 @@
|
|
4
4
|
|====================================|
|
5
5
|
| Req Ruby Ver | Req Ruby Gems Ver |
|
6
6
|
|--------------|---------------------|
|
7
|
-
| >= v2.0.0 | >= v2.6.
|
7
|
+
| >= v2.0.0 | >= v2.6.0 |
|
8
8
|
|====================================|
|
9
9
|
=end
|
10
10
|
|
11
11
|
|
12
|
-
class PlayRockPaperScissorsGame
|
12
|
+
class PlayRockPaperScissorsGame
|
13
|
+
|
14
|
+
require_relative "./../lib/rps/version.rb"
|
13
15
|
|
14
16
|
# intiate the colorize gem
|
15
17
|
require "colorized_string"
|
16
18
|
ColorizedString.colors
|
17
19
|
ColorizedString.modes
|
18
20
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
VALID_ENTRIES = NTRY_TO_SYM.keys
|
23
|
-
COMPUTER_CHOICES = NTRY_TO_SYM.values
|
24
|
-
WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
|
25
|
-
LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original `WINNERS` array and flip the symbols, thus returning a loss for the user/player
|
26
|
-
INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
|
27
|
-
end
|
21
|
+
require_relative "./../lib/Constants.rb"
|
22
|
+
|
23
|
+
protected_methods :Constants
|
28
24
|
|
29
25
|
class << self
|
30
26
|
def continue(str1,str2,str3) # pass in 3 parameters
|
@@ -34,7 +30,9 @@ class PlayRockPaperScissorsGame
|
|
34
30
|
puts ColorizedString[str3].colorize(:color => :green)
|
35
31
|
end
|
36
32
|
end
|
33
|
+
|
37
34
|
continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
|
35
|
+
|
38
36
|
def initialize
|
39
37
|
@player_score = @computer_score = @ties = 0
|
40
38
|
end
|
@@ -70,39 +68,11 @@ class PlayRockPaperScissorsGame
|
|
70
68
|
end
|
71
69
|
gets
|
72
70
|
end
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
|
79
|
-
choice = gets.chomp.downcase
|
80
|
-
if Constants::NTRY_TO_SYM.key?(choice)
|
81
|
-
return Constants::NTRY_TO_SYM[choice]
|
82
|
-
elsif choice != Constants::VALID_ENTRIES
|
83
|
-
puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
|
84
|
-
end
|
85
|
-
# # one may also do this:
|
86
|
-
# case
|
87
|
-
# when Constants::NTRY_TO_SYM.key?(choice)
|
88
|
-
# return Constants::NTRY_TO_SYM[choice]
|
89
|
-
# when choice != Constants::VALID_ENTRIES
|
90
|
-
# puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
|
91
|
-
# end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
def player_outcome(plays)
|
95
|
-
return :WIN if Constants::WINNERS.include?(plays)
|
96
|
-
return :LOSE if Constants::LOSERS.include?(plays)
|
97
|
-
return :TIE if !:WIN | !:LOSE
|
98
|
-
end
|
99
|
-
def final_outcome(pl,co)
|
100
|
-
return :WIN if pl > co
|
101
|
-
return :LOSE if pl < co
|
102
|
-
return :TIE if pl = co
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
71
|
+
|
72
|
+
require_relative "./../lib/PrivateMethods.rb"
|
73
|
+
|
74
|
+
private_methods :PrivateMethods
|
75
|
+
|
106
76
|
end
|
107
77
|
|
108
78
|
PlayRockPaperScissorsGame.new.play(2) # best of 3
|
data/bin/rps
CHANGED
@@ -4,36 +4,35 @@
|
|
4
4
|
|====================================|
|
5
5
|
| Req Ruby Ver | Req Ruby Gems Ver |
|
6
6
|
|--------------|---------------------|
|
7
|
-
| >= v2.0.0 | >= v2.6.
|
7
|
+
| >= v2.0.0 | >= v2.6.0 |
|
8
8
|
|====================================|
|
9
9
|
=end
|
10
10
|
|
11
11
|
|
12
|
-
class PlayRockPaperScissorsGame
|
12
|
+
class PlayRockPaperScissorsGame
|
13
13
|
|
14
|
+
require_relative "./../lib/rps/version.rb"
|
15
|
+
|
16
|
+
# intiate the colorize gem
|
14
17
|
require "colorized_string"
|
15
18
|
ColorizedString.colors
|
16
19
|
ColorizedString.modes
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
VALID_ENTRIES = NTRY_TO_SYM.keys
|
22
|
-
COMPUTER_CHOICES = NTRY_TO_SYM.values
|
23
|
-
WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
|
24
|
-
LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
|
25
|
-
INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
|
26
|
-
end
|
21
|
+
require_relative "./../lib/Constants.rb"
|
22
|
+
|
23
|
+
protected_methods :Constants
|
27
24
|
|
28
25
|
class << self
|
29
|
-
def continue(str1,
|
26
|
+
def continue(str1,str2,str3) # pass in 3 parameters
|
30
27
|
puts ColorizedString[str1].colorize(:color => :green)
|
31
28
|
print ColorizedString[str2].colorize(:color => :green)
|
32
|
-
gets
|
29
|
+
gets # press enter or return to continue
|
33
30
|
puts ColorizedString[str3].colorize(:color => :green)
|
34
31
|
end
|
35
32
|
end
|
33
|
+
|
36
34
|
continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
|
35
|
+
|
37
36
|
def initialize
|
38
37
|
@player_score = @computer_score = @ties = 0
|
39
38
|
end
|
@@ -42,7 +41,7 @@ class PlayRockPaperScissorsGame
|
|
42
41
|
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
43
42
|
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
|
44
43
|
player = PrivateMethods.player_choice
|
45
|
-
computer = Constants::COMPUTER_CHOICES.sample
|
44
|
+
computer = Constants::COMPUTER_CHOICES.sample # chooses a random option
|
46
45
|
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
|
47
46
|
puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
|
48
47
|
case PrivateMethods.player_outcome [player, computer]
|
@@ -69,40 +68,11 @@ class PlayRockPaperScissorsGame
|
|
69
68
|
end
|
70
69
|
gets
|
71
70
|
end
|
72
|
-
module PrivateMethods
|
73
|
-
private
|
74
|
-
class << self
|
75
|
-
def player_choice
|
76
|
-
loop do
|
77
|
-
print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
|
78
|
-
choice = gets.chomp.downcase
|
79
|
-
if Constants::NTRY_TO_SYM.key?(choice)
|
80
|
-
return Constants::NTRY_TO_SYM[choice]
|
81
|
-
elsif choice != Constants::VALID_ENTRIES
|
82
|
-
puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
|
83
|
-
end
|
84
|
-
# # one may also do this:
|
85
|
-
# case
|
86
|
-
# when Constants::NTRY_TO_SYM.key?(choice)
|
87
|
-
# return Constants::NTRY_TO_SYM[choice]
|
88
|
-
# when choice != Constants::VALID_ENTRIES
|
89
|
-
# puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
|
90
|
-
# end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
def player_outcome(plays)
|
94
|
-
return :WIN if Constants::WINNERS.include?(plays)
|
95
|
-
return :LOSE if Constants::LOSERS.include?(plays)
|
96
|
-
return :TIE if !:WIN | !:LOSE
|
97
|
-
end
|
98
|
-
def final_outcome(pl, co)
|
99
|
-
return :WIN if pl > co
|
100
|
-
return :LOSE if pl < co
|
101
|
-
return :TIE if pl = co
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|
106
71
|
|
107
|
-
|
72
|
+
require_relative "./../lib/PrivateMethods.rb"
|
73
|
+
|
74
|
+
private_methods :PrivateMethods
|
75
|
+
|
76
|
+
end
|
108
77
|
|
78
|
+
PlayRockPaperScissorsGame.new.play(2) # best of 3
|
@@ -2,12 +2,11 @@ require "colorized_string"
|
|
2
2
|
ColorizedString.colors
|
3
3
|
ColorizedString.modes
|
4
4
|
module PrivateMethods
|
5
|
-
private
|
6
5
|
class << self
|
7
6
|
def player_choice
|
8
7
|
loop do
|
9
8
|
print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
|
10
|
-
choice = gets.chomp.
|
9
|
+
choice = gets.chomp.downcase
|
11
10
|
if Constants::NTRY_TO_SYM.key?(choice)
|
12
11
|
return Constants::NTRY_TO_SYM[choice]
|
13
12
|
elsif choice != Constants::VALID_ENTRIES
|
@@ -27,10 +26,10 @@ module PrivateMethods
|
|
27
26
|
return :LOSE if Constants::LOSERS.include?(plays)
|
28
27
|
return :TIE if !:WIN | !:LOSE
|
29
28
|
end
|
30
|
-
def final_outcome(pl,
|
29
|
+
def final_outcome(pl,co)
|
31
30
|
return :WIN if pl > co
|
32
31
|
return :LOSE if pl < co
|
33
32
|
return :TIE if pl = co
|
34
33
|
end
|
35
34
|
end
|
36
|
-
end
|
35
|
+
end
|
data/lib/rps/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
module
|
2
|
-
VERSION = "2.2.
|
1
|
+
module RockPaperScissors
|
2
|
+
VERSION = "2.2.7"
|
3
3
|
end
|
data/rps.gemspec
CHANGED
data/test/test_rps.rb
CHANGED
@@ -2,27 +2,23 @@
|
|
2
2
|
|====================================|
|
3
3
|
| Req Ruby Ver | Req Ruby Gems Ver |
|
4
4
|
|--------------|---------------------|
|
5
|
-
| >= v2.0.0 | >= v2.6.
|
5
|
+
| >= v2.0.0 | >= v2.6.0 |
|
6
6
|
|====================================|
|
7
7
|
=end
|
8
8
|
|
9
9
|
class RakeTest # create test
|
10
10
|
|
11
|
+
require_relative "./../lib/rps/version.rb"
|
12
|
+
|
11
13
|
require "colorized_string"
|
12
14
|
ColorizedString.colors
|
13
15
|
ColorizedString.modes
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
VALID_ENTRIES = NTRY_TO_SYM.keys
|
19
|
-
COMPUTER_CHOICES = NTRY_TO_SYM.values
|
20
|
-
WINNERS = [[:SCISSORS, :PAPER], [:PAPER, :ROCK], [:ROCK, :SCISSORS]] # format: player choice, computer choice
|
21
|
-
LOSERS = WINNERS.map { |i,j| [j,i] } # this will take the original WINNERS array and flip the symbols, thus returning a loss for the user/player
|
22
|
-
INIT_STRINGS = ["You are about to enter a rock-paper-scissors best of 3 match.", "Press the return/enter key to continue...", ""]
|
23
|
-
end
|
17
|
+
require_relative "./../lib/Constants.rb"
|
18
|
+
protected_methods :Constants
|
19
|
+
|
24
20
|
class << self
|
25
|
-
def continue(str1,
|
21
|
+
def continue(str1,str2,str3)
|
26
22
|
puts ColorizedString[str1].colorize(:color => :green)
|
27
23
|
print ColorizedString[str2].colorize(:color => :green)
|
28
24
|
gets
|
@@ -65,39 +61,9 @@ class RakeTest # create test
|
|
65
61
|
end
|
66
62
|
gets
|
67
63
|
end
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
def player_choice
|
72
|
-
loop do
|
73
|
-
print ColorizedString["Choose rock (r), paper (p) or scissors (s): "].colorize(:green)
|
74
|
-
choice = gets.chomp.downcase
|
75
|
-
if Constants::NTRY_TO_SYM.key?(choice)
|
76
|
-
return Constants::NTRY_TO_SYM[choice]
|
77
|
-
elsif choice != Constants::VALID_ENTRIES
|
78
|
-
puts ColorizedString["That entry is invalid. Please re-enter"].colorize(:green)
|
79
|
-
end
|
80
|
-
# # one may also do this:
|
81
|
-
# case
|
82
|
-
# when Constants::NTRY_TO_SYM.key?(choice)
|
83
|
-
# return Constants::NTRY_TO_SYM[choice]
|
84
|
-
# when choice != Constants::VALID_ENTRIES
|
85
|
-
# puts ColorizedString["That entry is invalid. Please re-enter."].colorize(:green)
|
86
|
-
# end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
def player_outcome(plays)
|
90
|
-
return :WIN if Constants::WINNERS.include?(plays)
|
91
|
-
return :LOSE if Constants::LOSERS.include?(plays)
|
92
|
-
return :TIE if !:WIN | !:LOSE
|
93
|
-
end
|
94
|
-
def final_outcome(pl, co)
|
95
|
-
return :WIN if pl > co
|
96
|
-
return :LOSE if pl < co
|
97
|
-
return :TIE if pl = co
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
64
|
+
require_relative "./../lib/PrivateMethods.rb"
|
65
|
+
private_methods :PrivateMethods
|
66
|
+
|
101
67
|
end
|
102
68
|
|
103
69
|
RakeTest.new.testPlay(2) # best of 3
|
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.2.
|
4
|
+
version: 2.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bag3318
|
@@ -153,9 +153,8 @@ files:
|
|
153
153
|
- exec/rps.bash
|
154
154
|
- exec/run.bat
|
155
155
|
- exec/uninstall.sh
|
156
|
-
- lib/
|
157
|
-
- lib/
|
158
|
-
- lib/rps.rb
|
156
|
+
- lib/Constants.rb
|
157
|
+
- lib/PrivateMethods.rb
|
159
158
|
- lib/rps/version.rb
|
160
159
|
- rps.gemspec
|
161
160
|
- test/test_rps.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/lib/rps.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
|====================================|
|
3
|
-
| Req Ruby Ver | Req Ruby Gems Ver |
|
4
|
-
|--------------|---------------------|
|
5
|
-
| >= v2.0.0 | >= v2.6.10 |
|
6
|
-
|====================================|
|
7
|
-
=end
|
8
|
-
|
9
|
-
class PlayRockPaperScissorsGame
|
10
|
-
|
11
|
-
require "colorized_string"
|
12
|
-
ColorizedString.colors
|
13
|
-
ColorizedString.modes
|
14
|
-
|
15
|
-
require "ref/Constants.rb"
|
16
|
-
|
17
|
-
class << self
|
18
|
-
def continue(str1, str2, str3)
|
19
|
-
puts ColorizedString[str1].colorize(:color => :green)
|
20
|
-
print ColorizedString[str2].colorize(:color => :green)
|
21
|
-
gets
|
22
|
-
puts ColorizedString[str3].colorize(:color => :green)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
continue(Constants::INIT_STRINGS[0], Constants::INIT_STRINGS[1], Constants::INIT_STRINGS[2])
|
26
|
-
def initialize
|
27
|
-
@player_score = @computer_score = @ties = 0
|
28
|
-
end
|
29
|
-
def play(winning_score)
|
30
|
-
while @player_score < winning_score && @computer_score < winning_score
|
31
|
-
puts ColorizedString["Player score: #{@player_score}, "].colorize(:blue) +
|
32
|
-
ColorizedString["Computer score: #{@computer_score}, Ties: #{@ties}"].colorize(:blue)
|
33
|
-
player = PrivateMethods.player_choice
|
34
|
-
computer = Constants::COMPUTER_CHOICES.sample
|
35
|
-
puts ColorizedString["\nPlayer chooses #{player.to_s.downcase}"].colorize(:blue)
|
36
|
-
puts ColorizedString["Computer chooses #{computer.to_s.downcase}"].colorize(:blue)
|
37
|
-
case PrivateMethods.player_outcome [player, computer]
|
38
|
-
when :WIN
|
39
|
-
puts ColorizedString["#{player.to_s.capitalize} beats #{computer.to_s.downcase}, player wins the round"].colorize(:red)
|
40
|
-
@player_score += 1
|
41
|
-
when :LOSE
|
42
|
-
puts ColorizedString["#{computer.to_s.capitalize} beats #{player.to_s.downcase}, computer wins the round"].colorize(:red)
|
43
|
-
@computer_score += 1
|
44
|
-
else
|
45
|
-
puts ColorizedString["Tie, choose again"].colorize(:red)
|
46
|
-
@ties += 1
|
47
|
-
end
|
48
|
-
end
|
49
|
-
puts ColorizedString["\nFinal score: player: #{@player_score}, "].colorize(:blue) +
|
50
|
-
ColorizedString["computer: #{@computer_score} (ties: #{@ties})"].colorize(:blue)
|
51
|
-
case PrivateMethods.final_outcome(@player_score, @computer_score)
|
52
|
-
when :WIN
|
53
|
-
puts ColorizedString["Player wins!"].colorize(:red)
|
54
|
-
when :LOSE
|
55
|
-
puts ColorizedString["Computer wins!"].colorize(:red)
|
56
|
-
else
|
57
|
-
puts ColorizedString["It's a tie!"].colorize(:red)
|
58
|
-
end
|
59
|
-
gets
|
60
|
-
end
|
61
|
-
require "ref/PrivateMethods.rb"
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
PlayRockPaperScissorsGame.new.play(2) # best of 3
|
66
|
-
|