2 Блок – схемы модулей программы
Функция создание сетки
Блок-схема функции для создания сетки представлена на рисунке 1.
Рисунок 1 – Блок-схема функции создать сетку
Функция создает игровую доску для шашек.
Цикл по столбцам: for i in range(columns) перебор столбцов доски.
Цикл по рядам: for j in range(rows) перебор рядов доски.
Создание ячейки: создается ячейка в i столбце и j строке.
Закрашивание ячейки: ячейка закрашивается в соответствующий цвет.
Расстановка шашек: если ячейка закрашена в черный цвет, на неё ставится шашка.
Возврат сетки – возврат сетки в функцию main.
Функция получение координат клетки
Блок-схема функции для получения координат клетки представлена на рисунке 2.
Рисунок 2 – Блок-схема функции получения координат клетки
Функция получает координаты клика мыши, вычисляет координаты ячейки и возвращает их для дальнейшей работы.
Считывание координат мыши: получение координат клика мыши с помощью метода mouse.get_pos() библиотеки pygame.
Вычисление ряда и столбца клетки: полученные координаты делятся нацело на размер клетки.
2.3 Функция подсвет возможных ходов
Блок-схема функции для подсвета возможных ходов представлена на рисунке 3.
Рисунок 3 – Блок-схема функции подсвет возможных ходов
Функция в результате выполнения подсвечивает зелёным цветом ячейки с возможными ходами.
Смена цвета выбранной ячейки на синий.
Получение возможных ходов: вызов функции generatePotentialMoves().
Смена цвета каждой ячейки с возможным ходом на зеленый: цикл по возможным ходам, полученным из функции generatePotentialMoves(), последовательное окрашивание соответствующих ячеек в зелёный.
Функция совершение хода
Блок-схема функции для совершения хода представлена на рисунке 4.
Рисунок 4 – Блок-схема функции совершение хода
Функция производит перемещение шашки на выбранную клетку, удаление съеденной шашки и передает ход команде противника, если это необходимо.
Получение старых и новых координат: при вызове функции в неё передаются старые координаты шашки и новые, выбранные пользователем для хода.
Установка шашки на новые координаты и удаление со старых
Проверка на превращение шашки в дамку: Если активная шашка не является дамкой и достигла противоположного края поля, она превращается в дамку.
Ударный ход: если совершенный ход был ударным, происходит удаление съеденной шашки, проигрывание звука с помощью pygame.mixer.Sound.play(eat_sound). Если ход не был ударным, происходит передача хода противнику.
На этом ходе было превращение в дамку: Если на ходе было превращение в дамку, ход передается, если нет – происходит проверка на возможность еще одного ударного хода
Был ударный ход: если ход был ударным, происходит проверка на то, что на возможном пути есть вражеская шашка и за ней пусто, то ход остается у активной команды.
Функция обновление отображения
Блок-схема функции для обновления отображения представлена на рисунке 5.
Рисунок 5 – Блок-схема функции обновление отображения
Функция производит обновление поля для отображения изменений на поле.
Цикл по строкам: перебор строк
Цикл по ячейкам: перебор каждой ячейки в строке
Обновление ячейки: заново отрисовывается ячейка для корректного отображения ситуации игры на экране
Вывод обновленного поля на экран: с помощью метода display.update() библиотеки Pygame происходит вывод обновленного игрового поля на экран
