На прошлом уроке мы остановились на том, что проверили по первому условие стратегии верхнюю горизонтальную линию.
На этот урок мы поставили цель сократить этот код. В первую очередь в условия вместо переменных подставим функции:
Лучше не стало, конечно, зато теперь вместо безликих переменных a, b и т.п. там стоят вполне понимаемые функции. Давайте, кстати, сделаем отдельную функцию для проверки занятости ячейки:
Стало немного покороче. Сейчас мы проверяем, что ячейка пуста, проверяя наличие в ней крестика и затем нолика. Давайте сделаем немного по-другому:
Видите, до этого мы проверяли наличие и крестика и нолика, а теперь просто передаем в функцию пробел, а функция сама проверяет отсутствие и крестика, и нолика.
Итак, теперь давайте сделаем вот что. То, что мы сделали относится к одной линии, То есть, мы можем вынести это в отдельную функцию:
Мы добавили функцию checkLine которая проверяет чтобы в линии две ячейки были заняты, а одна свободна, тогда эта функция ставит фигуру в свободную ячейку. Теперь нам будет проще проверить остальные линии:
Мы выполнили первый шаг стратегии, дальше необходимо проверить, может ли за один ход выиграть наш противник и, если может, то мы должны ему помешать. Для этого мы можем использовать нашу функцию checkLine, правда ее придется модифицировать:
Прежде мы проверяли наличие одной фигуры в линии, а затем в пустую ячейку ставили ту же фигуру. Теперь мы можем проверять наличие одной фигуры, а ставить другую фигуру. Теперь выполним второй шаг стратегии:
Теперь мы проверяем наличие недостроенных линий нолика и при наличии ставим там свой крестик.
На следующем уроке мы реализуем третий шаг стратегии. А на этом все. Если остались вопросы - обязательно пишите их в комментариях.
Предыдущий урок | Содержание курса | Следующий урок
Подпишитесь на наш канал, чтобы не пропустить следующие уроки.
Новые уроки, новые курсы будут на моем блоге здесь: keklik.me.