new_super_codebreaker_2021 0.4.7 → 0.5.1

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