Курсовая работа: Разработка игры "Крестики-нолики"

Студент: Иванов П. С.

Группа: Т-2144

Руководитель: Скобелев И. В.

Комиссия__________________

Оценка____________________

Возможно вы искали - Реферат: Техническое обслуживание процессоров

Дата защиты_______________

Курган, 2006

Введение

Стремительное развитие компьютерной техники в последние годы, появление мощнейших графических ускорителей и центральных процессоров способствовало не менее бурному развитию индустрии компьютерных игр. Выдающиеся разработки этой отрасли – это сложнейшие программы, как правило, с очень высокими требованиями к аппаратной части компьютера. Однако для возможности отдохнуть в перерыве от выполнения какой-либо работы оператору компьютера не всегда требуется новейшая компьютерная игра, а зачастую использовать её не позволяет маломощное оборудование офисного компьютера. Именно этой цели – отдыху от монотонной работы служит разработанная в рамках данного курсового проекта программа.


1. Техническое задание

Игровое поле представлено 25 клетками, как показано на рис.1.


Рис. 1. Игровое поле после запуска игры

Игра рассчитана на 2-х игроков, которые по очереди наводят указатель мыши на соответствующую клетку игрового поля и щелчком левой кнопки мыши ставят в ней крестик или нолик. Первый ход совершает пользователь, играющий крестиками. Победа присуждается игроку, который выстроит в линию последовательность четырех значков Х или О - по горизонтали, вертикали или диагонали, о чем выводится соответствующее сообщение. Также имеется возможность сохранять и загружать начатые игры (файлы сохранений имеют свой значок и расширение *.xvo). Начало новой игры - команда меню File->New (или значок , сохранение игры - File -> SaveAs… или File -> Save (или значок, открытие сохраненной игры - File -> Open…(или значок ), распечатка начатой игры File -> Print … (или значок ).

2. Блок-схема алгоритма

Похожий материал - Доклад: Некоторые особенности модернизации в России

3. Описание работы программного продукта

В данном пункте следует привести описание работы программы с приведением необходимого кода, рассказать об основных и вспомогательных функциях, о назначении массивов и методов, структуре алгоритма программы.

Структура программы строится на пяти классах, каждый из которых создан на основе своего базового класса, взятого из MFC, это классы:

· CXvsOv1App относится к работе самой программы;

· CXvsOv1Doc занимается обработкой рабочих документов;

Очень интересно - Реферат: Внутренняя и внешняя политика Екатерины II

· CXvsOv1View осуществляет отображение документов в рабочем окне;

· CMainFrame обслуживает работу базового окна программы;

· CAboutDlg обеспечивает работу диалогового окна About (О программе).

В программе данные хранятся в объекте document, а за их отображение отвечает объект view. Фактическим же местом вывода отображаемых данных является окно просмотра. Для SDI-программ данное окно перекрывает видимую клиентскую часть базового окна, которое появляется после компановки подготовленной в AppWizard программы. То, что выглядит как клиентская часть окна - светлая область, обрамленная сверху панелью инструментов, а снизу строкой состояния, - фактически является окном просмотра.

Используемые в программе данные хранится в виде массива полей длиной 1 байт, каждый из которых описывает текущее состояние отдельной клетки игрового поля; этот массив представляет собой элемент данных (data member) класса document. В любой момент класс view может запросить у класса document сведения по каждой клетке и отобразить их на экране. Кроме того, он добавляет в класс document сведения о крестиках и ноликах, когда пользователь щелкает по пустой клетке.

Вам будет интересно - Реферат: Правление Екатерины II и Петра I

Клетки, образующие игровое поле, задаются матрицей CRect -элементов размерностью 5х5.

Блок инициализации переменной m_rect выглядит так:

CXvsOv1View::CXvsOv1View()

{

for (int i=0; i<5; i++) {

Похожий материал - Реферат: Австро-турецкая война 1787 1791

for (int j=0; j<5; j++) {

int x = (i * 70) + 10;

int y = - (j * 70) - 10;

m_rect[i][j].SetRect (x, y, x + 60, y - 60);