lkr-codebreaker 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 +4 -4
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/codebreaker/game.rb +0 -10
- data/lib/codebreaker/version.rb +1 -1
- data/lkr-codebreaker-0.1.0.gem +0 -0
- metadata +3 -5
- data/lib/codebreaker/user_interface.rb +0 -110
- data/lib/codebreaker/user_interface_helper.rb +0 -41
- data/lib/main.rb +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea7a3562e0b7c78bc04ed84af1d37464d49bc6505aeba3a4b09186a0e82953c5
|
4
|
+
data.tar.gz: 5689b331868ec9b646c2242613c3eb69f9c1fc2e63c42ba0cb06a5beed9e5815
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 577ccab19ff047286ba393a1213f8d78d2486a1eee398bcdb2fcd2597163d74475495106e8e19443a6efddd5abc917ac741489c5ae009d2061cb28497b07cffe
|
7
|
+
data.tar.gz: 229429120368afe42aea5fa2b3fcf397cd75157f246c3ec7244b366a2134111aa4ac5d5b435e184ece08e633fa68d0ec430569ecce77afb4d6d01cf09cf6586c
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
data/lib/codebreaker/game.rb
CHANGED
@@ -25,16 +25,6 @@ module Codebreaker
|
|
25
25
|
exact_matches + number_matches
|
26
26
|
end
|
27
27
|
|
28
|
-
def save_result(username:, game_status:, file_name: 'player_results.txt')
|
29
|
-
File.open(file_name, 'a') do |file|
|
30
|
-
file.puts("Name: #{username}")
|
31
|
-
file.puts("Game status: #{game_status}")
|
32
|
-
file.puts("Attempts used: #{@used_attempts}")
|
33
|
-
file.puts("Hints used: #{@used_hints}")
|
34
|
-
file.puts('*' * 40)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
28
|
private
|
39
29
|
|
40
30
|
def generate
|
data/lib/codebreaker/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lkr-codebreaker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Kozhemyako
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -68,10 +68,8 @@ files:
|
|
68
68
|
- codebreaker.gemspec
|
69
69
|
- lib/codebreaker.rb
|
70
70
|
- lib/codebreaker/game.rb
|
71
|
-
- lib/codebreaker/user_interface.rb
|
72
|
-
- lib/codebreaker/user_interface_helper.rb
|
73
71
|
- lib/codebreaker/version.rb
|
74
|
-
-
|
72
|
+
- lkr-codebreaker-0.1.0.gem
|
75
73
|
homepage:
|
76
74
|
licenses:
|
77
75
|
- MIT
|
@@ -1,110 +0,0 @@
|
|
1
|
-
require_relative 'game'
|
2
|
-
require_relative 'user_interface_helper'
|
3
|
-
|
4
|
-
module Codebreaker
|
5
|
-
class UserInterface
|
6
|
-
include UiHelper
|
7
|
-
|
8
|
-
def main_menu
|
9
|
-
greeting_message
|
10
|
-
gets.chomp == 'exit' ? bye : play
|
11
|
-
end
|
12
|
-
|
13
|
-
def play
|
14
|
-
create_new_game
|
15
|
-
start_game_message
|
16
|
-
playing
|
17
|
-
lost unless attempts?
|
18
|
-
score
|
19
|
-
after_game_menu
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def create_new_game
|
25
|
-
@game = Game.new
|
26
|
-
end
|
27
|
-
|
28
|
-
def playing
|
29
|
-
while attempts?
|
30
|
-
used_attempts_message
|
31
|
-
input = gets.chomp
|
32
|
-
if call_hint?(input)
|
33
|
-
show_hint
|
34
|
-
else
|
35
|
-
result = @game.make_guess(input)
|
36
|
-
result ? puts(result) : incorrect_format_message
|
37
|
-
end
|
38
|
-
if won?(result)
|
39
|
-
won
|
40
|
-
break
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def attempts?
|
46
|
-
@game.used_attempts < Game::ATTEMPTS
|
47
|
-
end
|
48
|
-
|
49
|
-
def hints?
|
50
|
-
@game.used_hints < Game::HINTS
|
51
|
-
end
|
52
|
-
|
53
|
-
def call_hint?(input)
|
54
|
-
input.match(/^h$/)
|
55
|
-
end
|
56
|
-
|
57
|
-
def show_hint
|
58
|
-
hints? ? puts(@game.hint) : no_hints_message
|
59
|
-
end
|
60
|
-
|
61
|
-
def show_result(result)
|
62
|
-
puts result
|
63
|
-
end
|
64
|
-
|
65
|
-
def won?(result)
|
66
|
-
result == '++++'
|
67
|
-
end
|
68
|
-
|
69
|
-
def won
|
70
|
-
@game_status = 'won'
|
71
|
-
won_message
|
72
|
-
end
|
73
|
-
|
74
|
-
def lost
|
75
|
-
@game_status = 'lost'
|
76
|
-
lost_message
|
77
|
-
end
|
78
|
-
|
79
|
-
def score
|
80
|
-
puts "Attempts used: #{@game.used_attempts}"
|
81
|
-
puts "Hints used: #{@game.used_hints}"
|
82
|
-
end
|
83
|
-
|
84
|
-
def after_game_menu
|
85
|
-
after_game_message
|
86
|
-
choise = gets.chomp[/^[yns]/]
|
87
|
-
|
88
|
-
if choise == 'y' then play end
|
89
|
-
if choise == 'n' then bye end
|
90
|
-
if choise == 's' then save end
|
91
|
-
main_menu
|
92
|
-
end
|
93
|
-
|
94
|
-
def save
|
95
|
-
name = ask_name
|
96
|
-
@game.save_result(username: name, game_status: @game_status)
|
97
|
-
saved_result_message
|
98
|
-
end
|
99
|
-
|
100
|
-
def ask_name
|
101
|
-
puts 'Please, type your name:'
|
102
|
-
gets.chomp
|
103
|
-
end
|
104
|
-
|
105
|
-
def bye
|
106
|
-
puts 'Bye!'
|
107
|
-
exit
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
@@ -1,41 +0,0 @@
|
|
1
|
-
require_relative 'game'
|
2
|
-
|
3
|
-
module UiHelper
|
4
|
-
def greeting_message
|
5
|
-
puts '***Welcome to the Codebreaker game!***'
|
6
|
-
puts "Enter any characters to start playing or 'exit' for exit"
|
7
|
-
end
|
8
|
-
|
9
|
-
def start_game_message
|
10
|
-
puts "Please, enter your code to make guess or 'h' to get a hint"
|
11
|
-
puts "You have #{Codebreaker::Game::ATTEMPTS} attempts and #{Codebreaker::Game::HINTS} hints"
|
12
|
-
end
|
13
|
-
|
14
|
-
def used_attempts_message
|
15
|
-
puts "You used #{@game.used_attempts} attempts." if @game.used_attempts > 0
|
16
|
-
end
|
17
|
-
|
18
|
-
def no_hints_message
|
19
|
-
puts 'You used all of hints!'
|
20
|
-
end
|
21
|
-
|
22
|
-
def incorrect_format_message
|
23
|
-
puts 'Incoorect format! Please enter 4 digits from 1 to 6'
|
24
|
-
end
|
25
|
-
|
26
|
-
def won_message
|
27
|
-
puts '***Congratulations, you won!***'
|
28
|
-
end
|
29
|
-
|
30
|
-
def lost_message
|
31
|
-
puts 'You used all of attempts. You lost :('
|
32
|
-
end
|
33
|
-
|
34
|
-
def after_game_message
|
35
|
-
puts 'Do you want to play again(y/n) or save score(s)?'
|
36
|
-
end
|
37
|
-
|
38
|
-
def saved_result_message
|
39
|
-
puts 'Your result has been saved'
|
40
|
-
end
|
41
|
-
end
|
data/lib/main.rb
DELETED