Class: Board

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

Instance Method Summary collapse

Constructor Details

#initialize(symbols = Array.new(9)) ⇒ Board

Returns a new instance of Board.



3
4
5
# File 'lib/board.rb', line 3

def initialize(symbols = Array.new(9))
  @grid = symbols
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/board.rb', line 7

def empty?
  grid.all?(&:nil?)
end

#free_spaces?Boolean

Returns:

  • (Boolean)


17
18
19
# File 'lib/board.rb', line 17

def free_spaces?
  grid.include?(nil)
end

#grid_for_displayObject



38
39
40
# File 'lib/board.rb', line 38

def grid_for_display
  rows
end

#make_move(index, symbol) ⇒ Object



11
12
13
14
15
# File 'lib/board.rb', line 11

def make_move(index, symbol)
  copy_of_grid = grid.dup
  copy_of_grid[index] = symbol
  Board.new(copy_of_grid)
end

#symbol_at(position) ⇒ Object



21
22
23
# File 'lib/board.rb', line 21

def symbol_at(position)
  grid.at(position)
end

#vacant_indicesObject



34
35
36
# File 'lib/board.rb', line 34

def vacant_indices
  grid.each_index.select{|v| grid[v].nil?}
end

#winning_combination?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/board.rb', line 25

def winning_combination?
  not_nil_row(find_winning_row_from(all_rows))
end

#winning_symbolObject



29
30
31
32
# File 'lib/board.rb', line 29

def winning_symbol
  @winning_row = find_winning_row_from(all_rows)
  @winning_row.nil? ? nil : @winning_row.first
end