codebreaker-rg-te 0.1.21 → 0.1.22
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/codebreaker/game.rb +17 -11
- data/lib/codebreaker/statistics.rb +5 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e39884b51fcae83eb263609cd2a0f0ba3fc3d6d5
|
4
|
+
data.tar.gz: 349facfcbdb6ae824d380822ffe1d1f63c53b975
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41832bd7b6861e5cb6ea9e56d91e5eb2fe1150d90002ea11dc2ff32ef6620f34dc8fd0d9796352a87c1e18ccdffb5b8aaa66c692a3856204d0cf92fba7604074
|
7
|
+
data.tar.gz: ab0cbb8bb1b4e60c211cee2faa4c15178308348f58b9479547b4293911d72549517eb796e933a396854de7024b3f0b1fe942b54cb6a188aec48af9323e95dcd9
|
data/lib/codebreaker/game.rb
CHANGED
@@ -66,14 +66,22 @@ module Codebreaker
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def game_result
|
69
|
-
|
69
|
+
secret_code_clone = @secret_code.clone
|
70
|
+
count_plus(secret_code_clone) + count_minus(secret_code_clone)
|
70
71
|
end
|
71
72
|
|
72
73
|
def storage_data(codebreaker_data)
|
73
74
|
attempts_used = GAME_LEVELS.dig(level.to_sym, :attempts) - attempts
|
74
75
|
hints_used = GAME_LEVELS.dig(level.to_sym, :hints) - hints
|
75
|
-
game_date = Time.new.strftime
|
76
|
-
hash_stat = { name: @name,
|
76
|
+
game_date = Time.new.strftime '%Y/%m/%d %H:%M:%S'
|
77
|
+
hash_stat = { name: @name,
|
78
|
+
level: @level,
|
79
|
+
level_num: @level_num,
|
80
|
+
attempts: @attempts,
|
81
|
+
attempts_used: attempts_used,
|
82
|
+
hints: @hints,
|
83
|
+
hints_used: hints_used,
|
84
|
+
game_date: game_date }
|
77
85
|
codebreaker_data << hash_stat
|
78
86
|
end
|
79
87
|
|
@@ -85,27 +93,25 @@ module Codebreaker
|
|
85
93
|
|
86
94
|
private
|
87
95
|
|
88
|
-
def count_plus
|
96
|
+
def count_plus(secret_code_clone)
|
89
97
|
result = ''
|
90
|
-
@secret_code_clone = @secret_code.clone
|
91
98
|
@user_code.each_with_index do |digit, index|
|
92
|
-
next unless digit ==
|
99
|
+
next unless digit == secret_code_clone[index]
|
93
100
|
|
94
101
|
result += '+'
|
95
|
-
|
102
|
+
secret_code_clone[index] = nil
|
96
103
|
@user_code[index] = nil
|
97
104
|
end
|
98
105
|
result
|
99
106
|
end
|
100
107
|
|
101
|
-
def count_minus
|
108
|
+
def count_minus(secret_code_clone)
|
102
109
|
result = ''
|
103
|
-
@secret_code_clone = @secret_code.clone
|
104
110
|
@user_code.compact.each_with_index do |digit, _index|
|
105
|
-
next unless
|
111
|
+
next unless secret_code_clone.include?(digit)
|
106
112
|
|
107
113
|
result += '-'
|
108
|
-
|
114
|
+
secret_code_clone[secret_code_clone.index(digit)] = nil
|
109
115
|
end
|
110
116
|
result
|
111
117
|
end
|
@@ -1,8 +1,11 @@
|
|
1
1
|
module Codebreaker
|
2
2
|
class Statistics
|
3
|
+
def initialize
|
4
|
+
@storage = StorageInterceptor.new
|
5
|
+
end
|
6
|
+
|
3
7
|
def stats
|
4
|
-
|
5
|
-
return unless codebreaker_data = storage.read_database
|
8
|
+
return unless codebreaker_data = @storage.read_database
|
6
9
|
|
7
10
|
codebreaker_data.sort_by! { |stat| [stat[:level_num], stat[:hints], stat[:attempts]] }
|
8
11
|
codebreaker_data.each { |stat| stat.delete_if { |key, _value| key == :level_num } }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codebreaker-rg-te
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugene Tereschenko
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: i18n
|