mastermind-scott 2.0.3 → 2.0.4

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: 97de0bdd2f5f54df55087874472037230ccd7b3c
4
- data.tar.gz: f9511f74f739dc58abd105af0fa380d089964cfa
3
+ metadata.gz: d9851f1b85be4ced658bbb73d916f908dd712c37
4
+ data.tar.gz: 84912780e04ef850cea0a290be52518de76ea953
5
5
  SHA512:
6
- metadata.gz: b41c25e72b070b83a456311a91af85ed645aaa0df171dd62492108f6047303dc1a5f51258460434c64e268485c64b5a3bbf7ec42272f4c27ba34fe87ea90a8b2
7
- data.tar.gz: 2b7592f0ce1e1e1acbc4440fedc3d77d8d773648ddff383f1d6534e6e6a28a8782f67b859abca0fd1209e93add428b24efb1926b83d013598c8f3b51272f5420
6
+ metadata.gz: e7219d4abcb82c7aa2ef6ca20a355955f7b99886db0571f59cc12c3fa8e370715358dafdb0478a9c743656d826d1c073aa7f928c5450c13a5a495e57b4bba06a
7
+ data.tar.gz: 0ba50930f055d2d6de3774b8dd9187e2a5c9de3122da7c01ea181c838bdc65bcb0664b01364f6748cf5f4c51b3794718a361177024593d62af27972e56b0ba29
data/lib/cli.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "game_prompts"
2
- require "game"
1
+ require 'game_prompts'
2
+ require 'game'
3
3
 
4
4
  class CLI
5
5
  attr_reader :input,
@@ -11,12 +11,12 @@ class CLI
11
11
  @input = input
12
12
  @output = output
13
13
  @messages = GamePrompts.new
14
- @command = ""
14
+ @command = ''
15
15
  end
16
16
 
17
17
  def call
18
- output.puts @messages.mastermind_logo
19
- output.puts @messages.intro_message
18
+ output.puts @messages.mastermind_logo
19
+ output.puts @messages.intro_message
20
20
  until quit?
21
21
  output.puts @messages.player_input
22
22
  @command = input.gets.strip.downcase
@@ -27,29 +27,28 @@ end
27
27
 
28
28
  private
29
29
 
30
-
31
- def welcome_options
32
- case
33
- when play?
34
- game = Game.new(input, output, messages)
35
- game.play
36
- when instructions?
37
- output.puts @messages.instructions
38
- when quit?
39
- output.puts @messages.quit
40
- else
41
- output.puts @messages.invalid
42
- end
43
- end
44
-
45
- def play?
46
- command == "p" || command == "play"
30
+ def welcome_options
31
+ case
32
+ when play?
33
+ game = Game.new(input, output, messages)
34
+ game.play
35
+ when instructions?
36
+ output.puts @messages.instructions
37
+ when quit?
38
+ output.puts @messages.quit
39
+ else
40
+ output.puts @messages.invalid
47
41
  end
42
+ end
48
43
 
49
- def instructions?
50
- command == "i" || command == "instructions"
51
- end
44
+ def play?
45
+ command == 'p' || command == 'play'
46
+ end
52
47
 
53
- def quit?
54
- command == "q" || command == "quit"
55
- end
48
+ def instructions?
49
+ command == 'i' || command == 'instructions'
50
+ end
51
+
52
+ def quit?
53
+ command == 'q' || command == 'quit'
54
+ end
data/lib/colors.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  class Colors
2
2
  attr_reader :answer
3
3
  def initialize
4
- @answer = ['r','r','r','r']
4
+ @answer = %w(r r r r)
5
5
  end
6
6
 
7
7
  def secret_answer
@@ -13,13 +13,10 @@ class Colors
13
13
  end
14
14
 
15
15
  def answer_options
16
- ["r","g","b","y"]
16
+ %w(r g b y)
17
17
  end
18
18
 
19
19
  def shuffle
20
20
  answer_options.shuffle
21
21
  end
22
-
23
22
  end
24
-
25
- color = Colors.new
data/lib/game.rb CHANGED
@@ -1,10 +1,8 @@
1
1
  require_relative '../lib/colors'
2
2
  require_relative '../lib/game_prompts'
3
- require_relative "../lib/validate"
3
+ require_relative '../lib/validate'
4
4
  require_relative '../lib/table'
5
5
 
6
-
7
-
8
6
  class Game
9
7
  attr_reader :input,
10
8
  :output,
@@ -24,7 +22,7 @@ class Game
24
22
  @input = input
25
23
  @output = output
26
24
  @messages = messages
27
- @command = ""
25
+ @command = ''
28
26
  @guess_count = 0
29
27
  @old_guess = []
30
28
  end
@@ -40,8 +38,7 @@ class Game
40
38
  end
41
39
  end
42
40
 
43
-
44
- private
41
+ private
45
42
 
46
43
  def turn_evaluation
47
44
  turn_visuals
@@ -70,7 +67,7 @@ private
70
67
  end
71
68
 
72
69
  def you_win
73
- output.puts messages.winner(answer, guess_count, minutes, seconds)
70
+ output.puts messages.winner(answer, guess_count, minutes, seconds)
74
71
  end
75
72
 
76
73
  def turn_visuals
@@ -121,7 +118,7 @@ private
121
118
  end
122
119
 
123
120
  def quit?
124
- command == "q" || command == "quit"
121
+ command == 'q' || command == 'quit'
125
122
  end
126
123
 
127
124
  def validator
@@ -144,5 +141,4 @@ private
144
141
  def save_guess
145
142
  @old_guess << @command
146
143
  end
147
-
148
144
  end
data/lib/game_prompts.rb CHANGED
@@ -4,42 +4,41 @@ class GamePrompts
4
4
  attr_reader :intro_message # => nil
5
5
 
6
6
  def intro_message
7
- %x( say "so check me out")
7
+ ` say "so check me out"`
8
8
  "Welcome to MASTERMIND\n".green +
9
- "Would you like to (p)lay, read the (i)nstructions, or (q)uit?".light_blue
9
+ 'Would you like to (p)lay, read the (i)nstructions, or (q)uit?'.light_blue
10
10
  end
11
11
 
12
12
  def lose
13
- "Nice try you " + "DUMMY. ".blue.bold + play_again
13
+ 'Nice try you ' + 'DUMMY. '.blue.bold + play_again
14
14
  end
15
15
 
16
16
  def winner(answer, guess_count, minutes, seconds)
17
- "WINNER! You guessed the sequence '#{answer.join('').upcase}' with #{guess_count} guesses in #{minutes} minutes and #{seconds} seconds.\n(p)lay again or (q)uit?"
17
+ "WINNER! You guessed the sequence '#{answer.join('').upcase}' with #{guess_count} guesses in #{minutes} minutes and #{seconds} seconds. \n(p)lay again or (q)uit?"
18
18
  end
19
19
 
20
20
  def game_start
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."
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.\n\n"
22
22
  end
23
23
 
24
24
  def mastermind_logo
25
- puts
26
- %q{
27
- _ _ _
28
- | | (_) | |
29
- _ __ ___ __ _ ___| |_ ___ _ __ _ __ ___ _ _ __ __| |
30
- | '_ ` _ \ / _` / __| __/ _ \ '__| '_ ` _ \| | '_ \ / _` |
31
- | | | | | | (_| \__ \ || __/ | | | | | | | | | | | (_| |
32
- |_| |_| |_|\__,_|___/\__\___|_| |_| |_| |_|_|_| |_|\__,_|
33
- }.cyan
34
-
25
+ puts
26
+ %q{
27
+ _ _ _
28
+ | | (_) | |
29
+ _ __ ___ __ _ ___| |_ ___ _ __ _ __ ___ _ _ __ __| |
30
+ | '_ ` _ \ / _` / __| __/ _ \ '__| '_ ` _ \| | '_ \ / _` |
31
+ | | | | | | (_| \__ \ || __/ | | | | | | | | | | | (_| |
32
+ |_| |_| |_|\__,_|___/\__\___|_| |_| |_| |_|_|_| |_|\__,_|
33
+ }.cyan
35
34
  end
36
35
 
37
36
  def play
38
- "begin the game."
37
+ 'begin the game.'
39
38
  end
40
39
 
41
40
  def player_input
42
- "Enter Choice: ".yellow
41
+ 'Enter Choice: '.yellow
43
42
  end
44
43
 
45
44
  def instructions
@@ -47,34 +46,34 @@ class GamePrompts
47
46
  end
48
47
 
49
48
  def quit
50
- "Your father was right about you, you are a quitter.".red
49
+ 'Your father was right about you, you are a quitter.'.red
51
50
  end
52
51
 
53
52
  def invalid
54
- "Your argument is invalid. Try again.".red
53
+ 'Your argument is invalid. Try again.'.red
55
54
  end
56
55
 
57
56
  def guess_prompt
58
- "Take your guess: ".yellow
57
+ 'Take your guess: '.yellow
59
58
  end
60
59
 
61
60
  def guess_again
62
- "The guess must only be 4 colors and either" +" r, ".red + "g, ".green + "b, ".light_blue + "or y.".yellow
61
+ 'The guess must only be 4 colors and either' + ' r, '.red + 'g, '.green + 'b, '.light_blue + 'or y.'.yellow
63
62
  end
64
63
 
65
64
  def guess_count(guess_count)
66
65
  if guess_count == 1
67
- "You have taken" + " #{guess_count}".red + " guess."
66
+ 'You have taken' + " #{guess_count}".red + ' guess.'
68
67
  else
69
- "You have taken " + " #{guess_count}".red + " guesses."
68
+ 'You have taken ' + " #{guess_count}".red + ' guesses.'
70
69
  end
71
70
  end
72
71
 
73
- def after_guess(guess,number_correct, position_right)
74
- "Your guess " + "'#{guess.upcase}'".magenta + " has " + "#{number_correct}".magenta + " correct colors with " + "#{position_right}".magenta + " in the correct position."
72
+ def after_guess(guess, number_correct, position_right)
73
+ 'Your guess ' + "'#{guess.upcase}'".magenta + ' has ' + "#{number_correct}".magenta + ' correct colors with ' + "#{position_right}".magenta + ' in the correct position.'
75
74
  end
76
75
 
77
76
  def play_again
78
- "(p)lay again or (q)uit?"
77
+ '(p)lay again or (q)uit?'
79
78
  end
80
79
  end
data/lib/table.rb CHANGED
@@ -5,15 +5,14 @@ class Table
5
5
  :rows
6
6
 
7
7
  def initialize
8
- @rows = []
9
- @rows << ['Answer', '????', 'XX','XX']
10
- @table = create_table
11
- table_style
12
-
8
+ @rows = []
9
+ @rows << ['Answer', '????', 'XX', 'XX']
10
+ @table = create_table
11
+ table_style
13
12
  end
14
13
 
15
14
  def table_style
16
- table.style = {:width => 40, :padding_left => 3, :border_x => "=", :border_i => "X"}
15
+ table.style = { width: 40, padding_left: 3, border_x: '=', border_i: 'X' }
17
16
  end
18
17
 
19
18
  def show
@@ -21,12 +20,12 @@ class Table
21
20
  end
22
21
 
23
22
  def hidden_answer(answer)
24
- @rows[0] = ['Answer', answer.join(''), 'XX','XX']
23
+ @rows[0] = ['Answer', answer.join(''), 'XX', 'XX']
25
24
  end
26
25
 
27
- def update(guess_number, guess,number_correct, position, answer)
26
+ def update(guess_number, guess, number_correct, position, answer)
28
27
  if guess_number < 10
29
- @rows << [guess_number, guess, number_correct ,position]
28
+ @rows << [guess_number, guess, number_correct, position]
30
29
  else
31
30
  hidden_answer(answer)
32
31
  end
@@ -35,7 +34,7 @@ class Table
35
34
  end
36
35
 
37
36
  def create_table
38
- Terminal::Table.new :headings => ['Round', 'Guess', 'Color', 'Pos'],
39
- :rows => rows
37
+ Terminal::Table.new headings: %w(Round Guess Color Pos),
38
+ rows: rows
40
39
  end
41
40
  end
data/lib/validate.rb CHANGED
@@ -1,10 +1,5 @@
1
- # determine how many colors correct
2
- # determine how many positions correct
3
- # verify user guess with answer array
4
- # track number of guesses - guess 1, guess 2, etc. && "you have X number of guess left"
5
1
  require_relative '../lib/colors'
6
2
 
7
-
8
3
  class Validate
9
4
  attr_reader :answer,
10
5
  :guess
@@ -16,21 +11,21 @@ class Validate
16
11
  def position_check(guess)
17
12
  difference = 0
18
13
  4.times do |index|
19
- difference += 1 if guess[index] == @answer[index]
20
- end
14
+ difference += 1 if guess[index] == @answer[index]
15
+ end
21
16
  difference
22
17
  end
23
18
 
24
19
  def number_correct(guess)
25
- number_correct = 0
26
- new_answer = @answer
27
- new_answer.each do |letter|
28
- if guess.include?(letter)
29
- guess.delete_at(guess.index(letter))
30
- number_correct += 1
20
+ number_correct = 0
21
+ new_answer = @answer
22
+ new_answer.each do |letter|
23
+ if guess.include?(letter)
24
+ guess.delete_at(guess.index(letter))
25
+ number_correct += 1
26
+ end
31
27
  end
32
- end
33
- number_correct
28
+ number_correct
34
29
  end
35
30
 
36
31
  def correct?(user_guess)
@@ -38,7 +33,7 @@ class Validate
38
33
  end
39
34
 
40
35
  def letters?(guess)
41
- valid_letters = ['r', 'g', 'b', 'y']
36
+ valid_letters = %w(r g b y)
42
37
  guess.chars.all? { |letter| valid_letters.include?(letter) }
43
38
  end
44
39
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'mastermind-scott'
3
- s.version = '2.0.3'
3
+ s.version = '2.0.4'
4
4
  s.date = '2014-11-12'
5
5
  s.summary = "Try to guess the secret code."
6
6
  s.description = "The Mastermind Game"
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: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Crawford