dk_codebreaker 0.1.7 → 0.1.8

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
  SHA1:
3
- metadata.gz: e442ac10480363c5c66ed9118058637adf0ba332
4
- data.tar.gz: 46fb24ee02cb16af4160ae88c3d04e2f290e900e
3
+ metadata.gz: bc2afcb93e6c08f37cfcb2447e2e86d3a7846eef
4
+ data.tar.gz: f940380c07868986cf0a99ddcbff59d2bea8ea24
5
5
  SHA512:
6
- metadata.gz: 4cc42536683f1d4dc017527dcc057bdf5f440d1f842bee782fe9849c299c1e41e27a53bbe19fa8821c09dc211c7ca5d314fe9a2c7c97886a12df9ac42ee43be1
7
- data.tar.gz: f82a43c14856f5a2cc8b667ee031185ed4a5993c51e5a249c4d38baa2f87c3c6ea0446b149ac283e6d238313d621d7f7fbdef1010e4a4b1236ccaa9f06515c38
6
+ metadata.gz: 924b0fe8349bee5526e8842ad76dbc61394da498957ebd0bc870086429d90ffa9d9d32688c5a3c136ea164e894f0f33d0b55a398c1ef389bfa2652be56e22b90
7
+ data.tar.gz: d3460be48b204437162ddd7dc076e71454d9f136aacc2cd261891df8db2b571cd2d92939ed3d0df47af15a9fe99630f440fa2318a15acbe346f647d1525e8ae1
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ sudo: required
3
+ rvm:
4
+ - 2.2.0
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # DkCodebreaker
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/dk_codebreaker.svg)](https://badge.fury.io/rb/dk_codebreaker)
4
+ [![Build Status](https://travis-ci.org/DenKey/dk_codebreaker.svg?branch=master)](https://travis-ci.org/DenKey/dk_codebreaker)
5
+
4
6
 
5
7
  Codebreaker is a logic game in which a code-breaker tries to break a secret code created by a code-maker.The code-maker, which will be played by the application we’re going to write, creates a secret code of four numbers between 1 and 6.
6
8
 
@@ -7,13 +7,13 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "dk_codebreaker"
8
8
  spec.version = DkCodebreaker::VERSION
9
9
  spec.authors = ["Den Key"]
10
- spec.email = ["denis.kriukov@aol.com"]
10
+ spec.email = ["denis.kryukov@aol.com"]
11
11
 
12
- spec.summary = %q{dk_codebreaker is a logic game.}
13
- spec.description = %q{Dk_Codebreaker is a logic game in which a code-breaker tries to break a secret code created by a code-maker.
12
+ spec.summary = %q{Codebreaker is a logic game.}
13
+ spec.description = %q{Codebreaker is a logic game in which a code-breaker tries to break a secret code created by a code-maker.
14
14
  The code-maker, which will be played by the application we’re going to write,
15
15
  creates a secret code of four numbers between 1 and 6.}
16
- spec.homepage = "https://github.com/KrDenis/dk_codebreaker"
16
+ spec.homepage = "https://github.com/DenKey/dk_codebreaker"
17
17
  spec.license = "MIT"
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
@@ -21,8 +21,8 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.10"
24
+ spec.add_development_dependency "bundler", "~> 1.8.4"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec"
27
- spec.add_development_dependency "rspec-collection_matchers"
26
+ spec.add_development_dependency "rspec", "~> 3.4"
27
+ spec.add_development_dependency "rspec-collection_matchers", "~> 1.1", ">= 1.1.2"
28
28
  end
@@ -1,90 +1,6 @@
1
1
  require "dk_codebreaker/version"
2
+ require "dk_codebreaker/game"
2
3
 
3
4
  module DkCodebreaker
4
- class Game
5
- attr_reader :hint_status
6
- attr_reader :attempt
7
-
8
- def initialize player = nil, attempts = 10
9
- @submit_code = nil
10
- @secret_code = ""
11
- @player = player
12
- @attempt = 1
13
- @hint_status = false
14
- @limit = attempts
15
- end
16
-
17
- def start
18
- 1.upto(4) { @secret_code << "#{rand(1..6)}" }
19
- end
20
-
21
- def restart
22
- @attempt = 1
23
- @submit_code = nil
24
- @secret_code = ""
25
- @hint_status = false
26
- start
27
- end
28
-
29
- def guess submit_code
30
- if @attempt <= @limit
31
- if submit_code.is_a? String
32
- return :less_then_four if submit_code.size < 4
33
- submit_code = submit_code[0,4] if submit_code.size > 4
34
- submit_code.each_char { |x| return :guess_has_symbol if numeric?(x) != 0 }
35
- @submit_code = submit_code
36
- @attempt += 1
37
- numbers_eq(position_eq)
38
- else
39
- :code_not_string
40
- end
41
- else
42
- :you_lose
43
- end
44
- end
45
-
46
- def hint
47
- unless @hint
48
- send = "****"
49
- num = rand(0..3)
50
- send[num] = @secret_code[num]
51
- @hint_status = true
52
- send
53
- end
54
- end
55
-
56
- def user_data
57
- [@player, @attempt, @limit, Time.new.strftime("%m/%d/%Y/%H/%M")]
58
- end
59
-
60
- private
61
-
62
- def position_eq
63
- submits = @submit_code.split("")
64
- secrets = @secret_code.split("")
65
- answer = ""
66
-
67
- submits.each_with_index do |submit,index|
68
- if submit == secrets[index]
69
- answer << "+"
70
- submits[index] = nil
71
- secrets[index] = nil
72
- end
73
- end
74
-
75
- [answer, submits, secrets]
76
- end
77
-
78
- def numbers_eq array
79
- array[1].each do |submit| #submits
80
- next if submit == nil
81
- array[0] << "-" if array[2].include?(submit)
82
- end
83
- array[0]
84
- end
85
-
86
- def numeric?(lookAhead)
87
- lookAhead =~ /[[:digit:]]/
88
- end
89
- end
5
+ # Nothing yet
90
6
  end
@@ -0,0 +1,88 @@
1
+ module DkCodebreaker
2
+ class Game
3
+ attr_reader :hint_status
4
+ attr_reader :attempt
5
+
6
+ def initialize player = nil, attempts = 10
7
+ @submit_code = nil
8
+ @secret_code = ""
9
+ @player = player
10
+ @attempt = 1
11
+ @hint_status = false
12
+ @limit = attempts
13
+ end
14
+
15
+ def start
16
+ 1.upto(4) { @secret_code << "#{rand(1..6)}" }
17
+ end
18
+
19
+ def restart
20
+ @attempt = 1
21
+ @submit_code = nil
22
+ @secret_code = ""
23
+ @hint_status = false
24
+ start
25
+ end
26
+
27
+ def guess submit_code
28
+ if @attempt <= @limit
29
+ if submit_code.is_a? String
30
+ return :less_then_four if submit_code.size < 4
31
+ submit_code = submit_code[0,4] if submit_code.size > 4
32
+ submit_code.each_char { |x| return :guess_has_symbol if numeric?(x) != 0 }
33
+ @submit_code = submit_code
34
+ @attempt += 1
35
+ numbers_eq(position_eq)
36
+ else
37
+ :code_not_string
38
+ end
39
+ else
40
+ :you_lose
41
+ end
42
+ end
43
+
44
+ def hint
45
+ unless @hint
46
+ send = "****"
47
+ num = rand(0..3)
48
+ send[num] = @secret_code[num]
49
+ @hint_status = true
50
+ send
51
+ end
52
+ end
53
+
54
+ def user_data
55
+ [@player, @attempt, @limit, Time.new.strftime("%m/%d/%Y/%H/%M")]
56
+ end
57
+
58
+ private
59
+
60
+ def position_eq
61
+ submits = @submit_code.split("")
62
+ secrets = @secret_code.split("")
63
+ answer = ""
64
+
65
+ submits.each_with_index do |submit,index|
66
+ if submit == secrets[index]
67
+ answer << "+"
68
+ submits[index] = nil
69
+ secrets[index] = nil
70
+ end
71
+ end
72
+
73
+ [answer, submits, secrets]
74
+ end
75
+
76
+ def numbers_eq array
77
+ array[1].each do |submit| #submits
78
+ next if submit == nil
79
+ array[0] << "-" if array[2].include?(submit)
80
+ end
81
+ array[0]
82
+ end
83
+
84
+ def numeric?(lookAhead)
85
+ lookAhead =~ /[[:digit:]]/
86
+ end
87
+ end
88
+ end
@@ -1,3 +1,3 @@
1
1
  module DkCodebreaker
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dk_codebreaker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Den Key
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-03-19 00:00:00.000000000 Z
11
+ date: 2016-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.10'
19
+ version: 1.8.4
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.10'
26
+ version: 1.8.4
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,42 +42,49 @@ dependencies:
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '3.4'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '3.4'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec-collection_matchers
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.1'
59
62
  - - ">="
60
63
  - !ruby/object:Gem::Version
61
- version: '0'
64
+ version: 1.1.2
62
65
  type: :development
63
66
  prerelease: false
64
67
  version_requirements: !ruby/object:Gem::Requirement
65
68
  requirements:
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '1.1'
66
72
  - - ">="
67
73
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: "Dk_Codebreaker is a logic game in which a code-breaker tries to break
70
- a secret code created by a code-maker.\n The code-maker,
74
+ version: 1.1.2
75
+ description: "Codebreaker is a logic game in which a code-breaker tries to break a
76
+ secret code created by a code-maker.\n The code-maker,
71
77
  which will be played by the application we’re going to write, \n creates
72
78
  a secret code of four numbers between 1 and 6."
73
79
  email:
74
- - denis.kriukov@aol.com
80
+ - denis.kryukov@aol.com
75
81
  executables: []
76
82
  extensions: []
77
83
  extra_rdoc_files: []
78
84
  files:
79
85
  - ".gitignore"
80
86
  - ".rspec"
87
+ - ".travis.yml"
81
88
  - Gemfile
82
89
  - LICENSE.txt
83
90
  - README.md
@@ -86,8 +93,9 @@ files:
86
93
  - bin/setup
87
94
  - dk_codebreaker.gemspec
88
95
  - lib/dk_codebreaker.rb
96
+ - lib/dk_codebreaker/game.rb
89
97
  - lib/dk_codebreaker/version.rb
90
- homepage: https://github.com/KrDenis/dk_codebreaker
98
+ homepage: https://github.com/DenKey/dk_codebreaker
91
99
  licenses:
92
100
  - MIT
93
101
  metadata: {}
@@ -110,5 +118,5 @@ rubyforge_project:
110
118
  rubygems_version: 2.4.8
111
119
  signing_key:
112
120
  specification_version: 4
113
- summary: dk_codebreaker is a logic game.
121
+ summary: Codebreaker is a logic game.
114
122
  test_files: []