class TicTacToe::Display
Constants
- MESSAGES_FILE
Attributes
output[RW]
Public Instance Methods
display(msg_name, *args)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 19 def display(msg_name, *args) STDOUT.puts YAML.load_file(MESSAGES_FILE)[msg_name] STDIN.gets if instructions?(msg_name) end
display_board(args)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 12 def display_board(args) board = args[:board] Console.instance.clear_console STDOUT.puts "\t A B C" STDOUT.puts board.board.map.with_index{ |row, index| row_message(row, index) }.join end
display_msg_ask_for_player_name(args)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 30 def display_msg_ask_for_player_name(args) player_number = args[:player_number] STDOUT.puts "Enter player #{player_number + 1} name" end
display_msg_computer_thinking()
click to toggle source
# File lib/tic_tac_toe/display.rb, line 40 def display_msg_computer_thinking STDOUT.print "Thinking." 2.times do Kernel.sleep(1) STDOUT.print "." end end
display_msg_win(args)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 35 def display_msg_win(args) player_name = args[:player_name] STDOUT.puts "#{player_name} won" end
display_turn_status(args)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 24 def display_turn_status(args) player_name = args[:player_name] display_board(args) STDOUT.puts "\n\n #{player_name} turn" end
respond_to?(method, include_private = false)
click to toggle source
Calls superclass method
# File lib/tic_tac_toe/display.rb, line 48 def respond_to?(method, include_private = false) super || respond_to_display?(method) end
Private Instance Methods
instructions?(msg_name)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 53 def instructions?(msg_name) msg_name.end_with?('_instructions') end
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/tic_tac_toe/display.rb, line 79 def method_missing(name, *args) name = name.to_s super unless name =~ /^display_/ name.gsub!(/^display_/,'') display(name, *args) end
msg_in_yml_file?(msg)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 64 def msg_in_yml_file?(msg) YAML.load_file(MESSAGES_FILE).has_key?(msg) end
respond_to_display?(method)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 57 def respond_to_display?(method) name = method.to_s return false unless name =~ /^display_/ name.gsub!(/^display_/,'') msg_in_yml_file?(name) end
row_message(row, row_index)
click to toggle source
# File lib/tic_tac_toe/display.rb, line 68 def row_message(row, row_index) message = "\t#{row_index + 1}" row.each_with_index do |cell, index| message << " #{cell.content} " separator = (index == row.size - 1) ? "\n" : "|" message << separator end message << "\t -----------------\n" unless row_index == 2 message end