class Codebreaker::Console
Constants
- ACCEPT_SAVING_RESULT
- COMMANDS
Public Instance Methods
greeting()
click to toggle source
# File lib/app/entities/console.rb, line 13 def greeting Representer.greeting_msg end
Private Instance Methods
check_round_result(guess)
click to toggle source
# File lib/app/entities/console.rb, line 61 def check_round_result(guess) return win if @game.win?(guess) return lose if @game.lose?(guess) round_result = @game.start_round(guess) Representer.round_info_text(round_result, @game.attempts, @game.hints) end
choose_difficulty()
click to toggle source
# File lib/app/entities/console.rb, line 43 def choose_difficulty Representer.select_difficulty_msg loop do finded_level = Difficulty.find(user_input) return finded_level if finded_level Representer.error_msg(I18n.t('invalid.include_error')) end end
exit_console()
click to toggle source
# File lib/app/entities/console.rb, line 106 def exit_console Representer.goodbye exit end
lose()
click to toggle source
# File lib/app/entities/console.rb, line 73 def lose Representer.lose_msg start_new_game end
make_guess()
click to toggle source
# File lib/app/entities/console.rb, line 53 def make_guess loop do Representer.make_guess_msg guess = make_valid_input_for_class(Guess) guess.hint? ? show_hint : check_round_result(guess.as_array_of_numbers) end end
make_valid_input_for_class(klass)
click to toggle source
# File lib/app/entities/console.rb, line 92 def make_valid_input_for_class(klass) loop do input = klass.new(user_input) return input if input.valid? Representer.error_msg(input.errors.join(', ')) end end
registration()
click to toggle source
# File lib/app/entities/console.rb, line 35 def registration Representer.what_name_msg @user = make_valid_input_for_class(User) @difficulty = choose_difficulty @game = Game.new(@difficulty, @user) make_guess end
save_result()
click to toggle source
# File lib/app/entities/console.rb, line 88 def save_result save_to_db(@game.to_h) end
show_hint()
click to toggle source
# File lib/app/entities/console.rb, line 69 def show_hint @game.hints.positive? ? Representer.showed_hint_msg(@game.hint) : Representer.zero_hints_msg end
start_new_game()
click to toggle source
# File lib/app/entities/console.rb, line 84 def start_new_game Console.new.main_menu end
statistics()
click to toggle source
# File lib/app/entities/console.rb, line 30 def statistics loaded_db = load_db loaded_db.empty? ? Representer.empty_db_msg : Representer.show_db(loaded_db) end
user_input()
click to toggle source
# File lib/app/entities/console.rb, line 101 def user_input input = gets.chomp.downcase input == COMMANDS[:exit] ? exit_console : input end
win()
click to toggle source
# File lib/app/entities/console.rb, line 78 def win Representer.win_msg save_result if user_input == ACCEPT_SAVING_RESULT start_new_game end