RSS    

   Курсовая работа: Программа "Крестики-нолики 5 в ряд на неограниченном игровом поле"

Курсовая работа: Программа "Крестики-нолики 5 в ряд на неограниченном игровом поле"

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

Государственное образовательное учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

Курсовая работа

по дисциплине: программирование

«Крестики-нолики 5 в ряд на неограниченном игровом поле»

Выполнил студент А.С.Лебедев

Руководитель М.Н.Суслов

Санкт-Петербург 2010


СОДЕРЖАНИЕ

1. Цель работы

2. Описание игры

3. Описание входных и выходных данных

4. Описание переменных и функций программы

5. Алгоритм работы программы

6. Текст программы

7. Примеры выполнения программы

Выводы

Список литературы

программа игра данные алгоритм


1. Цель работы

Разработать программу игры в крестики-нолики пять в ряд на неограниченном поле. Программа должна быть написана на языке С++ в среде Visual Studio 2008 или Visual Studio 2010.

2. Описание игры

Игра ведется на бесконечном поле, разлинованном в клетку. Перед игрой противники решают, кто будет играть крестиками, а кто ноликами. В ходе игры противники ставят по очереди крестик или нолик (в зависимости от договоренности перед началом игры) в свободную клетку на поле.

Цель игры – построить линию из 5 стоящих рядом по вертикали, горизонтали или диагонали крестиков или ноликов. Первый игрок, построивший такую комбинацию из знаков своего типа (крестиков или ноликов) выигрывает.

Несмотря на то, что по определению игровое поле по определению бесконечно, обычно пользуются ограниченными размерами поля. Например, в игре гомоку, поле имеет размер 15x15 (ранее имело 19x19).

Пример игровой ситуации на игровом поле (показана только часть поля):

X 0 X
X 0
0 X 0
0 X 0
0 X X X

Пример выигрыша крестиков:

0
X 0 X 0
X 0
0 X X 0
0 X X 0
0 0 X X X

Пример выигрыша ноликов:

X 0 0 X 0 X X
X X 0 0 0 0 0 X
X X X 0 X
0 X 0 0 X
0 0 X X X
X 0 0 X 0 0
0 X X 0 0
0 X 0 X 0 0
0 X 0 X X X X

3. Описание входных и выходных данных

Входные данные:

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.

int last_x – Координата x последнего хода.

int last_y – Координата y последнего хода.

Страницы: 1, 2, 3, 4, 5


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.