codebracker_simb 0.2.0 → 0.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fdaa035c89a4e37517274a684ab53be0bf78784b6720f12483be57c004ae3348
4
- data.tar.gz: 2728cb48ae9a344d4de629fe3ea24a5ce8b39e35164266513cfe0a883bda7377
3
+ metadata.gz: c7dc282b3f5cf6fc12161555138da388c06aab01c06a02badc3d040fa0916190
4
+ data.tar.gz: 67abb498bb1c97e24437be51ced2f94d95d8e8ef5597fa2296f97f32dd9cbf1d
5
5
  SHA512:
6
- metadata.gz: 0154f9d73aa24bd7847500d2059725d20ee989a748b19db4c59a0d52899dda0c0463dc55600c36cb9e09aa1077d795a56209eb4809355b6fe2ec67da0241c0f9
7
- data.tar.gz: 4696e2fcfe0169f7de36cbdffdd8c699c729cf3b1d6c2a8294a6eb0cbe5657eddfb6701efe24136ac4782bed3afbd5a51f0977630174c6b45e422297427d28d3
6
+ metadata.gz: 4e14f0a7b76153e9a61b10d690f47e419884d86b44cb5aa5bc104fd9d8a6ef0d2db19677d192b4aaa6c75cf8eec435890164b8a46ac104fc9a652b3b5110c5b4
7
+ data.tar.gz: 645b51d3e1f24ab2cf32c23fbd9b86e79d57c4ace434a6c58921ebe3e73e66772409ad123e0c178f25fd04a8c286ef6d9bc84863063612a36f0fea37ab146f58
@@ -17,24 +17,19 @@ module CodebrackerSimb
17
17
  CONGRATULATIONS = 'Congratulations! You broked a code, master!'
18
18
 
19
19
  def initialize(complexity, player)
20
- @attempts = set_attempts(complexity)
20
+ @attempts = set_options(complexity)[:attempts]
21
+ @hints = set_options(complexity)[:hints]
21
22
  @player = player
22
23
  end
23
24
 
24
- def play
25
- define_code
26
- loop do
27
- input_answer
28
- result = Checker.new(code, answer).compare
29
- refresh_attempts_quantity
30
- break if win? || @attempts == 0
31
- end
32
- end
33
-
34
25
  def input_answer(input)
35
26
  @answer = Code.new(input)
36
27
  end
37
28
 
29
+ def check_answer
30
+ Checker.new(code, answer).compare
31
+ end
32
+
38
33
  def define_code
39
34
  @code = Array.new(4) { rand(1..6) }
40
35
  end
@@ -49,15 +44,17 @@ module CodebrackerSimb
49
44
  message = "#{@attempts} left"
50
45
  end
51
46
  end
47
+
48
+ private
52
49
 
53
- def set_attempts(complexity)
50
+ def set_options(complexity)
54
51
  case complexity
55
52
  when 'easy'
56
- 14
53
+ {attempts: 14, hints: 2}
57
54
  when 'medium'
58
- 10
55
+ {attempts: 10, hints: 1}
59
56
  when 'hard'
60
- 5
57
+ {attempts: 5, hints: 1}
61
58
  else
62
59
  raise ERR_UNEXPECTED_COMPLEXITY
63
60
  end
@@ -0,0 +1,13 @@
1
+ module CodebrackerSimb
2
+ class Validator
3
+
4
+ def self.valid_name?(name)
5
+ name.is_a?(String) && name.length > 3 && name.length < 20
6
+ end
7
+
8
+ def self.valid_code?(code)
9
+ code =~ /^[1-6]{4}$/
10
+ end
11
+
12
+ end
13
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CodebrackerSimb
4
- VERSION = "0.2.0"
4
+ VERSION = "0.2.3"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebracker_simb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - max
@@ -37,6 +37,7 @@ files:
37
37
  - lib/codebracker_simb/checker.rb
38
38
  - lib/codebracker_simb/code.rb
39
39
  - lib/codebracker_simb/game.rb
40
+ - lib/codebracker_simb/validator.rb
40
41
  - lib/codebracker_simb/version.rb
41
42
  homepage:
42
43
  licenses: