codebreaker_marian 0.2.5 → 0.3.0

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: 1689561cd12ba8eac8eacadd2f8ea2348f5e25a69f727d5ff83e8d0737720ca6
4
- data.tar.gz: '038347fce8f348965fbb48e7f60a4dc3531145f086ce055d2b7c2f5b1fa78fa4'
3
+ metadata.gz: 4e30a3669f1f83e0e942d15225df934a575dc8ea93f4cbc73aa2b01275553794
4
+ data.tar.gz: 30928faaeef7218e8c217052098f4c38b2227d0dd3cf695e515b702df075bed0
5
5
  SHA512:
6
- metadata.gz: 662bc3bf5867ba4d0ad8053bce5ce3a19c72aab36c021883a47e66eec3ccc430f5a9aae8d6051d40a4316e8e77fa4806fcc5a61dcfead4e8cf402264225a0ab5
7
- data.tar.gz: 0704ae1377493a847326f366a5051327ea45fb9d12c04a1c1efdd6612852768f5d3c3feb6cf7e9005c364757abbae0f41f4a313f70a18bb8208b5ffb7e526543
6
+ metadata.gz: eec26a3458773e835ed35de0468cc9b1adb1e4a6e9df02dc7ceb7ddf246be2fdbeaa6d790afdf88cb513ec83d7d1c73879dc7838b3090e0194e5bda3d7d7de6a
7
+ data.tar.gz: db3023d94a60588870f00663642d6ac99cd87f78a753e05eeee709fb50aa7fdfbabbe51839a1da1c5a6d712569da66ac67b60dd9dd2bfd51a5b70e216562a81a
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_marian (0.2.5)
4
+ codebreaker_marian (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -5,13 +5,16 @@ module Codebreaker
5
5
  class Processor
6
6
  MATCHED_DIGIT_CHAR = '+'
7
7
  UNMATCHED_DIGIT_CHAR = '-'
8
+ WRONG_DIGIT_CHAR = ''
8
9
 
9
10
  attr_reader :guess, :code, :result
10
11
 
11
12
  def secret_code_proc(code, guess)
12
13
  @code = code.split('')
13
14
  @guess = guess.split('')
14
- handle_matched_digits.join + handle_matched_digits_with_wrong_position.join
15
+ answer = handle_matched_digits.join + handle_matched_digits_with_wrong_position.join
16
+ (code.length - answer.length).times { answer << WRONG_DIGIT_CHAR }
17
+ answer
15
18
  end
16
19
 
17
20
  private
@@ -5,7 +5,7 @@ module Codebreaker
5
5
  class Statistics
6
6
  def stats(list)
7
7
  difficulties = list.group_by { |score| score[:difficulty] }
8
- %i[hell medium easy].reduce([]) do |sorted_difficulties, difficulty_name|
8
+ Game::DIFFICULTIES.keys.reverse.reduce([]) do |sorted_difficulties, difficulty_name|
9
9
  if difficulties[difficulty_name]
10
10
  sorted_difficulties + stats_sort(difficulties[difficulty_name])
11
11
  else
@@ -2,14 +2,12 @@
2
2
 
3
3
  module Codebreaker
4
4
  module Validator
5
- DataValidError = Class.new(StandardError)
6
-
7
5
  def check_type(data, check_type)
8
- raise DataValidError, 'unexpected_type' unless data.instance_of? check_type
6
+ raise TypeError, 'unexpected_type' unless data.instance_of? check_type
9
7
  end
10
8
 
11
9
  def check_length(data, check)
12
- raise DataValidError, 'unexpected_length' unless (check[:min]..check[:max]).cover? data.length
10
+ raise ArgumentError, 'unexpected_length' unless (check[:min]..check[:max]).cover? data.length
13
11
  end
14
12
  end
15
13
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codebreaker
4
- VERSION = '0.2.5'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_marian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marian Rebeha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-04 00:00:00.000000000 Z
11
+ date: 2020-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler