codebreaker_diz 0.2.6 → 0.2.7

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: b25b6d901bf9bd538342fb86c878b4cb1e66a2b33f50902a39989677c89b036b
4
- data.tar.gz: b2b97cdbaeb85c13b95190770aa476da1443f158ebd5786d7b44e9cb3fa626c1
3
+ metadata.gz: f77ae0a549a358d95d77adafed1a8d50dec95cbf04470ccd576bc663206370af
4
+ data.tar.gz: f81fe8cbcb8bfbf977153f75813326ab1fb6d6423c474587a9c3a6417dc9ee83
5
5
  SHA512:
6
- metadata.gz: bb0673a0234e0daa3bb044139e7dd25c0a210dc21e57ceedce78f70b72d9263a874a730531360030a0bc013c9e17e806ec2bff3dff8c9789d8f04d4ef6079cef
7
- data.tar.gz: 9d78f67fc142ed43e3feef1d9f7e246207f59a985635e8e3c2360770b361e7e1aa9c37ea3d4b87d76e312ac0285074638e3777525dc0283dcd2020a9ad35b485
6
+ metadata.gz: e4cc4384c80451f3aced0873d8ecab89f442b98515acb53364178080848a895ee6333c9d99d9c5afd0ac38bb8e6ca444009c5aaae003e9629d36c6f1b47c9ce8
7
+ data.tar.gz: ca9baf924279712fb58be861a6892d67949ef60bf6e7c1eee4cc1abf7385619e8879e58b0d923673a316946cf12cdecafb89e7dd37045f15eedcb5e0a675d25d
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_diz (0.2.6)
4
+ codebreaker_diz (0.2.7)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -16,20 +16,17 @@ GEM
16
16
  ffi (~> 1.0, >= 1.0.11)
17
17
  coderay (1.1.2)
18
18
  colorize (0.8.1)
19
- concurrent-ruby (1.1.5)
20
19
  diff-lcs (1.3)
21
20
  docile (1.3.1)
22
21
  fasterer (0.5.1)
23
22
  colorize (~> 0.7)
24
23
  ruby_parser (>= 3.13.0)
25
24
  ffi (1.11.1)
26
- i18n (1.6.0)
27
- concurrent-ruby (~> 1.0)
28
25
  iniparse (1.4.4)
29
26
  jaro_winkler (1.5.2)
30
27
  json (2.2.0)
31
28
  method_source (0.9.2)
32
- overcommit (0.48.0)
29
+ overcommit (0.48.1)
33
30
  childprocess (~> 0.6, >= 0.6.3)
34
31
  iniparse (~> 1.4)
35
32
  parallel (1.17.0)
@@ -84,7 +81,6 @@ DEPENDENCIES
84
81
  bundler (~> 2.0)
85
82
  codebreaker_diz!
86
83
  fasterer (~> 0.5.1)
87
- i18n (~> 1.6)
88
84
  overcommit (~> 0.48.0)
89
85
  pry (~> 0.12.2)
90
86
  rake (~> 10.0)
@@ -2,5 +2,5 @@
2
2
 
3
3
  require_relative 'codebreaker_diz/game'
4
4
  require_relative 'codebreaker_diz/matcher'
5
- require_relative 'codebreaker_diz/errors'
5
+ require_relative 'codebreaker_diz/errors/autoload'
6
6
  require_relative 'codebreaker_diz/version'
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'difficulty_error'
4
+ require_relative 'guess_format_error'
5
+ require_relative 'no_hints_left_error'
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerDiz
4
+ DifficultyError = Class.new(StandardError)
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerDiz
4
+ GuessFormatError = Class.new(StandardError)
5
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CodebreakerDiz
4
+ NoHintsError = Class.new(StandardError)
5
+ end
@@ -25,15 +25,21 @@ module CodebreakerDiz
25
25
  end
26
26
 
27
27
  def calculate_matches
28
- @secret_code.zip(@user_code).each do |secret_code_number, user_code_number|
28
+ @secret_code.zip(@user_code).map do |secret_code_number, user_code_number|
29
29
  next unless @secret_code.include? user_code_number
30
30
 
31
- if secret_code_number == user_code_number then @exact_matches += 1
32
- else @number_matches += 1
33
- end
31
+ next add_match(user_code_number, exact: true) if secret_code_number == user_code_number
34
32
 
35
- @secret_code.delete_at(@secret_code.index(user_code_number))
33
+ add_match(user_code_number)
36
34
  end
37
35
  end
36
+
37
+ def add_match(matched_code_number, exact: false)
38
+ @exact_matches += 1 if exact
39
+
40
+ @number_matches += 1 unless exact
41
+
42
+ @secret_code.delete_at(@secret_code.index(matched_code_number))
43
+ end
38
44
  end
39
45
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CodebreakerDiz
4
- VERSION = '0.2.6'
4
+ VERSION = '0.2.7'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_diz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - bl0rch1d
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-05 00:00:00.000000000 Z
11
+ date: 2019-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -191,7 +191,10 @@ files:
191
191
  - codebreaker_diz.gemspec
192
192
  - lib/codebreaker_diz.rb
193
193
  - lib/codebreaker_diz/config.rb
194
- - lib/codebreaker_diz/errors.rb
194
+ - lib/codebreaker_diz/errors/autoload.rb
195
+ - lib/codebreaker_diz/errors/difficulty_error.rb
196
+ - lib/codebreaker_diz/errors/guess_format_error.rb
197
+ - lib/codebreaker_diz/errors/no_hints_left_error.rb
195
198
  - lib/codebreaker_diz/game.rb
196
199
  - lib/codebreaker_diz/matcher.rb
197
200
  - lib/codebreaker_diz/version.rb
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module CodebreakerDiz
4
- DifficultyError = Class.new(StandardError)
5
-
6
- GuessFormatError = Class.new(StandardError)
7
-
8
- NoHintsError = Class.new(StandardError)
9
- end