class Board

Attributes

squares[R]

Public Class Methods

new(squares = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']) click to toggle source
# File lib/ttt_malisa/board.rb, line 4
def initialize(squares = [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '])
  @squares = squares
end

Public Instance Methods

available_moves() click to toggle source
# File lib/ttt_malisa/board.rb, line 18
def available_moves
  open_squares = []
  @squares.each_with_index {|value, index|  open_squares << index if value == ' '}
  open_squares
end
display() click to toggle source
# File lib/ttt_malisa/board.rb, line 8
  def display
    <<-HEREDOC
 #{@squares[0]} | #{@squares[1]} | #{@squares[2]}
-----------
 #{@squares[3]} | #{@squares[4]} | #{@squares[5]}
-----------
 #{@squares[6]} | #{@squares[7]} | #{@squares[8]}
    HEREDOC
  end
full?() click to toggle source
# File lib/ttt_malisa/board.rb, line 36
def full?
  @squares.all? do |index|
    index != ' '
  end
end
mark(index, mark = 'X') click to toggle source
# File lib/ttt_malisa/board.rb, line 32
def mark(index, mark = 'X')
  @squares[index] = mark
end
position_taken?(index) click to toggle source
# File lib/ttt_malisa/board.rb, line 24
def position_taken?(index)
  @squares[index] != ' '
end
valid_move?(index) click to toggle source
# File lib/ttt_malisa/board.rb, line 28
def valid_move?(index)
  index.between?(0, 8) && !position_taken?(index)
end