class Rules

Attributes

board[R]

Public Class Methods

new(board) click to toggle source
# File lib/negamax_ttt/rules.rb, line 4
def initialize(board)
  @board = board
end

Public Instance Methods

game_over?(player_1_move_signature, player_2_move_signature) click to toggle source
# File lib/negamax_ttt/rules.rb, line 8
def game_over?(player_1_move_signature, player_2_move_signature)
  board.open_spaces.empty? || player_wins?(player_1_move_signature) || player_wins?(player_2_move_signature)
end
player_wins?(move_signature) click to toggle source
# File lib/negamax_ttt/rules.rb, line 12
def player_wins?(move_signature)
  winning_combinations.any? do |winning_combination|
    board.board.select do |key, value|
      winning_combination.include?(key) && value == move_signature
    end
    .length == board.side_length
  end
end
winning_combinations() click to toggle source
# File lib/negamax_ttt/rules.rb, line 21
def winning_combinations
  board.rows + board.columns + board.diagonals
end