class TicTacToe::Rules
Public Class Methods
new(board)
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 5 def initialize(board) @board = board end
Public Instance Methods
tie()
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 14 def tie (1..9).each do |position| return false if @board.get_mark_at(position).nil? end return true end
winner()
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 9 def winner return "tie" if tie ["X", "O"].detect { |mark| winning_mark?(mark) } end
Private Instance Methods
potential_winning_combinations()
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 29 def potential_winning_combinations @board.rows + @board.columns + @board.diagonals end
winning_mark?(mark)
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 23 def winning_mark?(mark) potential_winning_combinations.any? do |marks| winning_marks?(marks, mark) end end
winning_marks?(marks, mark)
click to toggle source
# File lib/tic_tac_toe/rules.rb, line 33 def winning_marks?(marks, mark) marks == [mark] * 3 end