Курсовая работа: Программа "Крестики-нолики 5 в ряд на неограниченном игровом поле"
Входные данные:
1) Размер игрового поля (10x10, 19x19, 30x30, 50x50 или 100х100) – задается из главного меню программы.
2) Уровень игры компьютера (новичок, любитель или профессионал) – задается из главного меню программы.
3) Очередность первого хода (человек, компьютер).
4) Координаты щелчка левой кнопкой мыши по игровому полю (x,y) – координаты очередного хода.
Выходные данные:
1) Игровое поле, заполненное крестиками и ноликами, отображаемое на экран.
2) В случае выигрыша одного из игроков, отображение выигрышной последовательности и соответствующего сообщения.
4. Описание переменных и функций программы
Функции расчета оценочной функции, состояния игрового поля, обработки нажатия клавиши мыши, вывода игрового поля на экран объявлены в классе представления клиентской области главного окна CChildView.
Объявление класса находится в модуле СhieldView.h. Определения функций и объявления глобальных переменных программы, отвечающих за алгоритм расчета расположены в модуле СhieldView.cpp.
Описание переменных:
unsigned char** fields – Динамический двумерный массив, представляющий игровое поле. Каждый элемент массива представляет клетку на поле. Индексы массива соответствуют положению клеток на поле.
Элемент массива может принимать следующие значения:
0 – клетка пуста;
1 – в клетке нолик;
2 – в клетке крестик;
3 – в клетке нолик, входящий в выигрышный ряд по окончанию игры, служит для выделения другим цветом на поле выигрышного ряда;
4 – в клетке крестик, входящий в выигрышный ряд по окончанию игры, служит для выделения другим цветом на поле выигрышного ряда;
5 – в клетке нолик, поставленный последним ходом, служит для выделения другим цветом на поле последнего хода;
6 – в клетке крестик, поставленный последним ходом, служит для выделения другим цветом на поле последнего хода;
float** calc_fields – Динамический двумерный массив, представляющий значение оценочной функции для каждой клетки игрового поля.
int size_x – Размер игрового поля по х, по умолчанию равен 19.
int size_y – Размер игрового поля по y, по умолчанию равен 19.
int old_size_x – Предыдущий размер игрового поля по x, используется при изменении размеров игрового поля.
int old_size_y – Предыдущий размер игрового поля по y, используется при изменении размеров игрового поля.
int attack_factor – Коэффициент агрессивности игры компьютера, используется при расчете оценочной функции. При меньшем значении данного параметра компьютер играет более атакующе. По умолчанию равен 1 для игрока уровня эксперт.
int valuation_factor – Коэффициент, используемый при расчете оценочной функции. По умолчанию равен 3.
bool end_game – Установка данной переменной в значение true обозначает конец игры. Дальнейшие щелчки мышью по игровому полю не воспринимаются до старта новой игры. Начальное значение – false.