Игра «Пятнашки»
БЕЛОРУССКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНСТИТУТ
ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
ФАКУЛЬТЕТ
КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ
Игра
«Пятнашки»
Пояснительная записка
к курсовому проекту по дисциплине
«Операционные
системы и системное
Руководитель проекта / Лукин Е.С. /
Студент гр.981012
/ Воеводенко Е.А. /
2011
Содержание
Введение......................
1 Анализ задачи 6
1.1 Цель разработки и функциональное назначение программного продукта 6
1.2 Анализ существующих аналогов продукта 7
2 Требования к программе 8
2.1 Системные требования 8
3 Инструментальные средства для создания программного продукта 10
3.1 Вычислительная система 10
3.2 Среда разработки 13
4 Проектирование 16
4.1 Концептуальный прототип 16
4.2 Описание модулей 18
4.3 Входные данные 20
4.4 Выходные данные 20
4.5 Логика программы 21
5 Тестирование и отладка 22
Заключение 23
Список литературы 24
Приложение A Диаграммы 25
Приложение
Б Текст программы 27
Введение
Электронно-вычислительная техника все шире входит во все сферы нашей жизни. Компьютер стал привычным не только в производственных цехах, научных лабораториях, но и в сфере обслуживания, офисах и дома. С помощью компьютера не только решают разнообразные задачи, требующие большой вычислительной мощности, но и часто используют при обработке деловой и графической информации, в процессе обучения, в качестве соперника в играх и многих других областях деятельности человека.
В
настоящее время индустрия
В
настоящее время большие
Цель проекта заключается в том, чтобы создать программу, при помощи которой пользователь сможет проверить свои логические способности, попробовав решить одну из древнейших головоломок «Пятнашки».
Программа должна быть совместима с операционной системой Windows XP, Windows Vista и Windows 7, а так же при разработке программы необходимо использовать функции Win API.
Windows API (англ. application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows. API является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпустил SDK, который называется Platform SDK и содержит документацию, набор библиотек, утилит и других инструментальных средств.
Win32 — 32-разрядный API для современных версий Windows. Самая популярная ныне версия. Базовые функции этого API реализованы в DLL kernel32.dll и advapi32.dll; базовые модули GUI — в user32.dll и gdi32.dll. В современных версиях Windows, происходящих от Windows NT, работу Win32 GUI обеспечивают два модуля: csrss.exe (Client/Server Runtime Subsystem), работающий в пользовательском режиме, и win32k.sys в режиме ядра. Работу же системных Win32 API обеспечивает ядро — ntoskrnl.exe
Использование
этих функций значительно
1
Анализ задачи
В соответствии с условием задачи требуется разработать программу, при помощи которой пользователь сможет проверить свои логические способности, попробовав решить всем известную головоломку «Пятнашки». Программа должна обладать следующим набором возможностей:
- интуитивно понятным интерфейсом;
- графически точным табло, где осуществляется перемещение цифр;
- удобным для пользователя управлением;
- возможностью в любой момент покинуть игру.
Также
должна быть разработана справочная
информация и руководство пользователя.
1.1
Цель разработки и функциональное
назначение программного
продукта
Основной целью разработки данного проекта являлось создание программы с использованием графических возможностей Win API. Данная программа должна стать компьютерной версией знаменитой игры «Пятнашки».
Цель
проекта заключается в том, чтобы
создать программу, при помощи которой
пользователь сможет отвлечься от повседневных
дел и при этом развить свои логические
способности.
1.2
Анализ существующих
аналогов продукта
На
данный момент существует множество
аналогов данной игры, которые разработаны
как крупными компаниями по производству
компьютерных игр, так и программистами-любителями.
Одним из распространенных аналогов игры
является виджет для рабочего стола в
операционных системах Windows 7 и Windows Vista.
2
Требования к программе
При разработке приложения необходимо создать собственный интерфейс. Пользователь должен видеть графическое табло, на котором расположены пятнадцать клеток с цифрами от 1 до 15 и одна пустая клетка. Нужно предусмотреть возможность простого и понятного управления при перетаскивании клеток с цифрами по игровому полю. Интерфейс должен быть интуитивно понятен, как опытному пользователю, так и новичку.
При прорисовке игрового поля необходимо использовать функции Win API.
Необходимо организовать понятную для простого пользователя справочную систему с описанием правил игры и действий пользователя при перемещении клеток по игровому полю.
Предусмотреть совместимость с ОС Windows XP, Windows Vista, Windows 7. Windows Seven одна из самых успешных систем, которая очень быстро внедряется в современное общество и набирает обороты.
Все
реализованные функции
2.1
Системные требования
Невысокий уровень потребляемых ресурсов при работе с данной программой, позволяет использовать ее на компьютерах с различной конфигурацией.
Испытание и компиляция программы проводилась на компьютере со следующей конфигурацией:
- материнская плата FOXCONN 945P7AA-8KS2 (Based on Intel® 945 Chipset, support FSB 1066MHz Socket 775 Processor, DDR2 Type Memory (4 memory slots), USB 2.0, PCI Express x16, 8 Channel Audio, Gigabit LAN, 3 IDE and 4 Serial ATA II ports);
- процессор Intel Pentium-4 630+ 3.0GHz Socket LGA775 (800MHz FSB, 2Mb L2 Cache);
- оперативная память DDR2 PC-4200 512Mb M-tec;
- видеоадаптер GeForce 6600LE Albatron 256Mb PCI Express ;
- винчестер Seagate Barracuda 7200 250Gb SATA, Samsung 40Gb IDE;
- звуковая карта Creative SBLive;
- CD-привод DVD-RW Teac DV-W516GB;
- модем BulletFax modem E56k;
- Жесткий диск, разбитый на два логических.
3
Инструментальные средства
для создания программного
продукта
3.1 Вычислительная
система
Разрабатываться проект будет в операционной системе Windows XP, для неё же и будет предназначен.
Windows XP (кодовое название при разработке — Whistler; внутренняя версия — Windows NT 5.1) — операционная система семейства Windows NT от компании Microsoft. Она была выпущена 25 октября 2001 года и является развитием Windows 2000 Professional. Название XP происходит от англ. experience (опыт, впечатление, от прилагательного профессиональный). Название вошло в практику использования, как профессиональная версия.
В отличие от предыдущей системы Windows 2000, которая поставлялась как в серверном, так и в клиентском вариантах, Windows XP является исключительно клиентской системой. Её серверным вариантом является выпущенная позже система Windows Server 2003. Windows XP и Windows Server 2003 построены на основе одного и того же ядра операционной системы, в результате их развитие и обновление идет более или менее параллельно.
Windows XP выпускается во многих вариантах:
- Windows XP Professional Edition была разработана для предприятий и предпринимателей и содержит такие функции, как удалённый доступ к рабочему столу компьютера, шифрование файлов (при помощи Encrypting File System), центральное управление правами доступа и поддержка многопроцессорных систем.
- Windows XP Home Edition — система для домашнего применения. Выпускается как недорогая «урезанная» версия Professional Editon, но базируется на том же ядре и при помощи некоторых приёмов позволяет провести обновление до почти полноценной версии Professional Edition.
- Windows XP Professional x64 Edition — специальная 64-разрядная версия, разработанная для процессоров с технологией AMD64 Opteron и Athlon 64 от фирмы AMD и процессоров с технологией EM64T от фирмы Intel. Эта система не поддерживает процессоры других производителей, а также не работает с процессором Intel Itanium. Хотя первые 64-разрядные процессоры появились в 2003 году, Windows XP Professional x64 Edition вышла в свет только в апреле 2005 года. Основным достоинством системы является быстрая работа с большими числами (Long Integer и Double Float). Таким образом, эта система очень эффективна, например, при выполнении вычислений, использующих числа с плавающей запятой, необходимых в таких областях, как создание спецэффектов для кинофильмов и трёхмерной анимации, а также разработка технических и научных приложений. Данная система поддерживает смешанный режим, то есть одновременную работу 32- и 64-разрядных приложений, однако для этого все драйверы должны быть в 64-разрядном исполнении. Это означает, что большинство 32-разрядных приложений могут работать и в этой системе. Исключение составляют лишь те приложения, которые сильно зависят от аппаратного обеспечения компьютера, например, антивирусы и дефрагментаторы.
Также существуют следующие варианты Windows XP: Windows XP Tablet PC Edition, Windows XP Media Center Editio, Windows XP Embedded, Windows XP Professional x64 Edition, Windows XP 64-bit Edition, Windows XP Edition N, Windows XP Starter Editio, Windows Fundamentals for Legacy PCs.
Некоторыми из наиболее заметных улучшений в Windows XP по сравнению с Windows 2000 являются:
- новое оформление графического интерфейса, включая более округлые формы и плавные цвета; а также дополнительные функциональные улучшения (такие, как возможность представления папки в виде слайд-шоу в проводнике Windows).
- возможность быстрого переключения пользователей, позволяющая временно прервать работу одного пользователя и выполнить вход в систему под именем другого пользователя, оставляя при этом приложения, запущенные первым пользователем, включёнными.
- функция «удалённый помощник», позволяющая опытным пользователям и техническому персоналу подключаться к компьютеру с системой Windows XP по сети для разрешения проблем. При этом помогающий пользователь может видеть содержимое экрана, вести беседу и (с позволения удалённого пользователя) брать управление в свои руки.
- программа восстановления системы, предназначенная для возвращения системы в определённое предшествующее состояние (эта функция является развитием аналогичной программы, включённой в Windows Me), а также улучшение других способов восстановления системы. Так, при загрузке последней удачной конфигурации загружается также и прежний набор драйверов, что позволяет в ряде случаев легко восстановить систему при проблемах, возникших в результате установки драйверов; возможность отката драйверов и т. д.
- улучшенная совместимость со старыми программами и играми. Специальный мастер совместимости позволяет эмулировать для отдельной программы поведение одной из предыдущих версий ОС (начиная с Windows 95).
- возможность удалённого доступа к рабочей станции благодаря включению в систему миниатюрного сервера терминалов (только в издании Professional).
- более развитые функции управления системой из командной строки.
- поддержка проводником Windows цифровых фотоформатов (например, представление папки в виде слайд-шоу) и аудиофайлов (автоматическое отображение метаданных для аудиофайлов, например, тегов ID3 для MP3-файлов).
- Windows XP включает технологии, разработанные фирмой Roxio, которые позволяют производить прямую запись CD из проводника, не устанавливая дополнительное ПО, а работа с перезаписываемыми компакт-дисками становится подобной работе с дискетами или жёсткими дисками. Также в Media Player включена возможность производить запись аудио-дисков. Возможности работы с образами дисков не предусмотрена.
- Windows XP может работать с архивами ZIP без установки дополнительного ПО. Работа с архивами данного типа возможна в проводнике как с обычными папками, которые можно создавать и удалять, заходить в архив, добавлять/удалять файлы подобно работе с обычными папками. Также возможна установка пароля на архив. При необходимости можно назначить для работы с этими архивами любое стороннее программное обеспечение.
Исключительно
важной чертой Windows является единый стандарт
в работе, как с самой системой, так и с
ее программными приложениями. Это означает,
что, изучив технологию работы с одной
программой, вы легко перейдете к работе
с другой. Кроме того, Windows сегодня содержит
такой спектр программных средств, что
они практически покрывают все сферы человеческой
деятельности. Эти средства постоянно
пополняются новыми и более совершенными,
однако стандарт работы с ними сохраняется.
3.2
Среда разработки
Данный проект разрабатывался в программной среде Microsoft Visual Studio 2008. Visual Studio 2008 нацелена на создание приложений для ОС Windows Vista (но поддерживает и XP), Office 2007 и веб-приложений. Включает в себя новые версии языков C# и Visual Basic.
Microsoft Visual Studio — линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE и .NET Framework.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как например, Subversion и Visual SourceSafe), добавление новых наборов инструментов например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов цикла разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
В продукте Microsoft Visual Studio 2008 корпорация Microsoft воплотила свое видение концепции интеллектуальных клиентских приложений (smart client applications). С его помощью разработчики могут оперативно создавать подключенные приложения высочайшего качества, предоставляющие пользователям самые широкие возможности. Visual Studio 2008 значительно упрощает для предприятий сбор и анализ информации, а это означает возможность принятия более эффективных бизнес - решений. Visual Studio 2008 позволяет организациям любого размера разрабатывать более защищенные, управляемые и надежные приложения, в которых будут использованы все преимущества Windows Vista и системы Office 2007.
Visual
Studio 2008 предоставляет разработчикам новые
возможности создания интеллектуальных
клиентских приложений. Эти возможности,
расширяющие функциональность приложений
и улучшающие производительность труда
программистов, включают в себя более
простую интеграцию дизайнерских решений,
расширенные функции развертывания приложений,
разнообразные сервисы для входа в систему
и персонализации, а также улучшенные
инструменты доступа к данным и синхронизации.
4
Проектирование
4.1
Концептуальный прототип
Под концептуальным прототипом понимается:
- описание диалогов окон - подразумеваются окна, с которыми пользователь работает в диалоговом режиме (например, приложение задаёт пользователю какой-нибудь вопрос и пользователь должен ввести в это окно свой ответ).
- описание элементов управления (различных кнопок, при помощи которых облегчается работа пользователя).
Для удобства работы с программой все необходимые пользователю функции вызываются с одной формы при помощи специальных кнопок и выпадающих списков. Основная форма программы представлена на рисунке 1.
Рисунок
1 – Основная форма программы.
Перемещение клеток в программе осуществляется при помощи клавиш курсора – стрелок вверх, вниз, вправо, влево. Пример перемещения клеток по игровому полю представлен на рисунке 2.
Рисунок
2 – Перемещение клеток по игровому
полю.
В программе создано руководство пользователя, справочная система, где описываются все действия, которые можно произвести в программе, информация, необходимая для работы с проектом и данные о разработчике.
Вызов справки осуществляется нажатием левой кнопкой мыши на пункт меню «Помощь». В данном меню находится два подпункта «О программе» и «Правила игры». Вызов меню «Помощь» представлен на рисунке 3.
Рисунок
3 - Вызов меню «Помощь».
При выборе пользователем меню «О программе» появляется небольшое окно, которое содержит описание программы. Пример окна «О программе» приведен на рисунке 4.
Рисунок
4 – Окно «О программе».
Закрытие
данного окна производится путем
нажатия на кнопку «ОК» или при
нажатии левой кнопкой мыши по
«крестику» в правом верхнем углу
диалогового окна.
4.2
Описание модулей
Создание
главное окна и охранение дескриптора
экземпляра осуществляется с помощью
функции InitInstance(HANDLE, int). В этой функции
мы сохраняем дескриптор экземпляра в
глобальной переменной и создаем главное
окно.
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{ HWND hWnd;
hInst = hInstance; // Сохраним дескриптор экземпляра в нашей глобальной переменной
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
512, 240, 305, 345, NULL, NULL, hInstance, NULL);
NewField(Moves);
if (!hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
//прорисовываем:
int OnPaint (HWND hWnd)
{
HDC hdc;
PAINTSTRUCT ps;
int iStartX=50, iStartY=50,
iSizeX=25, iSizeY=35,
iSizeFld=5,
iRow,
iCol;
RECT rt;
hdc
= BeginPaint(hWnd, &ps);
MoveToEx(hdc, 0, 3*Size-1, (LPPOINT) NULL);
LineTo(hdc, 4*Size, 3*Size-1);
MoveToEx(hdc, 0, 2*Size-1, (LPPOINT) NULL);
LineTo(hdc, 4*Size, 2*Size-1);
MoveToEx(hdc, 0, Size-1, (LPPOINT) NULL);
LineTo(hdc,
4*Size, Size-1);
MoveToEx(hdc, Size-1,0, (LPPOINT) NULL);
LineTo(hdc, Size-1,4*Size);
MoveToEx(hdc, 2*Size-1,0, (LPPOINT) NULL);
LineTo(hdc, 2*Size-1,4*Size);
MoveToEx(hdc, 3*Size-1,0, (LPPOINT) NULL);
LineTo(hdc,
3*Size-1,4*Size);
for(iRow=0;iRow<Side;
for(iCol=0;iCol<
{
rt.left=
rt.top=iRow*
switch(
{
case 0: DrawImage(hdc, hBitmapNum0,rt.left,rt.top);
break;
case 1: DrawImage(hdc, hBitmapNum1,rt.left,rt.top);
break;
case 2: DrawImage(hdc, hBitmapNum2,rt.left,rt.top);
break;
case 3: DrawImage(hdc, hBitmapNum3,rt.left,rt.top);
break;
case 4: DrawImage(hdc, hBitmapNum4,rt.left,rt.top);
break;
case 5: DrawImage(hdc, hBitmapNum5,rt.left,rt.top);
break;
case 6: DrawImage(hdc, hBitmapNum6,rt.left,rt.top);
break;
case 7: DrawImage(hdc, hBitmapNum7,rt.left,rt.top);
break;
case 8: DrawImage(hdc, hBitmapNum8,rt.left,rt.top);
break;
case 9: DrawImage(hdc, hBitmapNum9,rt.left,rt.top);

- Игра слов в произведениях Л. Кэрролла "Приключения Алисы в стране чудес" и "Алиса в зазеркалье" и их переводах на русский и немецкий я
- Игра слов как переводческая проблема
- Игра – форма организации коллектива детей
- Игра Хonix
- Игристые виноградные вина
- Игристые виноградные вина. Товароведная характеристика шампанского. Экспертиза качества
- Игр как основной способ приобщения детей к английскому языку
- Игра крестики – нолики
- Игра «Крестики-нолики» между двумя игроками: пользователем и компьютером (роботом)
- Игра на детских музыкальных инструментах
- Игра на детских музыкальных инструментах как средство развития музыкальных способностей детей дошкольного возраста
- Игра на уроках иностранного языка
- Игра на уроках словесности
- Игра на уроке истории и обществознания