mastermind-scott 1.0.3 → 2.0.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b72d5bb9aae3cf0386f0012e7f1a415fcbe4a51d
4
- data.tar.gz: dce8c7cb02b0b2389b90904cee539ae9a60ddc78
3
+ metadata.gz: 97de0bdd2f5f54df55087874472037230ccd7b3c
4
+ data.tar.gz: f9511f74f739dc58abd105af0fa380d089964cfa
5
5
  SHA512:
6
- metadata.gz: 5dffdc80db0597d369d844bd3a14accd7fcb12a50618b03a70d370fa39328c553061d2f5538368f0eaa6ea025a5c1e12ecb07a370cf0b417b1147c110b439b96
7
- data.tar.gz: 0264c63dd8a0998e62f40570e257e4a44414bcab5a1e7a397f935ca7d662d9e1b606ca3445bbd1b60228bfafecc2260cd933d5ef79c3ada7977ef4074f0b6b51
6
+ metadata.gz: b41c25e72b070b83a456311a91af85ed645aaa0df171dd62492108f6047303dc1a5f51258460434c64e268485c64b5a3bbf7ec42272f4c27ba34fe87ea90a8b2
7
+ data.tar.gz: 2b7592f0ce1e1e1acbc4440fedc3d77d8d773648ddff383f1d6534e6e6a28a8782f67b859abca0fd1209e93add428b24efb1926b83d013598c8f3b51272f5420
data/lib/game.rb CHANGED
@@ -44,23 +44,39 @@ class Game
44
44
  private
45
45
 
46
46
  def turn_evaluation
47
+ turn_visuals
48
+ case
49
+ when quit? then abort(messages.quit)
50
+ when win? then you_win
51
+ when !valid_size? || !valid_letters? then invalid
52
+ when lose? then you_lose
53
+ else turn_validate
54
+ end
55
+ end
56
+
57
+ def invalid
58
+ output.puts messages.guess_again
59
+ @guess_count -= 1
60
+ end
61
+
62
+ def you_lose
63
+ output.puts messages.lose
64
+ end
65
+
66
+ def turn_validate
67
+ validator
68
+ output.puts messages.after_guess(command, number_correct, position_right)
69
+ output.puts messages.guess_count(guess_count)
70
+ end
71
+
72
+ def you_win
73
+ output.puts messages.winner(answer, guess_count, minutes, seconds)
74
+ end
75
+
76
+ def turn_visuals
47
77
  output.puts messages.mastermind_logo
48
78
  table_update
49
79
  output.puts table.show
50
- case
51
- when quit?
52
- abort(messages.quit)
53
- when win?
54
- output.puts messages.winner(answer, guess_count, minutes, seconds)
55
- when !valid_size? || !valid_letters?
56
- output.puts messages.guess_again
57
- @guess_count -= 1
58
- when lose?
59
- output.puts messages.lose
60
- else validator
61
- output.puts messages.after_guess(command, number_correct, position_right)
62
- output.puts messages.guess_count(guess_count)
63
- end
64
80
  end
65
81
 
66
82
  def guess_counter
@@ -79,7 +95,6 @@ private
79
95
  total_time / 60
80
96
  end
81
97
 
82
-
83
98
  def total_time
84
99
  (end_time - @start_time).to_i
85
100
  end
data/lib/game_prompts.rb CHANGED
@@ -1,14 +1,16 @@
1
+ require 'colorize'
2
+
1
3
  class GamePrompts
2
4
  attr_reader :intro_message # => nil
3
5
 
4
6
  def intro_message
5
7
  %x( say "so check me out")
6
- "Welcome to MASTERMIND\n"+
7
- "Would you like to (p)lay, read the (i)nstructions, or (q)uit?"
8
+ "Welcome to MASTERMIND\n".green +
9
+ "Would you like to (p)lay, read the (i)nstructions, or (q)uit?".light_blue
8
10
  end
9
11
 
10
12
  def lose
11
- "Nice try you dummy." + play_again
13
+ "Nice try you " + "DUMMY. ".blue.bold + play_again
12
14
  end
13
15
 
14
16
  def winner(answer, guess_count, minutes, seconds)
@@ -16,7 +18,7 @@ class GamePrompts
16
18
  end
17
19
 
18
20
  def game_start
19
- "I have generated a beginner sequence with four elements made up of: (r)ed, (g)reen, (b)lue, and (y)ellow. Use (q)uit at any time to end the game."
21
+ "I have generated a beginner sequence with four elements made up of:\n" + "(r)".red + "ed, " + "(g)".green + "reen, " + "(b)".light_blue + "lue, " + "and " +"(y)".yellow + "ellow.\n Use (q)uit at any time to end the game."
20
22
  end
21
23
 
22
24
  def mastermind_logo
@@ -28,7 +30,7 @@ class GamePrompts
28
30
  | '_ ` _ \ / _` / __| __/ _ \ '__| '_ ` _ \| | '_ \ / _` |
29
31
  | | | | | | (_| \__ \ || __/ | | | | | | | | | | | (_| |
30
32
  |_| |_| |_|\__,_|___/\__\___|_| |_| |_| |_|_|_| |_|\__,_|
31
- }
33
+ }.cyan
32
34
 
33
35
  end
34
36
 
@@ -37,7 +39,7 @@ class GamePrompts
37
39
  end
38
40
 
39
41
  def player_input
40
- "Enter Choice: "
42
+ "Enter Choice: ".yellow
41
43
  end
42
44
 
43
45
  def instructions
@@ -45,31 +47,31 @@ class GamePrompts
45
47
  end
46
48
 
47
49
  def quit
48
- "Your father was right about you, you are a quitter."
50
+ "Your father was right about you, you are a quitter.".red
49
51
  end
50
52
 
51
53
  def invalid
52
- "Your argument is invalid. Try again."
54
+ "Your argument is invalid. Try again.".red
53
55
  end
54
56
 
55
57
  def guess_prompt
56
- "Take your guess: "
58
+ "Take your guess: ".yellow
57
59
  end
58
60
 
59
61
  def guess_again
60
- "The guess must only be 4 colors and either r, g, b, or y."
62
+ "The guess must only be 4 colors and either" +" r, ".red + "g, ".green + "b, ".light_blue + "or y.".yellow
61
63
  end
62
64
 
63
65
  def guess_count(guess_count)
64
66
  if guess_count == 1
65
- "You have taken #{guess_count} guess."
67
+ "You have taken" + " #{guess_count}".red + " guess."
66
68
  else
67
- "You have taken #{guess_count} guesses."
69
+ "You have taken " + " #{guess_count}".red + " guesses."
68
70
  end
69
71
  end
70
72
 
71
73
  def after_guess(guess,number_correct, position_right)
72
- "Your guess '#{guess.upcase}' has #{number_correct} correct colors with #{position_right} in the correct position."
74
+ "Your guess " + "'#{guess.upcase}'".magenta + " has " + "#{number_correct}".magenta + " correct colors with " + "#{position_right}".magenta + " in the correct position."
73
75
  end
74
76
 
75
77
  def play_again
data/lib/table.rb CHANGED
@@ -35,7 +35,7 @@ class Table
35
35
  end
36
36
 
37
37
  def create_table
38
- Terminal::Table.new :headings => ['Round', 'G', 'C', 'P'],
38
+ Terminal::Table.new :headings => ['Round', 'Guess', 'Color', 'Pos'],
39
39
  :rows => rows
40
40
  end
41
41
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mastermind-scott'
3
- s.version = '1.0.3'
3
+ s.version = '2.0.3'
4
4
  s.date = '2014-11-12'
5
5
  s.summary = "Try to guess the secret code."
6
6
  s.description = "The Mastermind Game"
@@ -19,4 +19,5 @@ Gem::Specification.new do |s|
19
19
  s.executables << 'mastermind-scott'
20
20
 
21
21
  s.add_runtime_dependency 'terminal-table', '~> 1.4.5', '>= 1.4.5'
22
+ s.add_runtime_dependency 'colorize', '>= 0.7.3'
22
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mastermind-scott
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Crawford
@@ -30,6 +30,20 @@ dependencies:
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.4.5
33
+ - !ruby/object:Gem::Dependency
34
+ name: colorize
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 0.7.3
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 0.7.3
33
47
  description: The Mastermind Game
34
48
  email: scottcrawford03@gmail.com
35
49
  executables: