class Mastermind::Oscar::GameManager
Attributes
difficulty[R]
user[R]
Public Class Methods
new(diff = nil)
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 11 def initialize(diff = nil) @difficulty = diff set_read_stream RecordManager.create_save_files end
Public Instance Methods
alert_invalid_input()
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 23 def alert_invalid_input Printer.output "\tHmmm! You entry seems incorrect. Try again." end
game_on?(arg)
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 82 def game_on? (arg) return false if arg == :quit show_top_10(@difficulty) if arg == :won return true end
get_first_char()
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 68 def get_first_char return (@stream.gets + " ").chomp[0].downcase.strip end
play(allowed = true)
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 59 def play(allowed = true) return :quit unless set_difficulty @recorder= RecordManager.new(user) @user = @recorder.user unless user codemaker = Codemaker.new(difficulty, @recorder) return codemaker.start if allowed end
set_difficulty()
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 72 def set_difficulty return true if difficulty Printer.level_select_msg input = get_first_char return false if input.eql? 'q' @difficulty = Mastermind::Oscar.game_level(input) end
set_read_stream(stream = STDIN)
click to toggle source
useful for testing inputs
# File lib/mastermind/oscar/game_manager.rb, line 19 def set_read_stream (stream = STDIN) @stream = stream end
show_instructions()
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 93 def show_instructions Printer.output(RecordManager.get_instructions) end
show_records()
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 89 def show_records Printer.output_file(RecordManager.get_records) end
show_top_10(level = nil)
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 97 def show_top_10 (level = nil) list = level.nil? ? Mastermind::Oscar.game_level.values : [level] t_obj = TimeManager.new list.each do |lvl| lvl = lvl.to_s rec = RecordManager.get_top_ten(lvl) Printer.output_top_ten(lvl,rec,t_obj) end end
start_game(stub_for_test=false)
click to toggle source
# File lib/mastermind/oscar/game_manager.rb, line 27 def start_game(stub_for_test=false) Printer.welcome_msg status = true while status Printer.format_input_query input = get_first_char if input == 'q' break elsif input == 't' show_top_10 status = !stub_for_test elsif input == 'i' show_instructions status = !stub_for_test elsif input == "r" show_records status = !stub_for_test elsif input == 'p' # play game status = game_on? play @difficulty = nil else alert_invalid_input status = !stub_for_test end end @user ||= '' Printer.quit_msg(user) end