Игра «Пятнашки»
Для создания пояснительной записки к приложению была использована программа Microsoft Word из пакета Microsoft Office. Microsoft Word (часто — MS Word, WinWord или просто Word) — это текстовый процессор, предназначенный для создания, просмотра и редактирования текстовых документов, с локальным применением простейших форм таблично-матричных алгоритмов. Первая версия была написана Ричардом Броди… Читать ещё >
Игра «Пятнашки» (реферат, курсовая, диплом, контрольная)
Развитие вычислительной техники тесно связано с развитием игровой индустрии.
Компьютерные игры берут свое начало в 50-ые года двадцатого века. Сегодня игровая общественность до конца не определилась, кто является их первоначальным создателем. История знает трех человек, которые в 1950;ые годы начинали работать над данным вопросом. Первым из этих людей является Ральф Баэр. Будучи инженером, в 1951 году он предложил общественности идею интерактивного телевиденья. Вторым человеком является А. С. Дуглас. В 1952 году им была написана игра, получившая название «ОХО». Данная игра представляла собой программную реализацию всем известных «крестиков-ноликов». И третьим человеком, которого можно назвать отцом компьютерных игр, является Уильям Хигинботем. В 1958 году он создал компьютерную игру «Теннис». В нее могли играть два человека.
История компьютерных игр развивалась достаточно медленно. Мы приведем вам хронологии основных событий, которые покажут вам основные шаги и этапы развития игровой компьютерной индустрии.
В 1960 году компанией Digital Equipment Corporation был выпущен первый компьютер серии PDP. Он получил название PDP-1. Спустя 2 года, в 1962 году для него была разработана первая компьютерная игра, которую разработчик назвал Space War.
В 1970 году выдается патент на компьютерный манипулятор, без которого сейчас не может обойтись не один игрок. Речь идет о компьютерной мышке. Человека, получившего патент, звали Дуглас Энгельбарт.
1975 год стало годом проявления интереса к компьютерным играм со стороны общественности. Уильям Кроутер создает игру, которая является прообразом приключенческого жанра и называет ее 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.1 Формулировка задачи
«Игра в 15» будет разработана по канонам жанра логических игр для развлечения, и с целью развития у пользователей способности к логическому мышлению.
Игра будет рассчитана на двух пользователей, и использовать функцию подсчёта суммы закрытых чисел для каждого игрока. Планируется организация управления мышью. Будет предусмотрено создание главного меню, и окна статистики с количеством побед и проигрышей для каждого игрока. Также, планируется организация смены цветов клеток, в зависимости от того, какой игрок закрывает данное число.
Фрагменты разрабатываемого ПО:
ПО планируется разделить на 3 фрагмента:
Ш Главное меню — раздел, в котором будет осуществляться управление программой: Начать игру, Статистика, Выход.
Ш Окно игры — окно, в котором будут расположены цифры.
Ш Окно статистики — окно, в котором выводится количество побед и поражений каждого игрока.
Функции программы:
Двое игроков играют в следующую игру. На бумаге выписаны числа от 1 до 9. Игроки по очереди закрывают по одному числу фишкой своего цвета. 1 игрок — жёлтый, 2 игрок — зелёный. Выигрывает тот игрок, который закроет фишкой своего цвета три числа, сумма которых будет равна 15. Пользователь может закрыть большее количество чисел, в таком случае, необходимо, чтобы сумма хотя бы одной из троек чисел была равна 15. После окончания игры выводится сообщение с информацией о выигравшем игроке. Также, после завершения игры можно посмотреть окно статистики с количеством побед и поражений 1 и 2 игрока.
Количество пользователей программы: два пользователя.
Для любого пользователя доступ: одинаковый.
Каждому пользователю будет необходимо: прочитать инструкцию пользования данной игры.
1.2 Требования к интерфейсу разрабатываемого программного продукта
интерфейс пользователь программный идентификатор
Интерфейс — это внешний вид программного продукта.
Программа должна работать в оконном режиме и иметь несколько окон:
Ш Главное меню;
Ш Окно игры;
Ш Окно статистики;
В окне главного меню должны находиться:
Ш Заголовок программы;
Ш Кнопка «Начать игру»;
Ш Кнопка «Статистика»
Ш Кнопка «Выход»;
В окне игры находятся:
Ш Панели с цифрами;
В окне статистики должны находиться:
Ш Количество побед и поражений каждого игрока;
2. Проектная часть
2.1 Описание алгоритмов
Схема 2.1.1 «Ход 1 игрока»
Схема 2.1.2 «Ход 2 игрока»
Схема 2.1.3"Начало новой игры"
2.2 Таблица идентификаторов
Таблица 2.2.1
Идентификатор | Смысловое содержание | Тип | Разрядность | |
q | Переменная, определяющая очередь хода | Integer | 4 байт | |
n | Переменная, увеличивающая значение при закрытии панели 1 игроком | Integer | 4 байт | |
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. Инструментальные средства реализации курсового проекта
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, но и имеет новые опции.
3.2 Краткая характеристика языка программирования
Выбранный язык программирования: В качестве языка программирования был выбран язык Delphi.
Определения и назначение: Delphi 7 — это объектно-ориентированная среда визуального программирования, который используется в одноимённой среде разработки. Название используется начиная с 7 версии среды разработки, ранее это был Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal по сути является наследником языка Pascal с объектно-ориентированными расширениями.
Delphi — чрезвычайно мощная система разработки прикладных программ для 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.
Delphi 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.
Delphi 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.
25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. Версия принесла множество нововведений в язык, как то:
Ш По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA).
Ш Обобщённые типы, они же generics.
Ш Анонимные методы.
Ш Новая директива компилятора $POINTERMATH [ON|OFF].
Ш Функция Exit теперь может принимать параметры в соответствии с типом функции.
Объектно-ориентированные особенности языка:
Инкапсуляция
Объединение и скрытие объектных данных, а также обрабатывающих их методов внутри конкретного класса от пользователя называется инкапсуляцией.
Наследование
При создании новых объектов получить все свойства и методы от своих предков называют наследованием. Такие объекты унаследывают после своего создания все поля, свойства, события, методы и прочее от своих предков. Наследование часто избавляет разработчиков от рутинной работы и позволяет не мешкая приступить к разработке чего-то нового.
Полиморфизм
Это методы различных объектов, которые могут иметь одинаковые имена, но по внутреннему содержимому отличаются друг от друга. Подобная технология используется при создании компьютерного вируса.
Операторы
список операторов через пробел: + - * / div mod not and or xor shl shr ^ = <> >= <= < > @ in is as
3.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. Эксплуатация
4.1 Требования к аппаратному обеспечению
Требования к минимальной конфигурации аппаратных ресурсов:
Ш персональная ЭВМ с установленной операционной системой Windows 95/98/ME/2000/XP/Vista/7;
Ш для корректной работы программы для всех устройств ЭВМ должны быть установлены драйвера;
Ш минимальный размер RAM должен составлять 32 мегабайт;
Ш 1,25 мегабайт свободного дискового пространства;
Ш Процессор 750 Hz;
Перечень необходимых внешних устройств:
Ш манипулятор мышь — для выбора цифр, нажатия кнопок и многого другого;
Ш монитор;
4.2 Инструкции пользователю
Правила игры
Два игрока играют в следующую игру: на бумаге выписаны числа от 1 до 9. Игроки по очереди закрашивают любую из цифр своим цветом. Выигрывает тот участник, который первым закрасит своим цветом 3 числа, сумма которых равна 15 (если игрок закрасил больше трёх чисел, то он выигрывает, если сумма хотя бы одной из троек чисел равна 15). Вести статистику количества выигранных и проигранных игр для каждого игрока.
Управление в игре
Управление в игре осуществляется исключительно мышью.
Для того чтобы в процессе игры выполнить выбор цифры, необходимо щёлкнуть по ней левой кнопкой мыши. После этого цифра выделится цветом, в зависимости от того, какой игрок совершает ход.
1 игрок — жёлтый цвет.
2 игрок — зелёный цвет.
Рисунок 4.2.1
Окна игры
Подразделы:
· Главное меню;
· Окно игры;
· Окно статистики;
Главное меню
Рисунок 4.2.3
Элементы окна:
1) Заголовок приложения.
2) Кнопка «Начать игру». Данная кнопка показывает окно игры.
3) Кнопка «Статистика». Данная кнопка выводит окно статистики.
4) Кнопка «Выход. Данная кнопка производит закрытие приложения.
Окно игры
Рисунок 4.2.6
Элементы окна:
1) 9 панелей с цифрами. Их цвет меняется в зависимости от очерёдности нажатия.
2) Имя игрока, чей ход ожидается в данный момент.
3) Меню «Игра».
При нажатии открывается меню игры.
Рисунок 4.2.9
Здесь есть 3 кнопки:
а) Новая игра
В случае если в данный момент идет партия игры, то при нажатии на кнопку «Новая игра» партия начнётся заново. Все панели с цифрами вернутся в исходное состояние.
б) Статистика
После нажатия этой кнопки на экране монитора появится окно «Статистика»:
в) Выход
После нажатия данной кнопки окно игры будет закрыто, и будет доступно главное меню.
4) Меню «Справка».
При нажатии открывается меню справки:
Рисунок 4.2.13
Здесь есть кнопка «Вызов справки», после нажатия на которую будет запущен файл справки по данной игре.
Окно статистики
Рисунок 4.2.14
Элементы окна:
1) Список игроков.
2) Количество побед выбранного игрока.
3) Количество поражений выбранного игрока.
Таблица 4.2.1. Сообщения оператору
Сообщения оператору | Действия оператора | |
Рисунок 4.2.15 | Причина появления: Такое сообщение появляется в случае, если 1 игрок победил в игровой партии. Действие, которое необходимо предпринять: Необходимо нажать кнопку «Ок». | |
Рисунок 4.2.16 | Причина появления: Такое сообщение появляется в случае, если 2 игрок победил в игровой партии. Действие, которое необходимо предпринять: Необходимо нажать кнопку «Ок». | |
Заключение
Во время курсового проектирования я разработал игровое приложение «Игра в 15». За весь период проектирования я расширил свои познания в среде программирования Delphi, подкрепил свои знания теории практикой, открыл для себя новые свойства некоторых компонентов, и научился работать с событиями компонентов и форм.
Также, мною была изучена возможность установки новых компонентов.
В ходе курсового проектирования я использовал программу Help & Manual для создания файла справки, который был интегрирован моё приложение.
Немаловажным остаётся и тот факт, что игровое приложение «Игра в 15» имеет все основания быть доработанным и усовершенствованным как в плане оптимизации и функциональности, так и в плане удобства пользования и оформления пользовательского интерфейса.
1. Культин Н. Самоучитель Delphi 4. Программирование на Object Pascal. — СПб.: БХВ — Санкт-Петербург, 1999. -480 с., ил.
2. Архангельский А. Я. Разработка прикладных программ для Windows в Delphi 5. — М.: ЗАО «Издательство БИНОМ», 1999. — 256 с.: ил. (Все о Delphi)
Приложение
Модуль Unit1.pas
var
Form1: TForm1;
q, n, m, i, j, pob, pob1, por, por1: integer;
s, s1: string;
implementation
uses Unit2, Unit3;
{$R *.dfm}
procedure TForm1. Panel1Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then begin
panel1. Color:=clyellow;
i:=i+1;
n:=n+1;
s:=s+'1';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
form3. Show;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin
panel1. Color:=clgreen;
j:=j+1;
m:=m+1;
s1:=s1+'1';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel1. Enabled:=false;
end;
procedure TForm1. Panel2Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel2. Color:=clyellow;
i:=i+1;
n:=n+2;
s:=s+'2';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel2. Color:=clgreen;
j:=j+1;
m:=m+2;
s1:=s1+'2';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel2. Enabled:=false;
end;
procedure TForm1. Panel3Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel3. Color:=clyellow;
i:=i+1;
n:=n+3;
s:=s+'3';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel3. Color:=clgreen;
j:=j+1;
m:=m+3;
s1:=s1+'3';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel3. Enabled:=false;
end;
procedure TForm1. Panel4Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel4. Color:=clyellow;
i:=i+1;
n:=n+4;
s:=s+'4';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel4. Color:=clgreen;
j:=j+1;
m:=m+4;
s1:=s1+'4';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel4. Enabled:=false;
end;
procedure TForm1. Panel5Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel5. Color:=clyellow;
i:=i+1;
n:=n+5;
s:=s+'5';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel5. Color:=clgreen;
j:=j+1;
m:=m+5;
s1:=s1+'5';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel5. Enabled:=false;
end;
procedure TForm1. Panel6Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel6. Color:=clyellow;
i:=i+1;
n:=n+6;
s:=s+'6';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin
showmessage (' 1 игрок победил');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel6. Color:=clgreen;
j:=j+1;
m:=m+6;
s1:=s1+'6';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel6. Enabled:=false;
end;
procedure TForm1. Panel7Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel7. Color:=clyellow;
i:=i+1;
n:=n+7;
s:=s+'7';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel7. Color:=clgreen;
j:=j+1;
m:=m+7;
s1:=s1+'7';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel7. Enabled:=false;
end;
procedure TForm1. Panel8Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel8. Color:=clyellow;
i:=i+1;
n:=n+8;
s:=s+'8';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel8. Color:=clgreen;
j:=j+1;
m:=m+8;
s1:=s1+'8';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel8. Enabled:=false;
end;
procedure TForm1. Panel9Click (Sender: TObject);
begin
q:=q+1;
if q mod 2=1 then
begin panel9. Color:=clyellow;
i:=i+1;
n:=n+9;
s:=s+'9';
if i=4 then
if (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:=pob+1;
por1:=por1+1;
end;
if i=3 then
if n=15 then begin showmessage (' 1 игрок победил!');
pob:=pob+1;
por1:=por1+1;
end;
end;
if q mod 2=0 then
begin panel9. Color:=clgreen;
j:=j+1;
m:=m+9;
s1:=s1+'9';
if i=4 then
if (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:=pob1+1;
por:=por+1;
end;
if j=3 then
if m=15 then begin
showmessage (' 2 игрок победил!');
pob1:=pob1+1;
por:=por+1;
end;
end;
panel9. Enabled:=false;
end;
procedure TForm1. N4Click (Sender: TObject);
begin
close;
end;
procedure TForm1. Button1Click (Sender: TObject);
begin
form1.hide;
end;
procedure TForm1. FormActivate (Sender: TObject);
var r: integer;
begin
q:=0;
i:=0;
j:=0;
n:=0;
m:=0;
s:='';
s1:='';
For r:=1 to 9 do begin
(FindComponent ('panel'+inttostr®) as TPanel).Color:=clBtnFace;
(FindComponent ('panel'+inttostr®) as TPanel).Enabled:=true;
end;
end;
procedure TForm1. Button3Click (Sender: TObject);
begin
Form2. Close;
end;
procedure TForm1. Button2Click (Sender: TObject);
begin
Form3.label5. Caption:=inttostr (pob);
Form3.label7. Caption:=inttostr (pob1);
Form3.label6. Caption:=inttostr (por);
Form3.label8. Caption:=inttostr (por1);
form3.show;
end;
procedure TForm1. N2Click (Sender: TObject);
begin
form1. Hide;
form1. Show;
end;
procedure TForm1. N3Click (Sender: TObject);
begin
Form3.label5. Caption:=inttostr (pob);
Form3.label7. Caption:=inttostr (pob1);
Form3.label6. Caption:=inttostr (por);
Form3.label8. Caption:=inttostr (por1);
form3.show;
end;
end;
Модуль Unit2.pas
var
Form2: TForm2;
implementation
uses Unit1, Unit3;
{$R *.dfm}
procedure TForm2. Button1Click (Sender: TObject);
begin
form1.show;
end;
procedure TForm2. Button2Click (Sender: TObject);
begin
close;
end;
procedure TForm2. Button3Click (Sender: TObject);
begin
form3.show;
end;
end.
Модуль Unit3.pas
var
Form3: TForm3;
pob, pob1, por, por1: string;
implementation
{$R *.dfm}
procedure TForm3. Label5Click (Sender: TObject);
begin
label5. Caption:=pob;
end;
procedure TForm3. Label6Click (Sender: TObject);
begin
label6. Caption:=por;
end;
procedure TForm3. Label7Click (Sender: TObject);
begin
label7. Caption:=pob1;
end;
procedure TForm3. Label8Click (Sender: TObject);
begin
label8. Caption:=por1;
end;
end.