Class: Board
- Inherits:
-
Object
- Object
- Board
- Defined in:
- lib/ang_ttt_gem/board.rb
Instance Method Summary collapse
- #available_spaces ⇒ Object
- #cell_occupied?(cell_number) ⇒ Boolean
- #clear_all_spaces ⇒ Object
- #columns ⇒ Object
- #current_state ⇒ Object
- #diagonal_back ⇒ Object
- #diagonal_forward ⇒ Object
- #get(cell_number) ⇒ Object
-
#initialize ⇒ Board
constructor
A new instance of Board.
- #possible_winning_combinations ⇒ Object
- #rows ⇒ Object
- #set(cell_number, mark) ⇒ Object
- #undo_move(cell_number) ⇒ Object
Constructor Details
#initialize ⇒ Board
Returns a new instance of Board.
3 4 5 |
# File 'lib/ang_ttt_gem/board.rb', line 3 def initialize @cells = Array.new(9) {" "} end |
Instance Method Details
#available_spaces ⇒ Object
19 20 21 22 23 |
# File 'lib/ang_ttt_gem/board.rb', line 19 def available_spaces available_spaces = @cells.each_with_index.select { |i, idx| i =~ / / } available_spaces = available_spaces.map{|i| i[1] } available_spaces end |
#cell_occupied?(cell_number) ⇒ Boolean
25 26 27 |
# File 'lib/ang_ttt_gem/board.rb', line 25 def cell_occupied?(cell_number) get(cell_number) != " " end |
#clear_all_spaces ⇒ Object
33 34 35 36 37 38 |
# File 'lib/ang_ttt_gem/board.rb', line 33 def clear_all_spaces mark = " " @cells.each_with_index do |cell, index| set(index, mark) end end |
#columns ⇒ Object
46 47 48 |
# File 'lib/ang_ttt_gem/board.rb', line 46 def columns rows.transpose end |
#current_state ⇒ Object
29 30 31 |
# File 'lib/ang_ttt_gem/board.rb', line 29 def current_state current_state = @cells.map {|c| c} end |
#diagonal_back ⇒ Object
56 57 58 59 60 |
# File 'lib/ang_ttt_gem/board.rb', line 56 def diagonal_back [ @cells[0], @cells[4], @cells[8] ] end |
#diagonal_forward ⇒ Object
50 51 52 53 54 |
# File 'lib/ang_ttt_gem/board.rb', line 50 def diagonal_forward [ @cells[2], @cells[4], @cells[6] ] end |
#get(cell_number) ⇒ Object
7 8 9 |
# File 'lib/ang_ttt_gem/board.rb', line 7 def get(cell_number) @cells[cell_number] end |
#possible_winning_combinations ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/ang_ttt_gem/board.rb', line 62 def possible_winning_combinations possible_winning_combinations = [] rows.collect{|row| possible_winning_combinations << row } columns.collect{|column| possible_winning_combinations << column } possible_winning_combinations << diagonal_forward possible_winning_combinations << diagonal_back end |
#rows ⇒ Object
40 41 42 43 44 |
# File 'lib/ang_ttt_gem/board.rb', line 40 def rows [ @cells[0..2], @cells[3..5], @cells[6..8] ] end |
#set(cell_number, mark) ⇒ Object
11 12 13 |
# File 'lib/ang_ttt_gem/board.rb', line 11 def set(cell_number, mark) @cells[cell_number] = mark end |
#undo_move(cell_number) ⇒ Object
15 16 17 |
# File 'lib/ang_ttt_gem/board.rb', line 15 def undo_move(cell_number) @cells[cell_number] = " " end |