codebreaker_game 0.1.3 → 0.1.4
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 +4 -4
- data/Gemfile.lock +2 -2
- data/lib/codebreaker_game.rb +6 -6
- data/lib/codebreaker_game/entities/user.rb +0 -12
- data/lib/codebreaker_game/random.rb +1 -16
- data/lib/codebreaker_game/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7219f2311682114f31962b66f56d4917617f48913931e5d2f7d1be48e250456b
|
4
|
+
data.tar.gz: '00975fb0ca85c26624c6bc67f45f128107dd072269fb22ae1e2dee530bc203b4'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 678457c7fc25fdf19276c90ec32eea493605b7c2ea0a0efc02d675a8b40b318a6f023af80c5eb7a0efa81e29e90c702edaabd6c66e0f8ea6b6cad3bbefce6d63
|
7
|
+
data.tar.gz: 38ab45c3e1b5abbe9432bf95f8edd600ae76b0bd64c408e409f72081a48c0c77a5fd907382db014a8032c9a17e0024e0b3035e029b7129b823b58cf476a36647
|
data/Gemfile.lock
CHANGED
data/lib/codebreaker_game.rb
CHANGED
@@ -83,14 +83,14 @@ module CodebreakerGame
|
|
83
83
|
@status = STATUS_WIN
|
84
84
|
end
|
85
85
|
|
86
|
-
def compare(
|
86
|
+
def compare(secret_number, user_number)
|
87
87
|
user.attempt
|
88
|
-
compare_numbers(
|
88
|
+
compare_numbers(secret_number, user_number)
|
89
89
|
end
|
90
90
|
|
91
|
-
def compare_numbers(
|
92
|
-
secret_digits =
|
93
|
-
user_digits =
|
91
|
+
def compare_numbers(secret_number, user_number)
|
92
|
+
secret_digits = secret_number.to_s.chars
|
93
|
+
user_digits = user_number.to_s.chars
|
94
94
|
response = strong_intersections(secret_digits, user_digits)
|
95
95
|
response += not_strong_intersections(secret_digits, user_digits)
|
96
96
|
win if response == STRONG_INTERSECTION * SECRET_LENGTH
|
@@ -112,7 +112,7 @@ module CodebreakerGame
|
|
112
112
|
def not_strong_intersections(secret_digits, user_digits)
|
113
113
|
response = ''
|
114
114
|
secret_digits.each do |digit|
|
115
|
-
next
|
115
|
+
next unless digit && user_digits.include?(digit)
|
116
116
|
|
117
117
|
response += NOT_STRONG_INTERSECTION
|
118
118
|
user_digits.delete_at(user_digits.index(digit))
|
@@ -7,7 +7,6 @@ module CodebreakerGame
|
|
7
7
|
@difficulty = difficulty
|
8
8
|
@hints_used = 0
|
9
9
|
@attempts_used = 0
|
10
|
-
validate
|
11
10
|
end
|
12
11
|
|
13
12
|
attr_reader :difficulty
|
@@ -35,16 +34,5 @@ module CodebreakerGame
|
|
35
34
|
def attempts?
|
36
35
|
@attempts_used < @difficulty.attempts
|
37
36
|
end
|
38
|
-
|
39
|
-
private
|
40
|
-
|
41
|
-
def validate
|
42
|
-
# required?(name)
|
43
|
-
# string?(name)
|
44
|
-
# not_empty?(name)
|
45
|
-
# required?(difficulty)
|
46
|
-
# difficulty?(difficulty)
|
47
|
-
# not_empty?(difficulty)
|
48
|
-
end
|
49
37
|
end
|
50
38
|
end
|
@@ -3,24 +3,9 @@ module CodebreakerGame
|
|
3
3
|
DEFAULT_MIN = 1
|
4
4
|
DEFAULT_MAX = 6
|
5
5
|
DEFAULT_LENGTH = 4
|
6
|
-
ORDER_AMOUNT = 10
|
7
6
|
|
8
7
|
def generate_secret(length = DEFAULT_LENGTH)
|
9
|
-
|
10
|
-
length.times do |degree|
|
11
|
-
number += generate_random * order(degree)
|
12
|
-
end
|
13
|
-
number
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def order(degree)
|
19
|
-
ORDER_AMOUNT**degree
|
20
|
-
end
|
21
|
-
|
22
|
-
def generate_random(min = DEFAULT_MIN, max = DEFAULT_MAX)
|
23
|
-
rand(min..max)
|
8
|
+
Array.new(length) { rand(DEFAULT_MIN..DEFAULT_MAX) }.join.to_i
|
24
9
|
end
|
25
10
|
end
|
26
11
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codebreaker_game
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -144,8 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
146
|
requirements: []
|
147
|
-
|
148
|
-
rubygems_version: 2.7.6
|
147
|
+
rubygems_version: 3.1.1
|
149
148
|
signing_key:
|
150
149
|
specification_version: 4
|
151
150
|
summary: Test application for RubyGarage.
|