codebreaker_diz 0.2.6 → 0.2.7

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