edlvj_codebreaker 0.2.2 → 0.2.5

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
  SHA1:
3
- metadata.gz: 6d8c2ca12f983eba377a96c914b1fbbac490236c
4
- data.tar.gz: 33e761dda68202bbba52d3a47d07cdbaad3f3b2a
3
+ metadata.gz: 27ed80713fe4ee34f73b9df58726ec267d8d6fbe
4
+ data.tar.gz: b12ddbdafb642f19fae866dc028b4e762d07112c
5
5
  SHA512:
6
- metadata.gz: f550228ecf354389d051e0218885fb791575e69d20659f4136c41d97548e3501b48ac0057e361b9ae29de8692fabbeb72349dab9948f3b284552f48d3f1457d7
7
- data.tar.gz: a4f33de036472721bb10c454de18904053c4bb85396397268e4ac548ebdf7b5baa0e4ef9616eeb970fd916283b0fba45b88133cfee1c6c9b4b7f7f67c724ddf9
6
+ metadata.gz: 7d2768e53153ef7fd105314c8655d7fd6c9bbd243c32a5ecba89572e22a90cebab8b6d8ce2e61f6eb2ceef9b711f28f31fcc233f3a6598f40fddc1f22df6e204
7
+ data.tar.gz: 8028aa69edc8dfbffc68ede146d932c54380f8162c770272d2dc6fc94263d9cc2f4f96d06eca21ccd223cabdaf80f95400feedf86eba9889db2c2db8a3853c5a
data/lib/console.rb CHANGED
@@ -1,4 +1,4 @@
1
- require "./lib/game.rb"
1
+ require "./lib/edlvj_codebreaker.rb"
2
2
 
3
3
  module Codebreaker
4
4
  class Console
@@ -1,6 +1,58 @@
1
- require_relative "game"
2
- require_relative "console"
3
1
 
4
2
  module Codebreaker
3
+ class Game
4
+
5
+ HINT = 1
6
+ ATTEMPS = 10
7
+
8
+ PROPER = '+'
9
+ WRONG_POSITION = '-'
5
10
 
11
+ def initialize
12
+ @secret_code = Array.new(4) { rand(1..6) }.join
13
+ @hint = HINT
14
+ @attempts = ATTEMPS
15
+ @win_status = false
16
+ end
17
+
18
+ def match_guess(code)
19
+ return "Your code is not valid" unless code.match(/(^([1-6]{4})$)/)
20
+
21
+ @win_status = true if @secret_code == code
22
+ @attempts -= 1
23
+ secret = @secret_code.chars.map(&:to_i)
24
+
25
+ res = []
26
+ code.chars.map(&:to_i).each_with_index do |number, index|
27
+ if number == secret[index]
28
+ secret[index] = nil
29
+ res << PROPER
30
+ elsif secret.include? number
31
+ secret[secret.find_index(number)] = nil
32
+ res << WRONG_POSITION
33
+ end
34
+ end
35
+
36
+ res.join
37
+ end
38
+
39
+ def loose?
40
+ @attempts == 0
41
+ end
42
+
43
+ def win?
44
+ @win_status
45
+ end
46
+
47
+ def get_hint
48
+ @hint -= 1
49
+ @hint >= 0 ? @secret_code[rand(4)] : "Not Available"
50
+ end
51
+
52
+ def save_stat( username )
53
+ File.open('./stat.yml','a+') do |f|
54
+ f.write([user: username, attempts: @attempts, date: Time.now].to_yaml)
55
+ end
56
+ end
57
+ end
6
58
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: edlvj_codebreaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Goryach
@@ -61,7 +61,6 @@ extra_rdoc_files: []
61
61
  files:
62
62
  - lib/console.rb
63
63
  - lib/edlvj_codebreaker.rb
64
- - lib/game.rb
65
64
  homepage: https://github.com/edlvj/ruby_codebreaker
66
65
  licenses: []
67
66
  metadata:
data/lib/game.rb DELETED
@@ -1,59 +0,0 @@
1
- require 'yaml'
2
-
3
- module Codebreaker
4
- class Game
5
-
6
- HINT = 1
7
- ATTEMPS = 10
8
-
9
- PROPER = '+'
10
- WRONG_POSITION = '-'
11
-
12
- def initialize
13
- @secret_code = Array.new(4) { rand(1..6) }.join
14
- @hint = HINT
15
- @attempts = ATTEMPS
16
- @win_status = false
17
- end
18
-
19
- def match_guess(code)
20
- return "Your code is not valid" unless code.match(/(^([1-6]{4})$)/)
21
-
22
- @win_status = true if @secret_code == code
23
- @attempts -= 1
24
- secret = @secret_code.chars.map(&:to_i)
25
-
26
- res = []
27
- code.chars.map(&:to_i).each_with_index do |number, index|
28
- if number == secret[index]
29
- secret[index] = nil
30
- res << PROPER
31
- elsif secret.include? number
32
- secret[secret.find_index(number)] = nil
33
- res << WRONG_POSITION
34
- end
35
- end
36
-
37
- res.join
38
- end
39
-
40
- def loose?
41
- @attempts == 0
42
- end
43
-
44
- def win?
45
- @win_status
46
- end
47
-
48
- def get_hint
49
- @hint -= 1
50
- @hint >= 0 ? @secret_code[rand(4)] : "Not Available"
51
- end
52
-
53
- def save_stat( username )
54
- File.open('./stat.yml','a+') do |f|
55
- f.write([user: username, attempts: @attempts, date: Time.now].to_yaml)
56
- end
57
- end
58
- end
59
- end