Class: BoardRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/command_four/board_renderer.rb

Defined Under Namespace

Classes: TextCell

Instance Method Summary collapse

Constructor Details

#initialize(board) ⇒ BoardRenderer

Returns a new instance of BoardRenderer.



4
5
6
# File 'lib/command_four/board_renderer.rb', line 4

def initialize(board)
  @board = board
end

Instance Method Details

#render_for_printingObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/command_four/board_renderer.rb', line 8

def render_for_printing
  row_divider = ("+" + ("----+" * @board.width)).blue 
  col_divider = "|".blue
  result = "" << (row_divider + "\n")
  string_symbol_board = @board.to_a.map do |row|
    row.map {|cell_color| TextCell.new(" ", "#{color_to_s(cell_color)}", "  ")}
  end
  if @board.game_over?
    add_winning_cell_highlights(string_symbol_board)
  end
  string_board = string_symbol_board.transpose.reverse.map do |row|
    col_divider + row.map(&:to_s).join(col_divider) + col_divider
  end
  result << string_board.join(+ "\n" + row_divider + "\n") << "\n" <<row_divider
end