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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/codebreaker_diz/game.rb +1 -1
- data/lib/codebreaker_diz/matcher.rb +21 -10
- data/lib/codebreaker_diz/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f9aeb27a1e2fa00e90e43ffcb5de9c3b9700bb44d4764ca13e2237fce81660a
|
4
|
+
data.tar.gz: 33c0b6d0a78c127138461f729f11c54b4986e99c717b3a37234012da3bca53f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53e71e2b6d8537e2cc5c93ca5d5a966d8769689854d40726ced94a8c270b94bd2cafb22a8ee39b0345caf7a1206b7db2ff8b1d980f877d489e41645556a28645
|
7
|
+
data.tar.gz: 15f1893fa2b22aedfbedbf5c8ac4d749761137685db0d89fb7523d7d3a021fe4eadb939e2463e6af1247e1f0b34dcc70f284cfc52d96c16ad57918a82238e1db
|
data/Gemfile.lock
CHANGED
data/lib/codebreaker_diz/game.rb
CHANGED
@@ -4,20 +4,31 @@ require_relative 'config'
|
|
4
4
|
|
5
5
|
module CodebreakerDiz
|
6
6
|
class Matcher
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
result = []
|
7
|
+
def initialize(secret_code, user_code)
|
8
|
+
@secret_code = secret_code
|
9
|
+
@user_code = user_code
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
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
|
-
|
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
|
-
|
31
|
+
delta << user_code_number
|
21
32
|
end
|
22
33
|
end
|
23
34
|
end
|