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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4e30a3669f1f83e0e942d15225df934a575dc8ea93f4cbc73aa2b01275553794
|
4
|
+
data.tar.gz: 30928faaeef7218e8c217052098f4c38b2227d0dd3cf695e515b702df075bed0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eec26a3458773e835ed35de0468cc9b1adb1e4a6e9df02dc7ceb7ddf246be2fdbeaa6d790afdf88cb513ec83d7d1c73879dc7838b3090e0194e5bda3d7d7de6a
|
7
|
+
data.tar.gz: db3023d94a60588870f00663642d6ac99cd87f78a753e05eeee709fb50aa7fdfbabbe51839a1da1c5a6d712569da66ac67b60dd9dd2bfd51a5b70e216562a81a
|
data/Gemfile.lock
CHANGED
@@ -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
|
-
|
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
|
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
|
10
|
+
raise ArgumentError, 'unexpected_length' unless (check[:min]..check[:max]).cover? data.length
|
13
11
|
end
|
14
12
|
end
|
15
13
|
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.
|
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-
|
11
|
+
date: 2020-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|