codebreaker_kirill 0.1.0 → 0.2.0

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: 8b454024ec6673cfe8e3884c8497657daf5d5424d4c7e51bbe00e3d4a9192e82
4
- data.tar.gz: 7fd87d2917146651c19252946e85a71ac0a0ab92aaf00138d75ceac0e51beb8a
3
+ metadata.gz: 7cd5991c34a1e2aa56eb582a92c2f175fabe8aa88ca6d3352252776408a11df4
4
+ data.tar.gz: ac3988684451eae71a035df31873cefb220f00afc41951847a8c394027eb39c3
5
5
  SHA512:
6
- metadata.gz: 6147792ec13fe1eca69786c2218daa24f38d635109b7674ef3d8dc9f74eee3798842ac0c81b6535ced2c64db9acd90e0e7e4de0ea670a3be12e88c85a005aefb
7
- data.tar.gz: 70348f0561fffc1e69233f2b6857881469923a49d08e2fde5c49939ec3ef167b9a11f024cdd240a1db6efc079038d1bded22ce66b39f5bbf8791d5dfbcd34178
6
+ metadata.gz: 98d188191eaf12fb86d496e303afaa17f5be3dfc37e03a8908632f4ec0a5ada9bd4025d36020557be7ca5cb491011f8c9a4bbd854e0908fc789b48a3310ef25e
7
+ data.tar.gz: 44fac1f766568c1c20bc508cf2147eaa83d020ae089b092388f95fc6089e67f290a55f7c203dbab510d21adc500a2fde0530e11e815b08cfb7e66a2738c17674
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --require spec_helper
data/Gemfile.lock ADDED
@@ -0,0 +1,55 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ codebreaker_kirill (0.1.0)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ ast (2.4.2)
10
+ diff-lcs (1.5.0)
11
+ json (2.6.2)
12
+ parallel (1.22.1)
13
+ parser (3.1.2.1)
14
+ ast (~> 2.4.1)
15
+ rainbow (3.1.1)
16
+ regexp_parser (2.5.0)
17
+ rexml (3.2.5)
18
+ rspec (3.11.0)
19
+ rspec-core (~> 3.11.0)
20
+ rspec-expectations (~> 3.11.0)
21
+ rspec-mocks (~> 3.11.0)
22
+ rspec-core (3.11.0)
23
+ rspec-support (~> 3.11.0)
24
+ rspec-expectations (3.11.0)
25
+ diff-lcs (>= 1.2.0, < 2.0)
26
+ rspec-support (~> 3.11.0)
27
+ rspec-mocks (3.11.1)
28
+ diff-lcs (>= 1.2.0, < 2.0)
29
+ rspec-support (~> 3.11.0)
30
+ rspec-support (3.11.0)
31
+ rubocop (1.35.0)
32
+ json (~> 2.3)
33
+ parallel (~> 1.10)
34
+ parser (>= 3.1.2.1)
35
+ rainbow (>= 2.2.2, < 4.0)
36
+ regexp_parser (>= 1.8, < 3.0)
37
+ rexml (>= 3.2.5, < 4.0)
38
+ rubocop-ast (>= 1.20.1, < 2.0)
39
+ ruby-progressbar (~> 1.7)
40
+ unicode-display_width (>= 1.4.0, < 3.0)
41
+ rubocop-ast (1.21.0)
42
+ parser (>= 3.1.1.0)
43
+ ruby-progressbar (1.11.0)
44
+ unicode-display_width (2.2.0)
45
+
46
+ PLATFORMS
47
+ universal-darwin-21
48
+
49
+ DEPENDENCIES
50
+ codebreaker_kirill!
51
+ rspec
52
+ rubocop (~> 1.21)
53
+
54
+ BUNDLED WITH
55
+ 2.3.19
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "game"
4
+ require_relative "user"
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "guess_handler"
4
+ require_relative "homescreen_options"
5
+ require_relative "user"
6
+
7
+ class Game
8
+ include GuessHandler
9
+ include HomescreenOptions
10
+
11
+ attr_reader :secret_code
12
+
13
+ def initialize
14
+ @secret_code = (1..4).to_a.map { |_num| rand(1..6) }
15
+ @hint_array = @secret_code.map(&:clone)
16
+ @num_of_hints = 2
17
+ end
18
+
19
+ def give_a_hint
20
+ if @num_of_hints.zero?
21
+ puts "No more hints!"
22
+ return
23
+ end
24
+
25
+ print @hint_array[0]
26
+ @hint_array.shift
27
+ @num_of_hints -= 1
28
+ end
29
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GuessHandler
4
+ def respond_to_guess(user, input, code)
5
+ result = []
6
+ numbers = input.split("").map(&:to_i)
7
+
8
+ return "win" if numbers == code
9
+
10
+ numbers.each_with_index do |element, index|
11
+ if element == code[index]
12
+ result << "+"
13
+ elsif code.include?(element)
14
+ result << "-"
15
+ end
16
+ end
17
+
18
+ user.attempts.zero ? "loss" : result
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HomescreenOptions
4
+ def registration
5
+ @user = User.new(name, difficulty)
6
+ end
7
+
8
+ def rules; end
9
+
10
+ def stats; end
11
+
12
+ def exit
13
+ "See you later!"
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ class User
4
+ def initialize(name, difficulty)
5
+ @name = name
6
+ @difficulty = difficulty
7
+ end
8
+ end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "game"
4
+
3
5
  module CodebreakerKirill
4
- VERSION = "0.1.0"
6
+ VERSION = "0.2.0"
5
7
  end
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "codebreaker_kirill/version"
4
+ require_relative "codebreaker_kirill/game"
5
+ require_relative "codebreaker_kirill/user"
6
+ require_relative "codebreaker_kirill/homescreen_options"
4
7
 
5
8
  module CodebreakerKirill
6
9
  class Error < StandardError; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_kirill
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Dudchenko
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-12 00:00:00.000000000 Z
11
+ date: 2022-08-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -17,13 +17,20 @@ executables: []
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - ".rspec"
20
21
  - ".rubocop.yml"
21
22
  - CHANGELOG.md
22
23
  - Gemfile
24
+ - Gemfile.lock
23
25
  - LICENSE.txt
24
26
  - README.md
25
27
  - Rakefile
26
28
  - lib/codebreaker_kirill.rb
29
+ - lib/codebreaker_kirill/autoload.rb
30
+ - lib/codebreaker_kirill/game.rb
31
+ - lib/codebreaker_kirill/guess_handler.rb
32
+ - lib/codebreaker_kirill/homescreen_options.rb
33
+ - lib/codebreaker_kirill/user.rb
27
34
  - lib/codebreaker_kirill/version.rb
28
35
  - sig/codebreaker_kirill.rbs
29
36
  homepage: