lkr-codebreaker 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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