РЕФЕРАТ 2
ОГЛАВЛЕНИЕ 3
ВВЕДЕНИЕ 5
1. ОБЗОР ПРЕДМЕТНОЙ ОБЛАСТИ 6
1.1. Описание игры пасьянс "Косынка" 6
1.2. Модификации игры 7
1.3. Постановка задачи 8
2. ОПИСАНИЕ ТЕХНОЛОГИЙ МОДЕЛИРОВАНИЯ И РЕАЛИЗАЦИИ 9
2.1. Технология разработки WPF 9
2.2. Язык проектирования интерфейса приложения XAML 10
2.3. Язык программирования C# 11
2.4. Хранение данных с помощью XML 11
2.5. Проектирование программного обеспечения 11
2.6. СУБД SQLite 12
3. РАЗРАБОТКА МОДЕЛИ 13
3.1. Взаимодействие пользователя с игрой 13
3.2. Объектное проектирование 14
3.2.1. Основные объекты игры 14
3.2.2. Класс подготовки и управления игровым процессом - Game 26
3.2.3. Представление объектов в интерфейсе игры 29
3.2.4. Представление модификаций игры 30
3.2.5. Диаграмма пакетов 34
3.2.6. Диаграмма классов 35
3.3. Проектирование модели поведения 38
3.3.1. Общий алгоритм подготовки игры и игрового процесса 38
3.3.2. Диаграмма состояний класса Game 39
4. ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ 40
4.1. Структура приложения 40
4.2. Проектирование компонентного состава приложения 41
4.2.1. Диаграмма компонентов приложения 41
4.2.2. Диаграмма компонентов проекта 42
5. РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ 45
5.1. Проект интерфейса основного окна 45
5.2. Проект интерфейса вспомогательных окон 47
5.2.1. Окно настроек игры 47
5.2.2. Окно рекордов 48
5.2.3. Окно выбора игры 49
5.2.4. Окно описания правил игры 50
5.3. Проект интерфейсных компонентов объектов игры 51
5.3.1. Компонент карты 51
5.3.2. Компонент стопки 52
5.4. Реализация алгоритмов 53
5.4.1. Подготовка и составление списка модификаций 53
5.4.2. Раздача пасьянса 53
5.4.3. Инициализация классов стопок 54
5.4.4. Анимация перемещения карт 54
5.4.5. Манипуляции игрока 55
ЗАКЛЮЧЕНИЕ 57
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 58
Приложение А - Связи реализации вариантов использования Solitair20 компонентами (окнами) интерфейса приложения 59
Пасьянс - карточная игра для одного человека (от фрацн. Patience - терпение). Целью любого пасьянса ставится достичь некоторого расположения карт на игровом поле. При этом для пасьянса установлен набор правил, по которым можно карты перекладывать между стопками. Цель игры также определяется правилами конкретного пасьянса. Результат игры достигается с помощью интеллектуальных усилий играющего. При формировании начального состояния игры (расклада) присутствует фактор случайности, что вносит разнообразие в процесс игры и делает каждый сеанс уникальным.
Одной из разновидности карточных пасьянсов является пасьянс под названием «Косынка». Данный пасьянс традиционно поставляется в составе развлекательной составляющей операционной системы семейства Windows, начиная еще с версии Windows 3.0. Также существует множество разновидностей данного вида пасьянсов.
В данной работе были рассмотрены принципы объектно-ориентированного проектирования приложений на примере приложения пасьянс «Косынка». Был произведен анализ данного пасьянса и его модификаций с последующей структурной декомпозицией на объекты и компоненты. В результате проведенного анализа была построена объектная модель пасьянсов типа «Косынка», охватывающая все его варианты. Построенная модель пасьянса позволила разработать Windows-приложение, которое характеризуется следующими результатами:
■ Современный стильный интерфейс;
■ Сохранение стандартных возможностей игры (подсчет очков, настройка внешнего вида);
■ Использование визуальных анимационных эффектов;
■ Единая объектная модель, позволяющая реализовать множество различных вариантов игры без ее изменения и без вмешательства в программный код приложения;
■ Автоматическое определение вариантов игры из соответствующей директории;
■ Ориентирование на конкретный вариант игры посредством считывания из структуры XML-файлов и настройки свойств и поведения объектов модели.
1. Албахари Джозеф- C#. Справочник. Полное описание языка. Пер. с англ. - М: ООО «И.Д. Вильямс», 6-е изд., 2016, 1040 с.
2. Андерсон К. - Основы Windows Presentation Foundation. Пер. с англ. А. Силикина - М.: ДМК Пресс, 2008, 432 с.
3. Бадд Т. Объектно-ориентированное программирование в действии/ Т. Бадд: пер. с англ. А. Бердникова СПб.: Питер, 1997, 460 с.
4. Медведев В.И. Особенности объектно-ориентированного программирования на C++/CLI, C# и Java. 2-е изд., испр. и доп. - Казань: РИЦ «Школа», 2010 - 444 с.
5. Петцольд Ч. - Microsoft Windows Presentation Foundation. Базовый курс, пер. с англ. Е. Матвеев: - М.: Издательство «Русская Редакция»; СПб.: Питер, 2008, 944 с.
6. Пискунов А.Г. Неполное Руководство по SQLite для пользователей Windows, 2015, Пер.: А.Г.Пискунов, ua.agpl.SQLite.AllOw 0.70 - 119 с.
7. Andrew Troelsen - Pro C# 5.0 and the .NET 4.5 Framework: Apress, 6th edition: NY, 2012, 1534 p.
8. Jay A. Kreibich. Using SQLite. - O’Reilly Media, Inc., First Edition - 2010, 528 p.
9. Svetlin Nakov & Co. - Fundamentals of computer programming with C#. The Bulgarian C# book: - Sofia, 2013, 1122 p.
10. Visual Paradigm for UML 13. User’s guide: Software documentation - user’s manual - 1485 p.
11. UML 2.0. Superstructure specification. - Final adopted specification - ptc/03-08- 02; 2003, 640 p.
12. Введение в C# - [Электронный ресурс]:https://metanit.com/sharp/(дата
обращения: 29.12.2016)
13. Пасьянс - Википедия. [Электронный ресурс]:
https: //ru.wikipedia. org/wiki/Пасьянс(дата обращения: 29.12.2016)
14.SQLite - Википедия. [Электронный ресурс]:
https://ru.wikipedia.org/wiki/SQLite(дата обращения: 29.12.2016)