new_super_codebreaker_2021 0.4.7 → 0.5.1

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: 3b9f46481dc59ed2caa512ab2ed78fb51c51c3b69b486ba05043828c85270cb1
4
- data.tar.gz: 5a396782e02179962b21e2a6687b1129e2113315aec0a26f8b02084cb618909c
3
+ metadata.gz: 8bb1ba256df4079a7db71b3eab48a60e48755c93d4f50b9b65614200006dda85
4
+ data.tar.gz: eb7af9ef4b3a9f04fe22fefecddd9a8d8cf9b84a9476a0e321421fe8d232b356
5
5
  SHA512:
6
- metadata.gz: 15891de86c911920c385109de0580a1ccf8b396d02c30439049bcf3f842db81df15b04bc1a6301823735414f968d3f49f9b50bd2af3ae2822d4304f0a5b71dd3
7
- data.tar.gz: a0bf80c0a28de7959aebff49ff5dfeb7743f6329d95eac6ac65f8d9cbd47ac3f97b3d6d874722bc3dbd698e8fb28fec834e7dda884ba042c102e028048b367a0
6
+ metadata.gz: 1e9e8009f41e9d7f2cf5e3c285a491e57e8817ae262bd98fb564b070a5b6b1a1ca97c02514fb543820c7d0351b29764e811494eea9b4cf380cef42bb67e12931
7
+ data.tar.gz: c3119d702e0f0740850f174fe871f2af9dac7283d8dfc3f9eee0dce43ee97d811b8a0b442308c3428f00f09e989823b937e0aded57d3a044c666154967590aed
@@ -1,5 +1,3 @@
1
- require_relative '../loader'
2
-
3
1
  module NewSuperCodebreaker2021
4
2
  class Game
5
3
  include DBMethods
@@ -8,17 +6,17 @@ module NewSuperCodebreaker2021
8
6
 
9
7
  attr_reader :code
10
8
 
11
- def initialize
12
- @code = generate_code
13
- @code_copy = @code.dup
14
- end
15
-
16
9
  GUESS_COMMANDS = %i[hint rules exit].freeze
17
10
  START_COMMANDS = %i[start rules stats exit].freeze
18
11
  DIFFICULTY_COMMANDS = %i[easy medium hell exit].freeze
19
12
  AFTER_GAME_COMMANDS = %i[start save exit].freeze
20
13
  YES_NO_COMMANDS = %i[yes no].freeze
21
14
 
15
+ def initialize
16
+ @code = generate_code
17
+ @code_copy = @code.dup
18
+ end
19
+
22
20
  def chose_command(command)
23
21
  check_input(command, START_COMMANDS)
24
22
  end
@@ -81,16 +79,25 @@ module NewSuperCodebreaker2021
81
79
  def number_in_secret_code(user_code, matches, code_copy)
82
80
  amount_numbers_in_secret_code = Hash.new(0)
83
81
  amount_numbers_in_user_code = Hash.new(0)
84
- code_copy.each { |number| amount_numbers_in_secret_code[number] += 1 }
82
+ code_copy.each { |number| amount_numbers_in_secret_code[number.to_s] += 1 }
85
83
  user_code.each do |element|
86
- if code_copy.include?(element) && amount_numbers_in_user_code[element] < amount_numbers_in_secret_code[element]
87
- matches.push('-')
88
- amount_numbers_in_user_code[element] += 1
89
- end
84
+ next unless include_element?(code_copy, element) &&
85
+ less_amount_of_element?(amount_numbers_in_user_code, amount_numbers_in_secret_code, element)
86
+
87
+ matches.push('-')
88
+ amount_numbers_in_user_code[element.to_s] += 1
90
89
  end
91
90
  matches
92
91
  end
93
92
 
93
+ def include_element?(given_array, element)
94
+ given_array.include? element
95
+ end
96
+
97
+ def less_amount_of_element?(amount_numbers_in_user_code, amount_numbers_in_secret_code, element)
98
+ amount_numbers_in_user_code[element.to_s] < amount_numbers_in_secret_code[element.to_s]
99
+ end
100
+
94
101
  def generate_code
95
102
  Array.new(4) { rand(1..6) }
96
103
  end
@@ -1,3 +1,3 @@
1
1
  module NewSuperCodebreaker2021
2
- VERSION = '0.4.7'.freeze
2
+ VERSION = '0.5.1'.freeze
3
3
  end
@@ -1,8 +1,8 @@
1
1
  require 'yaml'
2
+
2
3
  require_relative 'new_super_codebreaker_2021/user'
3
4
  require_relative 'new_super_codebreaker_2021/show_content'
4
5
  require_relative 'new_super_codebreaker_2021/db_methods'
5
6
  require_relative 'new_super_codebreaker_2021/validate'
6
- require_relative 'new_super_codebreaker_2021/new_super_codebreaker_2021'
7
7
  require_relative 'new_super_codebreaker_2021/game'
8
8
  require_relative 'new_super_codebreaker_2021/version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: new_super_codebreaker_2021
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nazar Dakhno
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-13 00:00:00.000000000 Z
11
+ date: 2021-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fasterer
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.21.2
97
- - !ruby/object:Gem::Dependency
98
- name: terminal-table
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 3.0.1
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 3.0.1
111
97
  description: Game where you need to guess the secret code
112
98
  email:
113
99
  - dakhnonazar@gmail.com
@@ -116,10 +102,9 @@ extensions: []
116
102
  extra_rdoc_files: []
117
103
  files:
118
104
  - README.md
119
- - lib/loader.rb
105
+ - lib/new_super_codebreaker_2021.rb
120
106
  - lib/new_super_codebreaker_2021/db_methods.rb
121
107
  - lib/new_super_codebreaker_2021/game.rb
122
- - lib/new_super_codebreaker_2021/new_super_codebreaker_2021.rb
123
108
  - lib/new_super_codebreaker_2021/show_content.rb
124
109
  - lib/new_super_codebreaker_2021/user.rb
125
110
  - lib/new_super_codebreaker_2021/validate.rb
@@ -1,3 +0,0 @@
1
- module NewSuperCodebreaker2021
2
- class Error < StandardError; end
3
- end