class Board
Attributes
board[R]
side_length[R]
Public Class Methods
new(side_length)
click to toggle source
# File lib/negamax_ttt/board.rb, line 4 def initialize(side_length) @side_length = side_length @board = create_empty_board end
Public Instance Methods
clear_board()
click to toggle source
# File lib/negamax_ttt/board.rb, line 17 def clear_board (1..size).each do |key| place_move(key, nil) end end
column_starting_at(num)
click to toggle source
# File lib/negamax_ttt/board.rb, line 47 def column_starting_at(num) column = [] side_length.times do column << num num += side_length end column end
columns()
click to toggle source
# File lib/negamax_ttt/board.rb, line 29 def columns (1..side_length).map do |first_cell| column_starting_at(first_cell) end end
create_empty_board()
click to toggle source
# File lib/negamax_ttt/board.rb, line 43 def create_empty_board (1..size).map { |num| [num, nil] }.to_h end
diagonal(first_cell, increment_value)
click to toggle source
# File lib/negamax_ttt/board.rb, line 64 def diagonal(first_cell, increment_value) diagonal = [] side_length.times do diagonal << first_cell first_cell += side_length + increment_value end diagonal end
diagonals()
click to toggle source
# File lib/negamax_ttt/board.rb, line 35 def diagonals [left_to_right_diagonal, right_to_left_diagonal] end
left_to_right_diagonal()
click to toggle source
# File lib/negamax_ttt/board.rb, line 56 def left_to_right_diagonal diagonal(1, 1) end
open_spaces()
click to toggle source
# File lib/negamax_ttt/board.rb, line 13 def open_spaces board.select { |key, value| value.nil? }.keys end
place_move(space, move_signature)
click to toggle source
# File lib/negamax_ttt/board.rb, line 9 def place_move(space, move_signature) @board[space] = move_signature end
right_to_left_diagonal()
click to toggle source
# File lib/negamax_ttt/board.rb, line 60 def right_to_left_diagonal diagonal(side_length, -1) end
rows()
click to toggle source
private
# File lib/negamax_ttt/board.rb, line 25 def rows (1..board.size).each_slice(side_length).to_a end
size()
click to toggle source
# File lib/negamax_ttt/board.rb, line 39 def size side_length * side_length end