Class: Board
Overview
Класс Board - игровое поле.
По умолчанию имеет размер 3х3.
Constant Summary
Constants included from Emoji
Emoji::DASH, Emoji::O, Emoji::X
Instance Attribute Summary collapse
-
#cells ⇒ Object
Returns the value of attribute cells.
-
#game ⇒ Object
readonly
Returns the value of attribute game.
Instance Method Summary collapse
-
#cell_taken?(index) ⇒ Boolean
метод для проверки клетки на занятость.
-
#empty_cells ⇒ Object
метод возвращает массив индексов пустых клеток доски.
-
#even_cells ⇒ Object
метод возвращает массив четных индексов клеток доски.
-
#fill_cell(index, token) ⇒ Object
метод для заполнения клетки.
-
#full? ⇒ Boolean
метод для проверки всех клеток на занятость.
-
#initialize(game) ⇒ Board
constructor
A new instance of Board.
-
#reset_cell(index) ⇒ Object
метод для очистки клетки.
- #to_s ⇒ Object
Constructor Details
Instance Attribute Details
#cells ⇒ Object
Returns the value of attribute cells.
9 10 11 |
# File 'lib/ttt-cli/board.rb', line 9 def cells @cells end |
#game ⇒ Object (readonly)
Returns the value of attribute game.
10 11 12 |
# File 'lib/ttt-cli/board.rb', line 10 def game @game end |
Instance Method Details
#cell_taken?(index) ⇒ Boolean
метод для проверки клетки на занятость
25 26 27 |
# File 'lib/ttt-cli/board.rb', line 25 def cell_taken?(index) @cells[index] == X || @cells[index] == O end |
#empty_cells ⇒ Object
метод возвращает массив индексов пустых клеток доски
41 42 43 44 45 |
# 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 ⇒ Object
метод возвращает массив четных индексов клеток доски
48 49 50 |
# File 'lib/ttt-cli/board.rb', line 48 def even_cells empty_cells.filter(&:even?) end |
#fill_cell(index, token) ⇒ Object
метод для заполнения клетки
20 21 22 |
# File 'lib/ttt-cli/board.rb', line 20 def fill_cell(index, token) @cells[index] = token end |
#full? ⇒ Boolean
метод для проверки всех клеток на занятость
30 31 32 33 34 35 36 37 38 |
# 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) ⇒ Object
метод для очистки клетки
53 54 55 |
# File 'lib/ttt-cli/board.rb', line 53 def reset_cell(index) @cells[index] = DASH end |
#to_s ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 |
# 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 |