class Judge

Класс Judge - судья (проверщик).

Constants

WIN_COMBINATIONS

Attributes

board[RW]

Public Class Methods

new(game) click to toggle source
# File lib/ttt-cli/judge.rb, line 13
def initialize(game)
  @board = game.board.cells
end

Public Instance Methods

is_combo?(player) click to toggle source

основной метод для проверки на выигрыш возвращает true если обнаружена выигрышная комбинация

# File lib/ttt-cli/judge.rb, line 19
def is_combo?(player)
  !winning_combination(player.token).nil?
end

Private Instance Methods

winning_combination(token) click to toggle source

метод который возвращает первую подходящую комбинацию или nil если не было совпадения

# File lib/ttt-cli/judge.rb, line 27
def winning_combination(token)
  WIN_COMBINATIONS.find do |indices|
    # возвращаем значения для соответствующих индексов
    # values_at(*[0,1,2]) => values_at(0,1,2)
    values = @board.values_at(*indices)
    # проверяем, равны ли все значения X или O
    values.all?(token)
  end
end