Объектно-ориентированное программирование

4. Классы

Теоретические сведения

Лекция

Задание

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

    к классу Controller. Если поле checkedCell нулевое, то эта функция записывает в него значение index. Иначе, она проверяет возможность выполнить ход с поля с номером checkedCell на поле с номером index. Если ход допускается по правилам игры, то в контроллере создается новое состояние State, которое получается после выполнения этого хода.