Class: Board
- Inherits:
-
Object
- Object
- Board
- Defined in:
- lib/board.rb
Instance Method Summary collapse
- #empty? ⇒ Boolean
- #free_spaces? ⇒ Boolean
- #grid_for_display ⇒ Object
-
#initialize(symbols = Array.new(9)) ⇒ Board
constructor
A new instance of Board.
- #make_move(index, symbol) ⇒ Object
- #symbol_at(position) ⇒ Object
- #vacant_indices ⇒ Object
- #winning_combination? ⇒ Boolean
- #winning_symbol ⇒ Object
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
7 8 9 |
# File 'lib/board.rb', line 7 def empty? grid.all?(&:nil?) end |
#free_spaces? ⇒ Boolean
17 18 19 |
# File 'lib/board.rb', line 17 def free_spaces? grid.include?(nil) end |
#grid_for_display ⇒ Object
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_indices ⇒ Object
34 35 36 |
# File 'lib/board.rb', line 34 def vacant_indices grid.each_index.select{|v| grid[v].nil?} end |
#winning_combination? ⇒ Boolean
25 26 27 |
# File 'lib/board.rb', line 25 def winning_combination? not_nil_row(find_winning_row_from(all_rows)) end |
#winning_symbol ⇒ Object
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 |