new_super_codebreaker_2021 0.3.5 → 0.4.0

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
  SHA256:
3
- metadata.gz: 1a82b958460bacd3f2058c0358f7d03934b817439cb09a35ce7afd9665cd579a
4
- data.tar.gz: fa3eb2c2f1f60f4a3005c6aa3c91b9cfe01e189794ddc0372264234862855718
3
+ metadata.gz: 4fd40fec8111c449a529cb09ab6f8e530543d6ac1cdfc2ef23705ae42c8bfb4b
4
+ data.tar.gz: '084d4e637ece18072729939fe48befc743b34c1218d40f76e5e88508a88fd63e'
5
5
  SHA512:
6
- metadata.gz: 313ff20be1e825b6665c27e2faccf4285a4b24fe7f69bb63b7fed3b703f3e36767c9d5e9d5bee94a318debb68fd7393b3c52107d28b5c5a9d0bae78027070ded
7
- data.tar.gz: d2fdecb7035dec146a97fe2faa0d931a53d6154063f9733c9ba88cdcafc721e70aa6321569f1033b3149fe214dd14909e5a5ff34ca072834fdc8371c2504733d
6
+ metadata.gz: 7508f41c83260082bc6cb212ce85ded613637b48c8842040d4c363aa6a0ae7f535958781f8efc6938312e867eda165c71eb7773864c91a8989febf73dda3f9ef
7
+ data.tar.gz: 7d6ed122984525a2262bcc66aca2844723da9ecefb83976a09a9ac323e7cf062f6386fbfebc06cfd8971f0ca319d80a027ee18f5d9b1bf2c7fb5f0ecaed97ce8
data/lib/game.rb CHANGED
@@ -9,14 +9,18 @@ module NewSuperCodebreaker2021
9
9
  include ShowContent
10
10
  include DBMethods
11
11
 
12
+ def initialize
13
+ @code = generate_code
14
+ end
15
+
16
+ GUESS_COMMANDS = %i[hint rules exit].freeze
12
17
  START_COMMANDS = %i[start rules stats exit].freeze
13
18
  DIFFICULTY_COMMANDS = %i[easy medium hell exit].freeze
14
- GUESS_COMMANDS = %i[hint rules exit].freeze
15
19
  AFTER_GAME_COMMANDS = %i[start save exit].freeze
16
20
  YES_NO_COMMANDS = %i[yes no].freeze
17
21
 
18
22
  def chose_command(command)
19
- START_COMMANDS.include?(command.to_sym) ? command.to_sym : false
23
+ check_input(command, START_COMMANDS)
20
24
  end
21
25
 
22
26
  def take_name(input_name)
@@ -28,11 +32,7 @@ module NewSuperCodebreaker2021
28
32
  end
29
33
 
30
34
  def chose_difficulty(difficulty)
31
- DIFFICULTY_COMMANDS.include?(difficulty.to_sym) ? difficulty.to_sym : false
32
- end
33
-
34
- def generate_code
35
- Array.new(4) { rand(1..6) }
35
+ check_input(difficulty, DIFFICULTY_COMMANDS)
36
36
  end
37
37
 
38
38
  def user_guess(code)
@@ -55,31 +55,25 @@ module NewSuperCodebreaker2021
55
55
  end
56
56
 
57
57
  def after_game_commands(command)
58
- if command.to_i.zero? && AFTER_GAME_COMMANDS.include?(command.to_sym)
59
- command.to_sym
60
- else false
61
- end
58
+ check_input(command, AFTER_GAME_COMMANDS)
62
59
  end
63
60
 
64
61
  def attempt_to_start(command)
65
- if command.to_i.zero? && YES_NO_COMMANDS.include?(command.to_sym)
66
- command.to_sym
67
- else false
68
- end
62
+ check_input(command, YES_NO_COMMANDS)
69
63
  end
70
64
 
71
- def compare_codes(secret_code, user_code)
72
- matches, u_char = number_on_right_place(secret_code, user_code)
73
- number_in_secret_code(secret_code, user_code, matches, u_char)
65
+ def compare_codes(user_code)
66
+ matches, u_char = number_on_right_place(user_code)
67
+ number_in_secret_code(user_code, matches, u_char)
74
68
  end
75
69
 
76
70
  private
77
71
 
78
- def number_on_right_place(secret_code, user_code)
72
+ def number_on_right_place(user_code)
79
73
  matches = []
80
74
  u_char = []
81
75
  user_code.each_index do |i|
82
- if secret_code[i] == user_code[i]
76
+ if @code[i] == user_code[i]
83
77
  matches.unshift('+')
84
78
  u_char << user_code[i]
85
79
  end
@@ -87,11 +81,15 @@ module NewSuperCodebreaker2021
87
81
  [matches, u_char]
88
82
  end
89
83
 
90
- def number_in_secret_code(secret_code, user_code, matches, u_char)
84
+ def number_in_secret_code(user_code, matches, u_char)
91
85
  user_code.each do |element|
92
- matches.push('-') if secret_code.include?(element) && !u_char.include?(element)
86
+ matches.push('-') if @code.include?(element) && !u_char.include?(element)
93
87
  end
94
88
  matches
95
89
  end
90
+
91
+ def generate_code
92
+ Array.new(4) { rand(1..6) }
93
+ end
96
94
  end
97
95
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NewSuperCodebreaker2021
4
- VERSION = '0.3.5'
4
+ VERSION = '0.4.0'
5
5
  end
data/lib/validate.rb CHANGED
@@ -16,6 +16,13 @@ module Validate
16
16
  end
17
17
  end
18
18
 
19
+ def check_input(input, command_list)
20
+ if input.to_i.zero? && command_list.include?(input.to_sym)
21
+ input.to_sym
22
+ else false
23
+ end
24
+ end
25
+
19
26
  private
20
27
 
21
28
  def valid_number?(arr_code)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: new_super_codebreaker_2021
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nazar Dakhno
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-05 00:00:00.000000000 Z
11
+ date: 2021-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fasterer