Курсовая работа: Программа "Крестики-нолики 5 в ряд на неограниченном игровом поле"
2) Осуществляется проверка, не закончена ли игра с помощью функции end_analyze.
3) Вычисляется ход компьютера с помощью функции ii.
4) Осуществляется проверка, не закончена ли игра с помощью функции end_analyze.
5) Производится перерисовка окна.
Алгоритм работы функции приведен на рисунке 1 в разделе 5.
int CChildView::end_analyze() – Функция определяет не закончена ли игра, т. е. не составлен ли выигрышный ряд на поле одним из игроков, на основании значений элементов массива fields.
Входные параметры:
Нет.
Возвращаемое значение:
int – реузультат работы, = 1 – игра окончена, = 0 – игра не окончена.
Алгоритм работы:
Для каждой клетки на игровом поле просматриваются соседние клетки по горизонтали, вертикали, вниз и вправо по диагонали. Если в одном из направлений символы во всех клетках на расстоянии до 4 совпадают с символом в текущей клетке, то игра считается выигранной. К значениям найденных клеток в массиве fields прибавляется 2 для отображения выигрышной ситуации в окно.
void CChildView::ii() – Функция расчета очередного хода компьютера.
Входные параметры:
Нет.
Возвращаемое значение:
Нет.
Алгоритм работы:
Функция рассчитывает оценочную функцию для каждой клетки игрового поля, с помощью вызова функции calculate, и заносит рассчитанные значения в массив calc_field. Исходя из значений массива calc_field выбирает очередной ход компьютера.
Алгоритм работы функции приведен в разделе 6.
unsigned long CChildView::calculate(int id,int x,int y) – Расчет оценочной функции для клетки игрового поля, с учетом установки в нее крестика или нолика.
Входные параметры:
int id – определяет какой символ ставится в клетку (= 1 – нолик, = 2 – крестик);
int x – координата x клетки.
int y – координата y клетки.
Возвращаемое значение:
unsigned long – значение оценочной функции.
Алгоритм работы:
Алгоритм работы функции приведен в разделе 6.