new_super_codebreaker_2021 0.3.5 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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