Class: Codebreaker::ConsoleInterface
- Inherits:
-
Object
- Object
- Codebreaker::ConsoleInterface
- Defined in:
- lib/codebreaker/console_interface.rb
Constant Summary collapse
- MAX_SYM_RANGE =
16- Welcome_text =
'Welcome to my codebreaker game!'- Game_start_text =
"\nThe game starts right now!"- Diff_select_text =
'Select difficulty'- Same_diff_tex =
'[Enter] to play same difficulty'- IndexErorr_text =
'Wrong number of arguments'- Guesses_took_0 =
'It took you'- Guesses_took_1 =
'guesses'- Ask_for_guess_text =
"Your guess: "- Score_is_text =
'Your score is:'- The_answer_text =
'The answer was'- Win_text =
'You won!'- Lose_text =
'You lost, noob!'- Replay_text =
'Wanna replay? (y/n)'- Bye_text =
'Bye!'
Instance Method Summary collapse
- #ask_for_replay ⇒ Object
- #difficulty_info ⇒ Object
- #goodbye ⇒ Object
- #guessing ⇒ Object
- #play ⇒ Object
- #results ⇒ Object
- #select_difficulty ⇒ Object
- #start ⇒ Object
- #welcome ⇒ Object
Instance Method Details
#ask_for_replay ⇒ Object
97 98 99 100 |
# File 'lib/codebreaker/console_interface.rb', line 97 def ask_for_replay puts Replay_text answer = gets.chomp end |
#difficulty_info ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/codebreaker/console_interface.rb', line 58 def difficulty_info puts " Symbol range: #{@session.symbols_range} Symbols: #{@session.symbols_count} Attempts: #{@session.attempts} Hints: #{@session.hints_left}" end |
#goodbye ⇒ Object
102 103 104 |
# File 'lib/codebreaker/console_interface.rb', line 102 def goodbye puts Bye_text end |
#guessing ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/codebreaker/console_interface.rb', line 66 def guessing loop do print Ask_for_guess_text guess = gets.chomp if guess == 'hint' p @session.hint.map {|x| x.is_a?(Fixnum) ? x.to_s(MAX_SYM_RANGE) : '*'} else begin code = guess.split('').map {|x| x.to_i(MAX_SYM_RANGE) } response = @session.guess code puts "#{'+' * response[0] + '-' * response[1]}" rescue IndexError puts IndexErorr_text next end end break unless @session.state == :playing end end |
#play ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/codebreaker/console_interface.rb', line 34 def play loop do select_difficulty difficulty_info guessing @played = true results ask_for_replay == 'y' ? next : break end end |
#results ⇒ Object
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/codebreaker/console_interface.rb', line 86 def results if @session.state == :won puts Win_text puts "#{Guesses_took_0} #{@session.attempts_taken} #{Guesses_took_1}" puts "#{Score_is_text} #{@session.score}" elsif @session.state == :lost puts Lose_text puts "#{The_answer_text} #{@session.secret}" end end |
#select_difficulty ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/codebreaker/console_interface.rb', line 45 def select_difficulty puts "#{Diff_select_text} #{Game::GAME_SETTINGS.keys.inspect.delete(':')}" puts Same_diff_tex if @played diff = gets puts Game_start_text if @played && diff == "\n" @session.restart else diff.chomp! @session.start diff.to_sym end end |
#start ⇒ Object
23 24 25 26 27 |
# File 'lib/codebreaker/console_interface.rb', line 23 def start welcome play goodbye end |
#welcome ⇒ Object
29 30 31 32 |
# File 'lib/codebreaker/console_interface.rb', line 29 def welcome puts Welcome_text @session = Game.new end |