class C4::Model::Board
Attributes
columns[R]
num_columns[R]
num_rows[R]
Public Class Methods
new(num_rows, num_columns)
click to toggle source
# File lib/c4/model/board.rb, line 13 def initialize(num_rows, num_columns) @num_rows = num_rows @num_columns = num_columns @columns = Array.new(num_columns).map { |_| Column.new(num_rows) } end
Public Instance Methods
diagonals()
click to toggle source
# File lib/c4/model/board.rb, line 37 def diagonals matrix = Matrix.new(columns.map(&:to_a), num_rows, num_columns) matrix.diagonals end
full?()
click to toggle source
# File lib/c4/model/board.rb, line 25 def full? columns.all?(&:full?) end
put_stone!(column, mark)
click to toggle source
# File lib/c4/model/board.rb, line 19 def put_stone!(column, mark) raise InvalidColumnError, 'Column does not exist!' if column.negative? || column >= columns.size columns[column].put!(mark) end
to_a(mode = :column_wise)
click to toggle source
# File lib/c4/model/board.rb, line 29 def to_a(mode = :column_wise) column_wise = Matrix.new(columns.map(&:to_a), num_rows, num_columns) return column_wise.transpose.matrix if mode == :row_wise # Changes the shape return column_wise.transpose.reverse.matrix if mode == :print column_wise.matrix end