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