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