codebreaker_kub 0.2.1 → 0.2.2

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: f04c487aaa2731e942ffff6cb60ef16d1104251d00bb9983a6e7d91c103b7169
4
- data.tar.gz: 4b505fe8bfe8a2e60e0f3915db5f3e4afe8175f06812602d4f1d972c9dcb31f4
3
+ metadata.gz: 051607a50601d334aa48d9d28785323e8d5c221c0aef317be4b4a5ceee34386e
4
+ data.tar.gz: 6a7ef0f973f7f648ab9ec282631d77f18f62ab2b8d271fa1959e6a4d50286225
5
5
  SHA512:
6
- metadata.gz: f4479ce9fa5fc088e8acdacc83756ea2842711fcc410f7885df6a70461906df3d9bbad0c0fe8f54df0ec98afe14d83f7574fbdd9d2b77c7ab7644da3f56481d9
7
- data.tar.gz: 24ef175cf81346eb5a3eb83553ac0e31ea77cb95e09502c3428e4cba77413d1ec55eeb578502bcd1b423d3e02fc9cceac6f622f15ed7fdfc19c77ce7af205141
6
+ metadata.gz: a60a49f8ea3d902cc5455fba5e1acf75a1290d013bc4dda5ff4ca6cadabddd8795c8a8e25f697cfed92b1c10973e410b64070a5d48bc73e52afb252ec3c2da46
7
+ data.tar.gz: 50d31ee1829a607075be8ec34df7b77eea7aa5c783ea62b5f12bfdc119f4c9df5db751b2d195a2c19970375422442f4a797e6e8326b327a2325765fbba717f99
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_kub (0.1.9)
4
+ codebreaker_kub (0.2.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'codebreaker/guess_checker'
3
4
  require_relative 'codebreaker/game'
4
5
  require_relative 'codebreaker/loader'
5
6
  require_relative 'codebreaker/output'
@@ -2,22 +2,21 @@
2
2
 
3
3
  module Codebreaker
4
4
  class Game
5
+ include Codebreaker::GuessChecker
6
+
7
+ attr_accessor :input_code, :code, :name, :difficulties, :difficulty, :hints_left, :attempts_left
8
+ attr_reader :minuse, :plus, :none, :hints_code
9
+
5
10
  CODE_LENGTH = 4
6
11
  CODE_RANGE = (1..6).freeze
7
- attr_accessor :input_code, :code, :name, :difficulties, :difficulty, :hints_left, :attempts_left
8
- attr_reader :minuse, :plus, :none
12
+
9
13
  def initialize
10
14
  @difficulties = Codebreaker::Loader.load('difficulties')
11
15
  @code = generate_code
16
+ @hints_code = @code.chars.shuffle
12
17
  symbols
13
18
  end
14
19
 
15
- def symbols(minuse = '-', plus = '+', none = '')
16
- @minuse = minuse
17
- @plus = plus
18
- @none = none
19
- end
20
-
21
20
  def game_option(name, difficulty)
22
21
  @name = name
23
22
  @difficulty = difficulty
@@ -33,23 +32,22 @@ module Codebreaker
33
32
  end
34
33
 
35
34
  def hints_left?
36
- @hints_left.positive?
35
+ hints_left.positive?
37
36
  end
38
37
 
39
38
  def input_operation(input_code)
40
- @input_code = input_code
41
39
  return unless attempts_left?
42
40
 
43
41
  @attempts_left -= 1
44
- check_input
42
+ check_input(@code, input_code)
45
43
  end
46
44
 
47
45
  def attempts_left?
48
- @attempts_left.positive?
46
+ attempts_left.positive?
49
47
  end
50
48
 
51
49
  def win?
52
- @input_code == @code
50
+ input_code == code
53
51
  end
54
52
 
55
53
  def save
@@ -58,25 +56,12 @@ module Codebreaker
58
56
 
59
57
  private
60
58
 
61
- def check_input(code = @code.chars)
62
- input = @input_code.chars
63
- minuses = (code & input).map { |element| [code.count(element), input.count(element)].min }.sum
64
- result = @minuse * minuses
65
- input.each.with_index do |element, index|
66
- result.sub!(@minuse, @plus) if element == code[index]
67
- end
68
- return result unless result.empty?
69
-
70
- @none
71
- end
72
-
73
59
  def generate_code
74
60
  Array.new(CODE_LENGTH) { rand(CODE_RANGE) }.join
75
61
  end
76
62
 
77
63
  def generate_hint
78
- hint_code = @code.chars.shuffle
79
- hint_code.pop
64
+ @hints_code.pop
80
65
  end
81
66
 
82
67
  def difficulty_option
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codebreaker
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_kub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - katia kub
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-16 00:00:00.000000000 Z
11
+ date: 2020-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fasterer