codebreaker_diz 0.2.1 → 0.2.2

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: 141a45b6b83202107538923ce09e9b0fcc4cec95d09dea525519c18692550364
4
- data.tar.gz: f5e1fb6d8034298173131084395ca422c5508d5405522afb24fd33dfdc15cb1e
3
+ metadata.gz: 1f9aeb27a1e2fa00e90e43ffcb5de9c3b9700bb44d4764ca13e2237fce81660a
4
+ data.tar.gz: 33c0b6d0a78c127138461f729f11c54b4986e99c717b3a37234012da3bca53f3
5
5
  SHA512:
6
- metadata.gz: 8c0888260f008dde074d1fbcaf89386d68bef2fb389b197fc54132f570bf76ff3afccbad685b7fea1298e5443c068f6c4b2ffb705578519babdc08de53328f5d
7
- data.tar.gz: 4a46365c0c79217f5611413fd714b35cce9056a0835dc29ec533063a8085a99da059c501e385bf5c62ec53dbc74d86f781082a4a22a9162666341bc646fbf18a
6
+ metadata.gz: 53e71e2b6d8537e2cc5c93ca5d5a966d8769689854d40726ced94a8c270b94bd2cafb22a8ee39b0345caf7a1206b7db2ff8b1d980f877d489e41645556a28645
7
+ data.tar.gz: 15f1893fa2b22aedfbedbf5c8ac4d749761137685db0d89fb7523d7d3a021fe4eadb939e2463e6af1247e1f0b34dcc70f284cfc52d96c16ad57918a82238e1db
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_diz (0.2.1)
4
+ codebreaker_diz (0.2.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -51,7 +51,7 @@ module CodebreakerDiz
51
51
 
52
52
  return @guess_result = 'wrong format' unless valid? input
53
53
 
54
- make_results Matcher.calculate_matches(@secret, input)
54
+ make_results Matcher.new(@secret, input).matches
55
55
  end
56
56
 
57
57
  def generate_hint
@@ -4,20 +4,31 @@ require_relative 'config'
4
4
 
5
5
  module CodebreakerDiz
6
6
  class Matcher
7
- class << self
8
- def calculate_matches(secret, user_code)
9
- delta = []
10
- result = []
7
+ def initialize(secret_code, user_code)
8
+ @secret_code = secret_code
9
+ @user_code = user_code
11
10
 
12
- (0...CODE_LENGTH).each do |i|
13
- if secret[i] == user_code[i] then result << EXACT_MATCH_SIGN
14
- elsif (secret - delta).include? user_code[i] then result << NUMBER_MATCH_SIGN
15
- end
11
+ @exact_matches = 0
12
+ @number_matches = 0
13
+ end
14
+
15
+ def matches
16
+ calculate_matches
17
+
18
+ EXACT_MATCH_SIGN * @exact_matches << NUMBER_MATCH_SIGN * @number_matches
19
+ end
20
+
21
+ private
22
+
23
+ def calculate_matches
24
+ delta = []
16
25
 
17
- delta << user_code[i]
26
+ @secret_code.zip(@user_code).each do |secret_code_number, user_code_number|
27
+ if secret_code_number == user_code_number then @exact_matches += 1
28
+ elsif (@secret_code - delta).include? user_code_number then @number_matches += 1
18
29
  end
19
30
 
20
- result.sort!.join
31
+ delta << user_code_number
21
32
  end
22
33
  end
23
34
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CodebreakerDiz
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_diz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - bl0rch1d