Игра 'Пятнашки'
Введение
Развитие вычислительной техники
тесно связано с развитием игровой индустрии.
Компьютерные игры берут свое начало
в 50-ые года двадцатого века. Сегодня игровая общественность до конца не
определилась, кто является их первоначальным создателем. История знает трех
человек, которые в 1950-ые годы начинали работать над данным вопросом. Первым
из этих людей является Ральф Баэр. Будучи инженером, в 1951 году он предложил
общественности идею интерактивного телевиденья. Вторым человеком является А.С.
Дуглас. В 1952 году им была написана игра, получившая название «ОХО». Данная
игра представляла собой программную реализацию всем известных
«крестиков-ноликов». И третьим человеком, которого можно назвать отцом
компьютерных игр, является Уильям Хигинботем. В 1958 году он создал
компьютерную игру «Теннис». В нее могли играть два человека.
История компьютерных игр развивалась
достаточно медленно. Мы приведем вам хронологии основных событий, которые
покажут вам основные шаги и этапы развития игровой компьютерной индустрии.
В 1960 году компанией Digital
Equipment Corporation был выпущен первый компьютер серии PDP. Он получил
название PDP-1. Спустя 2 года, в 1962 году для него была разработана первая
компьютерная игра, которую разработчик назвал Space War.
В 1970 году выдается патент на
компьютерный манипулятор, без которого сейчас не может обойтись не один игрок.
Речь идет о компьютерной мышке. Человека, получившего патент, звали Дуглас
Энгельбарт.
год стало годом проявления интереса
к компьютерным играм со стороны общественности. Уильям Кроутер создает игру,
которая является прообразом приключенческого жанра и называет ее Colossal Cave
Adventure. Данная игра распространяется моментально через сеть ArpaNET.
Начиная с 1977 года, различные
разработчики выпускают все больше и больше новых компьютерных игр, которые в
последствии значительно ускорят развитие персональных компьютеров.
В 80-е годы в связи с заметным
удешевлением домашних компьютеров (спасибо IBM), рынок компьютерных игр стал
быстро расти. Сейчас можно сказать, что именно в 1980-х наступила эпоха
компьютерных игр. Появилось множество компаний занимающихся исключительно
разработкой игр. Компания Namco выпускает игру Pac-Man, суть которой сводилась
к управлению непонятным существом, которое должно было собирать разбросанные по
лабиринту точки, уклоняясь от врагов. Идея данной игры жива до сих пор и часто
находит свое выражение на мобильных платформах.
В 1987 году появился видеоадаптер
VGA, а следом SVGA. Эти события отправили в прошлое 16 цветное царство. Теперь
на мониторах 256 цветов, что естественно сделало игры более красочными и
относительно похожими на современные.
Начинания с 90-х бум компьютерных
игр стал только набирать обороты, а индустрия расти и расти. В 1993 году 10
декабря компанией Id Software, был выпущен великий Doom. Игра, которая заложила
основы жанра шутер.
В 1994 году появилась первая игра с
мультиплеером - Rise of the Triad. А на следующий год появляется The
Terminator: Future Shock, первый шутер с элементами трехмерности мира и врагов,
а так же свободным обзором при помощи мышки.
В 1996 году на свет появилась Voodoo
I - первая видео карта с поддержкой полноценного 3D. Это позволило выпустить
Duke Nukem 3D и Quake - первые полностью трехмерные игры. Так же в этом году
появились такие игры, как Super Mario, Command & Conquer: Red Alert, Tomb
Raider, Resident Evil, Diablo и многие другие.
В 1998 году появляются Half-life и
StarCraft. Игры, не теряющие популярности до сих пор, спустя уже 12 лет!
В первом десятилетии 21-го века
игровая индустрия идет вперед семи мильными шагами. Ежегодно выпускаются тысячи
игр, расходящиеся по всему миру миллионами копий, а оборот составляет десятки
миллиардов долларов. Замедление, вызванное мировым финансовым кризисом,
постепенно уходит, и индустрия вновь набирает обороты.
Развитие компьютеров тесно связанно
с развитием игр. Именно для них создаются мощные видеокарты, процессоры, растет
объем доступной оперативной памяти. Существует даже мнение, и весьма не
безосновательное, что компьютеры стали такими, какими мы их знаем именно
благодаря играм.
Игровую индустрию уже нельзя не
воспринимать всерьез. Ее развитие и рост не видит разве что слепой. Стоит
только взглянуть на игровые выставки (GamesCon, GamesCom, E3, QuakeCon и т.д.),
которые по размаху не уступают кинофестивалям. Растут также запросы и
требования игроков. Современный геймер ждет реалистичной и детализированной
картинки, глубины сюжета, внимательности к деталям, зрелищности и качества боев
и перестрелок (в отличие от времен Mario и Танчиков на NES, когда от игры ждали
только веселья и развлечения). К тому же игровая индустрия - отличное место для
поиска работы. Компании разработчики / издатели постоянно набирают специалистов
на разнообразные должности. Этот рынок труда является довольно широким и
быстрорастущим. Штабы игровых компаний постоянно растут, растут вместе с
индустрией. В таких компаниях требуются и программисты (разработка кода, движка
игры), и сценаристы (создание сюжета проектов), и PR-щики, и менеджеры, и
репортеры (так как игровая индустрия без игровой прессы никуда) и т.д. Это
также демонстрирует важность и универсальность индустрии цифровых развлечений.
Игровая индустрия - важная часть
современного мира, и она не перестает расти и развиваться, что ведет за собой
расширение ее сфер влияния. Это выгодный современный рынок, имеющий свои
особенности, колебания, своих монополистов и гигантов. И, в конце концов,
продукция этой индустрии не перестает радовать нас - геймеров!
Разработанное мной приложение имеет
непосредственное отношение к игровой индустрии. Итак, перейдём к теме моего
курсового проекта, который называется «Игра в 15».
1. Постановочная часть
.1 Формулировка задачи
«Игра в 15» будет разработана по
канонам жанра логических игр для развлечения, и с целью развития у
пользователей способности к логическому мышлению.
Игра будет рассчитана на двух
пользователей, и использовать функцию подсчёта суммы закрытых чисел для каждого
игрока. Планируется организация управления мышью. Будет предусмотрено создание
главного меню, и окна статистики с количеством побед и проигрышей для каждого
игрока. Также, планируется организация смены цветов клеток, в зависимости от
того, какой игрок закрывает данное число.
Фрагменты
разрабатываемого ПО:
ПО планируется разделить на 3
фрагмента:
Ø Главное
меню - раздел, в котором будет осуществляться управление программой:
Начать игру, Статистика, Выход.
Ø Окно
игры - окно, в котором будут расположены
цифры.
Ø Окно
статистики - окно, в котором выводится
количество побед и поражений каждого игрока.
Функции программы:
Двое игроков играют в следующую
игру. На бумаге выписаны числа от 1 до 9. Игроки по очереди закрывают по одному
числу фишкой своего цвета. 1 игрок - жёлтый, 2 игрок - зелёный. Выигрывает тот
игрок, который закроет фишкой своего цвета три числа, сумма которых будет равна
15. Пользователь может закрыть большее количество чисел, в таком случае,
необходимо, чтобы сумма хотя бы одной из троек чисел была равна 15. После
окончания игры выводится сообщение с информацией о выигравшем игроке. Также,
после завершения игры можно посмотреть окно статистики с количеством побед и
поражений 1 и 2 игрока.
Количество пользователей
программы: два пользователя.
Для любого пользователя
доступ: одинаковый.
Каждому пользователю
будет необходимо: прочитать инструкцию
пользования данной игры.
.2 Требования к
интерфейсу разрабатываемого программного продукта
интерфейс пользователь
программный идентификатор
Интерфейс - это внешний вид программного продукта.
Программа должна работать в оконном
режиме и иметь несколько окон:
Ø Главное
меню;
Ø Окно
игры;
Ø Окно
статистики;
В окне главного меню должны
находиться:
Ø Заголовок
программы;
Ø Кнопка
«Начать игру»;
Ø Кнопка
«Статистика»
Ø Кнопка
«Выход»;
В окне игры находятся:
Ø Панели
с цифрами;
В окне статистики должны находиться:
Ø Количество
побед и поражений каждого игрока;
2. Проектная часть
.1 Описание алгоритмов
Схема 2.1.1 «Ход 1
игрока»
Схема 2.1.2 «Ход 2
игрока»
Схема 2.1.3«Начало
новой игры»
.2 Таблица
идентификаторов
Таблица 2.2.1
Идентификатор
|
Смысловое содержание
|
Тип
|
Разрядность
|
q
|
Переменная, определяющая очередь хода
|
Integer
|
4
байт
|
n
|
Переменная, увеличивающая значение при закрытии панели 1 игроком
|
Integer
|
m
|
Переменная, увеличивающая значение при закрытии панели 2 игроком
|
integer
|
4 байт
|
i
|
Переменная, обозначающая количество цифр, закрытых 1 игроком
|
Integer
|
4 байт
|
j
|
Переменная, обозначающая количество цифр, закрытых 2 игроком
|
Integer
|
4
байт
|
pob
|
Счётчик побед 1 игрока
|
Integer
|
4 байт
|
pob1
|
Счётчик побед 2 игрока
|
Integer
|
4 байт
|
por
|
Счётчик поражений 1 игрока
|
Integer
|
4
байт
|
por1
|
Счётчик поражений 2 игрока
|
Integer
|
4
байт
|
s
|
Запоминает позицию выбранной цифры во всём ряду для 1 игрока
|
String
|
256
байт
|
s1
|
Запоминает позицию выбранной цифры во всём ряду для 2 игрока
|
String
|
256
байт
|
Таблица 2.2.2
Pob
|
Выводит число побед 1 игрока
|
String
|
256
байт
|
Pob1
|
Выводит число побед 2 игрока
|
String
|
256
байт
|
Por
|
Выводит число поражений 1 игрока
|
String
|
256
байт
|
Por1
|
Выводит число поражений 2 игрока
|
String
|
256
байт
|
2.3 Организация
интерфейса пользователя
В игре есть 3 окна, это:
Ø Главное
меню;
Ø Окно
игры;
Ø Окно
статистики;
В главном меню
расположены:
Ø Заголовок;
Ø Кнопка
«Начать игру»;
Ø Кнопка
«Статистика»;
Ø Кнопка
«Выход»;
Рисунок 2.3.1
В окне игры расположены:
Ø Панели
с цифрами;
Рисунок 2.3.2
В окне «Статистика»
расположены:
Ø Текст с
количеством побед и поражений;
Рисунок 2.3.3
2.4 Используемые объекты
Таблица 2.4.1
Идентификатор объекта
|
Тип объекта
|
Общее назначение объекта
|
Используемые свойства и методы объекта
|
Описание свойств
|
MainMenu1
|
TMainMenu
|
Главное меню
|
Items
|
Содержит список строк
|
|
|
|
Caption
|
Заголовок
|
Panel1..9
|
TPanel
|
Панель
|
Enabled
|
Доступность на определённом этапе выполнения
|
|
|
|
Color
|
Изменение цвета
|
|
|
|
Font
|
Шрифт метки на панели
|
Label1..9
|
TLabel
|
Текстовая метка
|
Transparent
|
Прозрачность
|
|
|
|
Caption
|
Заголовок
|
|
|
|
Font
|
Шрифт
|
Button1..3
|
TButton
|
Кнопка
|
Font
|
Шрифт метки на кнопке
|
|
|
|
Caption
|
Заголовок
|
|
|
|
|
|
3. Инструментальные
средства реализации курсового проекта
.1 Краткая
характеристика операционной системы
Операционная система: Windows 7 Максимальная.
Разрядность: 32 bit
Краткое описание: Windows 7 - операционная система семейства Windows NT, следующая
за Windows Vista. В линейке Windows NT система носит номер версии 6.1 (Windows
2000 - 5.0, Windows XP - 5.1, Windows Server 2003 - 5.2, Windows Vista и
Windows Server 2008 - 6.0). Операционная система поступила в продажу 25 октября
2009 года, меньше чем через три года после выпуска предыдущей операционной
системы, Windows Vista. Хотя изначально операционная система должна была
поступить в продажу уже 31 августа 2009 года. Финальная нелицензионная версия
(копия с дисков, которые потом пошли в продажу) была доступна всем с первых
чисел августа 2009 года. В состав Windows 7 вошли как некоторые разработки,
исключённые из Windows Vista, так и новшества в интерфейсе и встроенных
программах. Из состава Windows 7 были исключены игры Inkball, Ultimate Extras;
приложения, имеющие аналоги в Windows Live (Почта Windows, Календарь Windows и
пр.), технология Microsoft Agent, Windows Meeting Space; из меню «Пуск» исчезла
возможность вернуться к классическому меню и автоматическая пристыковка
браузера и клиента электронной почты. Windows 7 стала самой продаваемой операционной системой в истории Microsoft. Дистрибутив с
операционной системой содержит набор драйверов, который подходит практически
для любой материнской платы, видеоадаптера и аудиокарты. Можно просто
установить Windows 7 и не искать по старым коробкам диски, чтобы на компьютере
появился звук и настроилось изображение - все уже предусмотрено. Для Windows 7 подойдет даже
процессор всего на 1 ГГц, оперативная память объемом в 1 Гб и обычная
видеокарта с поддержкой DirectX 9. Также в Windows 7 есть Windows Media Player
12, который поддерживает такие популярные кодеки, как AAC, divx, xvid и. 264.
Обновленная версия браузера Internet Explorer 8 (со встроенным
InPrivateBrowsing, управляющим cookies и кэшированными данными) более удобна,
отличается отличной производительностью и повышенной безопасностью. Обновленный
Wordpad позволяет теперь работать не только с текстовыми документами с
расширением.doc.docx.odt, но и имеет новые опции.
.2 Краткая
характеристика языка программирования
Выбранный язык
программирования: В качестве языка
программирования был выбран язык Delphi.
Определения и
назначение: Delphi 7 - это объектно-ориентированная
среда визуального программирования, который используется в одноимённой среде
разработки. Название используется начиная с 7 версии среды разработки, ранее
это был Object Pascal, разработанный фирмой Borland и изначально реализованный
в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее
название. Object Pascal по сути является наследником языка Pascal с
объектно-ориентированными расширениями.- чрезвычайно мощная система разработки
прикладных программ для Windows. Она все увереннее завоевывает ведущие позиции
в нашей стране как среди профессиональных программистов, так и среди людей,
никогда профессионально программированием не занимавшихся. Профессионалы
используют Delphi для построения сложных приложений с распределенными базами
данных и для многих других целей. Специалисты самых разных специальностей (не
программисты) создают с помощью Delphi небольшие прикладные программы для
решения своих профессиональных задач и радуются, что, не владея всерьез
программированием, могут создавать интерфейс, неотличимый от привычного
интерфейса Windows. Студенты (не программисты) выполняют с помощью Delphi свои
курсовые и дипломные проекты. Сейчас уже есть даже средние школы, в которых
начинают знакомить с работой в среде Delphi.
Delphi предназначена для ускоренной разработки высокопроизводительных
32-битных приложений, которые могут работать в среде Windows или Linux. При
этом Delphi позволяет свести к минимуму объем вводимого вручную программного
кода. В состав Delphi входят средства, необходимые для разработки, тестирования
и установки приложений, включая обширную библиотеку компонентов (VCL - Visual
Components Library), средства визуального проектирования, шаблоны приложений и
форм, а также различные мастерa.
История: Delphi - результат развития языка Turbo Pascal, который, в свою
очередь, развился из языка Pascal. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная
с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object
Pascal - динамическую идентификацию типа данных с возможностью доступа к
метаданным классов (то есть к описанию классов и их членов) в компилируемом
коде, также называемом интроспекцией - данная технология получила обозначение
RTTI. Так как все классы наследуют функции базового класса TObject, то любой
указатель на объект можно преобразовать к нему, после чего воспользоваться
методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Object
Pascal (Delphi) является результатом функционального расширения Turbo Pascal.
Ø Версия
1 была предназначена для разработки под 16-разрядную платформу Win16;
Ø Версии
со второй компилируют программы под 32-разрядную платформу Win32;
Ø Вместе
с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда
Kylix, предназначенная для компиляции программ под операционную систему Linux;
Ø Версия
8 способна генерировать байт-код исключительно для платформы.NET. Это первая
среда, ориентированная на разработку мультиязычных приложений (лишь для
платформы.NET);
Ø Последующие
версии (обозначаемые годами выхода, а не порядковыми номерами, как это было
ранее) могут создавать как приложения Win32, так и байт-код для
платформы.NET.for.NET - среда разработки Delphi, а также язык Delphi (Object
Pascal), ориентированные на разработку приложений для.NET.
Первая версия полноценной среды
разработки Delphi для.NET - Delphi 8. Она позволяла писать приложения только
для.NET.
В настоящее время, в Delphi 2006,
можно писать приложения для.NET, используя стандартную библиотеку классов.NET,
VCL для.NET. Среда также позволяет создавать.NET-приложения на C# и
Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных
приложений с использованием библиотек VCL и CLX.2006 поддерживает технологию
MDA с помощью ECO (Enterprise Core
Objects) версии 3.0.
В марте 2006 года компания Borland
приняла решение о прекращении дальнейшего совершенствования интегрированных
сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого
направления. Планировалась продажа IDE-сектора компании. Группа сторонников
свободного программного обеспечения организовала сбор средств для покупки у
Borland прав на среду разработки и компилятор.
Однако в ноябре того же года было
принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой
IDE продуктов теперь будет заниматься новая компания - CodeGear, которая будет
финансово полностью подконтрольна Borland.
В августе 2006 года Borland выпустил
облегченные версию RAD Studio под именем Turbo: Turbo
Delphi (для Win32 и.NET), Turbo C#, Turbo
C++.
В марте 2008 года было объявлено о
прекращении развития этой линейки продуктов.
В марте 2007 года CodeGear
порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и
выходом совершенно нового продукта Delphi 2007 for PHP.
В июне 2007 года CodeGear представила
свои планы на будущее, то есть опубликовала так называемый roadmap.
августа 2008 года компания
Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for
Win32 2009. Версия принесла множество нововведений в язык, как то:
Ø По умолчанию
полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко
всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает
MessageBoxW, а не MessageBoxA).
Ø Обобщённые
типы, они же generics.
Ø Анонимные
методы.
Ø Новая директива
компилятора $POINTERMATH [ON|OFF].
Объектно-ориентированные
особенности языка:
Инкапсуляция
Объединение и скрытие объектных
данных, а также обрабатывающих их методов внутри конкретного класса от
пользователя называется инкапсуляцией.
Наследование
При создании новых объектов получить
все свойства и методы от своих предков называют наследованием. Такие объекты
унаследывают после своего создания все поля, свойства, события, методы и прочее
от своих предков. Наследование часто избавляет разработчиков от рутинной работы
и позволяет не мешкая приступить к разработке чего-то нового.
Полиморфизм
Это методы различных объектов,
которые могут иметь одинаковые имена, но по внутреннему содержимому отличаются
друг от друга. Подобная технология используется при создании компьютерного
вируса.
Операторы
список операторов через пробел: + -
* / div mod not and or xor shl shr ^ = <> >= <= < > @ in is as
.3 Краткая
характеристика других использованных средств
интерфейс пользователь
программный идентификатор
Для создания файла справки
использовалась программа Help & Manual. Help & Manual позволяет создавать документы в различных help-форматах. Для удобства
их создания в программу встроен WYSIWYG редактор. Все созданные проекты можно
сохранить в различных форматах: HTML Help, Winhelp и MS Help 2.0 / Visual
Studio Help, Browser-based Help, PDF и Word RTF, а также печатной документации
при использовании одного и того же проекта. Кроме этого, программа позволяет
конвертировать help-файлы из одного формата в другой. Помимо программ для
работы с текстом в Help & Manual включены утилиты для создания скриншотов и
редактирования графических файлов.
Для создания пояснительной записки к
приложению была использована программа Microsoft Word из пакета Microsoft Office. Microsoft Word (часто
- MS Word, WinWord или просто Word) - это текстовый процессор, предназначенный
для создания, просмотра и редактирования текстовых документов, с локальным
применением простейших форм таблично-матричных алгоритмов. Первая версия была
написана Ричардом Броди (Richard Brodie) для IBM PC, использующих DOS, в 1983
году. Позднее выпускались версии для Apple Macintosh (1984), SCO UNIX и
Microsoft Windows (1989). Microsoft Word является наиболее популярным из
используемых в данный момент текстовых процессоров, что сделало его бинарный
формат документа стандартом де-факто, и многие конкурирующие программы имеют
поддержку совместимости с данным форматом. Расширение «.doc» на платформе IBM
PC стало синонимом двоичного формата Word 97-2000. Фильтры экспорта и импорта в
данный формат присутствуют в большинстве текстовых процессоров.
4. Эксплуатация
.1 Требования к
аппаратному обеспечению
Требования к минимальной
конфигурации аппаратных ресурсов:
Ø персональная ЭВМ с установленной операционной системой Windows
95/98/ME/2000/XP/Vista/7;
Ø для
корректной работы программы для всех устройств ЭВМ должны быть установлены
драйвера;
Ø минимальный размер RAM должен составлять 32 мегабайт;
Ø 1,25 мегабайт свободного дискового пространства;
Ø Процессор
750 Hz;
Перечень необходимых
внешних устройств:
Ø манипулятор
мышь
- для выбора цифр, нажатия кнопок и многого другого;
Ø монитор;
.2 Инструкции
пользователю
Правила игры
Два игрока играют в следующую игру:
на бумаге выписаны числа от 1 до 9. Игроки по очереди закрашивают любую из цифр
своим цветом. Выигрывает тот участник, который первым закрасит своим цветом 3
числа, сумма которых равна 15 (если игрок закрасил больше трёх чисел, то он
выигрывает, если сумма хотя бы одной из троек чисел равна 15). Вести статистику
количества выигранных и проигранных игр для каждого игрока.
Управление в игре
Управление в игре осуществляется
исключительно мышью.
Для того чтобы в процессе игры
выполнить выбор цифры, необходимо щёлкнуть по ней левой кнопкой мыши. После
этого цифра выделится цветом, в зависимости от того, какой игрок совершает ход.
1 игрок - жёлтый цвет.
2 игрок - зелёный цвет.
Рисунок 4.2.1
Окна игры
Подразделы:
· Главное меню;
· Окно игры;
· Окно статистики;
Главное меню
Рисунок 4.2.3
Элементы окна:
) Заголовок приложения.
) Кнопка «Начать игру». Данная
кнопка показывает окно игры.
) Кнопка «Статистика». Данная кнопка
выводит окно статистики.
) Кнопка «Выход. Данная кнопка
производит закрытие приложения.
Окно игры
Рисунок 4.2.6
Элементы окна:
1) 9 панелей с цифрами. Их цвет
меняется в зависимости от очерёдности нажатия.
) Имя игрока, чей ход ожидается в
данный момент.
) Меню «Игра».
При нажатии открывается меню игры.
Рисунок 4.2.9
Здесь есть 3 кнопки:
а) Новая игра
В случае если в данный момент идет
партия игры, то при нажатии на кнопку «Новая игра» партия начнётся
заново. Все панели с цифрами вернутся в исходное состояние.
б) Статистика
После нажатия этой кнопки на экране
монитора появится окно «Статистика»:
в) Выход
После нажатия данной кнопки окно
игры будет закрыто, и будет доступно главное меню.
) Меню «Справка».
При нажатии открывается меню
справки:
Рисунок 4.2.13
Окно статистики
Рисунок 4.2.14
Элементы окна:
1) Список игроков.
) Количество побед выбранного
игрока.
) Количество поражений выбранного
игрока.
Таблица 4.2.1. Сообщения оператору
Сообщения оператору
|
Действия оператора
|
Рисунок 4.2.15Причина появления: Такое
сообщение появляется в случае, если 1 игрок победил в игровой партии.
Действие, которое необходимо предпринять: Необходимо нажать кнопку «Ок».
|
|
Рисунок 4.2.16Причина появления: Такое
сообщение появляется в случае, если 2 игрок победил в игровой партии. Действие,
которое необходимо предпринять: Необходимо нажать кнопку «Ок».
|
|
Заключение
Во время курсового проектирования я
разработал игровое приложение «Игра в 15». За весь период проектирования я
расширил свои познания в среде программирования Delphi, подкрепил свои знания
теории практикой, открыл для себя новые свойства некоторых компонентов, и научился
работать с событиями компонентов и форм.
Также, мною была изучена возможность
установки новых компонентов.
В ходе курсового проектирования я
использовал программу Help & Manual для создания файла справки, который был интегрирован моё
приложение.
Немаловажным остаётся и тот факт,
что игровое приложение «Игра в 15» имеет все основания быть доработанным и
усовершенствованным как в плане оптимизации и функциональности, так и в плане
удобства пользования и оформления пользовательского интерфейса.
Список использованной
литературы
1. Культин Н.
Самоучитель Delphi 4. Программирование на Object Pascal. - СПб.: БХВ -
Санкт-Петербург, 1999. -480 с., ил.
. Архангельский А.Я.
Разработка прикладных программ для Windows в Delphi 5. - М.: ЗАО «Издательство БИНОМ», 1999. - 256 с.: ил. (Все
о Delphi)
Приложение
Модуль Unit1.pas
var: TForm1;, n, m, i,
j, pob, pob1, por, por1: integer;, s1: string;
Unit2, Unit3;
{$R *.dfm}
TForm1. Panel1Click
(Sender: TObject);:=q+1;q mod 2=1 then begin. Color:=clyellow;:=i+1;:=n+1;:=s+'1';i=4
then(strtoint (s[1])+strtoint (s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;.
Show;;i=3 thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q mod 2=0 then.
Color:=clgreen;:=j+1;:=m+1;:=s1+'1';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
then
m=15 then begin
showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;
;
TForm1. Panel2Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel2.
Color:=clyellow;:=i+1;:=n+2;:=s+'2';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel2.
Color:=clgreen;:=j+1;:=m+2;:=s1+'2';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel3Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel3.
Color:=clyellow;:=i+1;:=n+3;:=s+'3';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel3.
Color:=clgreen;:=j+1;:=m+3;:=s1+'3';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel4Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel4.
Color:=clyellow;:=i+1;:=n+4;:=s+'4';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel4.
Color:=clgreen;:=j+1;:=m+4;:=s1+'4';i=4 then(strtoint (s1 [1])+strtoint (s1 [2])+strtoint
(s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel5Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel5.
Color:=clyellow;:=i+1;:=n+5;:=s+'5';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel5.
Color:=clgreen;:=j+1;:=m+5;:=s1+'5';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel6Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel6.
Color:=clyellow;:=i+1;:=n+6;:=s+'6';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin(' 1 игрок победил');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel6.
Color:=clgreen;:=j+1;:=m+6;:=s1+'6';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel7Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel7.
Color:=clyellow;:=i+1;:=n+7;:=s+'7';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel7.
Color:=clgreen;:=j+1;:=m+7;:=s1+'7';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel8Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel8. Color:=clyellow;:=i+1;:=n+8;:=s+'8';i=4
then(strtoint (s[1])+strtoint (s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;i=3
thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q mod 2=0 thenpanel8.
Color:=clgreen;:=j+1;:=m+8;:=s1+'8';i=4 then(strtoint (s1 [1])+strtoint (s1
[2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;j=3
thenm=15 then begin showmessage (' 2 игрок победил!');:=pob1+1;:=por+1;;;. Enabled:=false;;
TForm1. Panel9Click
(Sender: TObject);:=q+1;q mod 2=1 thenpanel9.
Color:=clyellow;:=i+1;:=n+9;:=s+'9';i=4 then(strtoint (s[1])+strtoint
(s[2])+strtoint (s[3])=15) or
(strtoint
(s[1])+strtoint (s[2])+strtoint (s[4])=15) or
(strtoint
(s[2])+strtoint (s[3])+strtoint (s[4])=15) or
(strtoint
(s[1])+strtoint (s[3])+strtoint (s[4])=15) then(' 1 игрок
победил!');:=pob+1;:=por1+1;;i=3 thenn=15 then begin showmessage (' 1 игрок победил!');:=pob+1;:=por1+1;;;q
mod 2=0 thenpanel9. Color:=clgreen;:=j+1;:=m+9;:=s1+'9';i=4 then(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [3])=15) or
(strtoint (s1
[1])+strtoint (s1 [2])+strtoint (s1 [4])=15) or
(strtoint (s1
[2])+strtoint (s1 [3])+strtoint (s1 [4])=15) or
(strtoint (s1
[1])+strtoint (s1 [3])+strtoint (s1 [4])=15) then begin (' 2 игрок победил!');
pob1:=pob1+1;:=por+1;;j=3
thenm=15 then begin (' 2 игрок победил!');
pob1:=pob1+1;:=por+1;;;.
Enabled:=false;;
TForm1.N4Click (Sender:
TObject);;;
TForm1. Button1Click
(Sender: TObject);.hide;;
TForm1. FormActivate
(Sender: TObject);r:integer;:=0;:=0;:=0;:=0;:=0;:='';:='';
r:=1 to 9 do begin
(FindComponent
('panel'+inttostr(r)) as TPanel).Color:=clBtnFace;
(FindComponent
('panel'+inttostr(r)) as TPanel).Enabled:=true;;;
TForm1. Button3Click
(Sender: TObject);. Close;;
TForm1. Button2Click
(Sender: TObject);.label5. Caption:=inttostr(pob);.label7.
Caption:=inttostr(pob1);.label6. Caption:=inttostr(por);.label8.
Caption:=inttostr(por1);.show;;
TForm1.N2Click (Sender:
TObject);. Hide;. Show;;
TForm1.N3Click (Sender:
TObject);.label5. Caption:=inttostr(pob);.label7.
Caption:=inttostr(pob1);.label6. Caption:=inttostr(por);.label8.
Caption:=inttostr(por1);.show;;;
Модуль Unit2.pas
var: TForm2;
Unit1, Unit3;
{$R *.dfm}
TForm2. Button1Click
(Sender: TObject);.show;;
TForm2. Button2Click
(Sender: TObject);;;
TForm2. Button3Click
(Sender: TObject);.show;;.
Модуль Unit3.pas
var: TForm3;, pob1, por,
por1: string;
{$R *.dfm}
TForm3. Label5Click
(Sender: TObject);. Caption:=pob;;
TForm3. Label6Click
(Sender: TObject);. Caption:=por;;
TForm3. Label7Click
(Sender: TObject);. Caption:=pob1;;
procedure TForm3.
Label8Click (Sender: TObject);. Caption:=por1;;
.