codebreaker_diz 0.2.1 → 0.2.2

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: 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