4. Классы
Теоретические сведения
Задание
- Создайте класс
Controller
:class Controller( var state: State = State() ) { val view = View(this) var checkedCell: Int? = null }
- Обновите классы
Game
иView
так, чтобы они работали с классомController
. - Изменив класс
View
установите фон элементов типаJButton
так, чтобы игровое поле выглядело как шахматная доска. В случае, если в объекте классаController
полеcheckedCell
не нулевое, установите фон соответствующей кнопки в какой-либо цвет. - Добавьте функцию
fun onClick(index: Int)
к классу
Controller
. Если полеcheckedCell
нулевое, то эта функция записывает в него значениеindex
. Иначе, она проверяет возможность выполнить ход с поля с номеромcheckedCell
на поле с номеромindex
. Если ход допускается по правилам игры, то в контроллере создается новое состояниеState
, которое получается после выполнения этого хода.