class Board

Класс Board - игровое поле.

По умолчанию имеет размер 3х3.

Attributes

cells[RW]
game[R]

Public Class Methods

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

Public Instance Methods

cell_taken?(index) click to toggle source

метод для проверки клетки на занятость

# File lib/ttt-cli/board.rb, line 25
def cell_taken?(index)
  @cells[index] == X || @cells[index] == O
end
empty_cells() click to toggle source

метод возвращает массив индексов пустых клеток доски

# File lib/ttt-cli/board.rb, line 41
def empty_cells
  @cells.filter_map.with_index do |cell, index|
    index if cell != X && cell != O
  end
end
even_cells() click to toggle source

метод возвращает массив четных индексов клеток доски

# File lib/ttt-cli/board.rb, line 48
def even_cells
  empty_cells.filter(&:even?)
end
fill_cell(index, token) click to toggle source

метод для заполнения клетки

# File lib/ttt-cli/board.rb, line 20
def fill_cell(index, token)
  @cells[index] = token
end
full?() click to toggle source

метод для проверки всех клеток на занятость

# File lib/ttt-cli/board.rb, line 30
def full?
  @cells.all? do |char|
    if char == X || char == O
      true
    else
      false
    end
  end
end
reset_cell(index) click to toggle source

метод для очистки клетки

# File lib/ttt-cli/board.rb, line 53
def reset_cell(index)
  @cells[index] = DASH
end
to_s() click to toggle source
# File lib/ttt-cli/board.rb, line 57
  def to_s
    Rainbow("
        |      |
    #{@cells[0]}  |  #{@cells[1]}  |  #{@cells[2]}
  ______|______|______
        |      |
    #{@cells[3]}  |  #{@cells[4]}  |  #{@cells[5]}
  ______|______|______
        |      |
    #{@cells[6]}  |  #{@cells[7]}  |  #{@cells[8]}
        |      |
").lawngreen
  end