codebreaker_kub 0.2.1 → 0.2.2

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: 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