Игра "Пятнашки"
Delphi - прошлое и настоящее. Версии Delphi. Разработка игры "Пятнашки", история создания, математическое описание. Основные компоненты и средства построения интерфейса среды программирования. Интерфейс программы, порядок взаимодействия с пользователем.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.12.2017 |
Размер файла | 4,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ
1. РАЗВИТИЕ DELPHI
1.1 Delphi прошлое и настоящее
1.2 Версии Delphi
2. ИГРА «ПЯТНАШКИ»
2.1 История создания
2.2 Математическое описание
3. Разработка проекта
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ВВЕДЕНИЕ
delphi программирование пятнашки интерфейс
В современном мире всё чаще становится актуальным вопрос о разработке разнообразных приложений, а также внедрении их в жизнедеятельность человека.
Сегодня в каждой организации есть профессиональный компьютер с различными установленными приложениями, которые специалисту помогают в выполнении какой-либо работы. Также существуют развлекательные приложения, которые помогают работнику снять усталость и напряжение в перерыв между его профессиональной деятельностью. Приложения используются в производстве техники и оборудования. С помощью приложений происходит автоматизация производства. Часто приложения применяются в домашних устройствах: видеокамера, калькулятор, стиральная машина.
Таким образом, для разработки и внедрения новых технологий требуются программисты. Программирование является сложной и трудно усваиваемой наукой. Delphi является средой программирования, разработанной фирмой Borland в 2003 году, в которой есть все необходимое для проектирования, запуска и тестирования создаваемых приложений.
Среда Delphi намного упрощает разработку программ, путем визуальных средств программирования. Благодаря этому программист может видеть объекты такими, какими они появляются в ходе исполнения программы, что снимает необходимость проведения множества операций вручную. После помещения объекта в специальную форму среды визуального программирования, все его атрибуты сразу отображаются в виде кода, который соответствует объекту как единице, исполняемой в ходе работы программы.
Данные операции позволяют программисту перейти к решению самой задачи. Поэтому среда Delphi является идеальной для программирования различных программ. Программисту представляется большое количество технологий, которые интегрированы в среду. Для перехода к какой-то другой технологии доступа к данным специалисту нет необходимости в изучении новых методик.
Таким образом, программисту необходимо понимать основные принципы системы, а весь вспомогательный код среда Delphi автоматически сгенерирует сама.
Для решения задачи данной курсовой работы была выбрана среда разработки Delphi 7.0. Среда визуального программирования обладает широким набором возможностей, начиная от проектировщика форм и заканчивая поддержкой всех форматов популярных баз данных. Delphi может использоваться для разработки программ любой сложности.
Цель курсовой работы заключается в разработке приложения «Напоминание».
Задачи данной работы:
1. осуществить теоретический анализ научной и методической литературы по проблеме разработки программы «Напоминание»;
2. освоить основные компоненты и средства построения интерфейса среды программирования Delphi;
3. спроектировать интерфейс программы и порядок ее взаимодействия с пользователем;
4. разработать игру «Пятнашки», которая выводит случайную последовательность кнопок.
Практическая значимость курсовой работы: разработанная игра «Пятнашки» может быть внедрена любому пользователю, которому интересны головоломки.
В качестве библиографии применялась техническая и научная литература современных российских и зарубежных авторов.
1. РАЗВИТИЕ DELPHI
1.1 Delphi прошлое и настоящее
Delphi -- результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль начиная с версии 5.5 добавил в Паскаль объектно-ориентированные свойства, а Delphi -- объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Дельфи от С++ является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Турбо Паскаля, располагаться в стеке могут) -- все объекты попадают в динамически выделяемую область (кучу).
Де-факто Object Pascal, а затем и язык Delphi являются функциональными наращиваниями Turbo Pascal. Об этом говорят обозначения версий компилятора. Так, в Delphi 7 компилятор имеет номер версии 15.0 (Последняя версия Borland Pascal / Turbo Pascal обозначалась 7.0, в Delphi 1 компилятор имеет версию 8.0, в Delphi 2 -- 9.0, и т. д. Номер версии 11.0 носит компилятор Pascal, входивший в состав среды C++ Builder).
Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.
* Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16;
* Версии со второй компилируют программы под 32-х разрядную платформу Win32;
* Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему GNU/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 прав на среду разработки и компилятор (см. openDelphi.org).
Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания -- CodeGear, которая будет финансово полностью подконтрольна Borland.
В августе 2006 года Borland выпустил облегченные версию RAD Studio под именем Turbo: Turbo Delphi, Turbo Delphi for .NET, Turbo C#, Turbo C++. В марте 2008 года было объявлено о прекращении развития этой линейки продуктов.
В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP.
1.2 Версии Delphi
Delphi 1. Первая версия появилась в мае 1995 г., когда еще не существовала Windows 95 (но тем не менее существовала Windows NT). Это единственная версия, работающая под управлением 16-разрядной Windows 3.1 (3.11). В ней впервые была опробована новая модель объектов, позаимствованная из различных объектно-ориентированных языков, и главным образом, из языка C++.
По сравнению с Turbo Pascal были внесены существенные дополнения и изменения:
- введены открытые массивы и их конструкторы для передачи в подпрограммы массивов переменной длины;
- введена внутренняя для функции переменная Result и разрешено игнорировать возвращаемый функцией результат;
- сняты ограничения на тип возвращаемого функцией результата (этот тип может быть любым, за исключением объектов старого стиля и файлов);
- введен механизм обработки исключительных ситуаций.
Палитра компонентов первой версии состоит из 9 страниц и содержит 79 компонентов.
Рисунок 1 - главное окно Delphi 1
Delphi 2. Вторая и все последующие версии Delphi предназначены для работы под управлением 32-разрядных ОС Windows 95/98/2000/NT (Windows 32). В нее были внесены многочисленные изменения, связанные с переходом на качественно новую ОС, в том числе:
- введена поддержка 16-битных символов и составленных из них строк;
- введен новый формат строк 8-битных символов произвольной длины;
- введены новые типы данных - variant и currency;
- введен механизм фильтрации в табличные наборы данных TTable.
На 12 страницах галереи компонентов расположены 114 стандартных компонентов.
Рисунок 2 - главное окно Delphi 2.
Delphi 3. Основные новшества этой версии:
- использование механизма пакетов для облегчения распространения и повторного использования компонентов;
- улучшенные свойства редактора кода: построение фрагментов кода по образцу; оперативная подсказка о типе и количестве формальных параметров при обращениях к подпрограммам; оперативный просмотр в режиме отладки содержимого полей, свойств и переменных с помощью указателя мыши;
- поддержка шаблонов компонентов;
- поддержка технологий СОМ, ActiveX, OLEnterprice и (частично) CORBA.
Третья версия поставлялась в 4 комплектациях: Standard, Professional, Client/Server Suite и Enterprise.
Ha 13 страницах галереи компонентов размещены 148 стандартных компонента. В модификации 3.5 введены дополнительные компоненты для реализации многозвенных баз данных.
Рисунок 3 - интерфейс Delphi 3.
Delphi 4. Появившаяся в июле 1998 г. 4-я версия Delphi быстро завоевала широкую популярность как своими расширенными языковыми возможностями, так и специальной поддержкой многозвенных баз данных и распределенных вычислений.
К основным нововведениям этой версии относятся:
- изменения в языке: динамические массивы, перегружаемые методы, умалчиваемые параметры подпрограмм, новые типы int64, Real48 и Real как аналог Double;
- изменения в кодовом редакторе: автоматическое завершение кодовых заголовков свойств и методов; свойства браузера для поиска исходного кода; простой переход от заголовка метода к его реализации и обратно;
- технология “причаливания” инструментальных панелей Drag&Dock;
- механизм “действий” Action для унификации внешнего вида и поведения одинаковых по функциональному назначению интерфейсных элементов;
- улучшенная поддержка многозвенной архитектуры БД и распределенных вычислений.
На 14 страницах палитры компонентов размещены 182 стандартных компонента
Рисунок 4 - главное окно Delphi 4
Delphi 5. В июле 1999 г. вышла пятая по счету версия Delphi, основная особенность которой - попытка заменить громоздкий и не всегда быстрый механизм доступа к данным BDE, который традиционно использовался во всех предыдущих версиях, альтернативными механизмами.
Менее значительные изменения, внесенные в версию 5:
- включен эксперт создания и настройки произвольных модулей данных с расширенными возможностями представления взаимосвязи данных;
- улучшена технология MIDAS: для более гибкой работы с Microsoft Transaction Server введен повторно-входимый (stateless) брокер данных; упрощен процесс разработки интранет-приложений за счет компонентов новой страницы InternetExpress;
- значительные изменения внесены в интегрированную среду разработчика ИСР;
В новой версии наиболее мощной комплектации Enterprise на 20 страницах расположены 218 стандартных компонентов.
Рисунок 5 - главное окно Delphi 5.
Delphi 6. Версия 6 вышла в мае 2001 г., т. е. почти через 2 года после выхода 5-й версии. Задержку вызвана работой над новой версией Delphi для ОС Linux - Kylix.
Основные особенности Delphi 6 достойны особого упоминания:
- в ней сделаны дальнейшие шаги для поддержки Web-программирования (архитектура websnap) и разработаны драйверы и компоненты для максимально быстрой связи клиентских мест с некоторыми популярными промышленными серверами баз данных без BDE (компоненты страницы dbExpress).
На 27 страницах палитры компонентов размещены 387 компонентов (в режиме CLX - 211 компонентов на 21 странице).
Рисунок 6 - главное окно Delphi 6.
Delphi 7. В 2002 году вышла седьмая версия, ставшая наиболее популярной и стабильной средой разработки.
Ключевые возможности, появившиеся в Delphi 7:
- предварительный вариант средств для работы с Microsoft .NET Framework;
- полное решение проектирования и развертывания корпоративных приложений по технологии Model Driven Architecture (MDA);
- мощные и удобные средства разработки WEB-приложений;
- средства создания качественных кроссплатформенных отчетов Rave Reports;
- среда моделирования ModelMaker (по технологии UML).
Компания Borland первой предоставила разработчикам возможность перехода на .NET при помощи Delphi 7.
Рисунок 7 - главное окно Delphi 7.
Delphi 2007. Все ожидали, что в апреле-мае 2007 года выйдет версия Delphi под кодовым названием Highlander, однако вместо этого в феврале вышел Delphi 2007. Прежде всего, этот релиз Delphi только для Win32, то есть не включающий в себя Delphi .NET., C#Builder и С++Builder.
Создатели продукта приложили максимум усилий для того, что бы сделать новую версию более производительной и удобной для пользователя. Тем не менее, определенные проблемы качества остались.
Функциональных изменений в новом продукте не слишком много. Основное из них - поддержка Windows Vista.
Рисунок 8 - главное окно Delphi 2007.
Turbo Delphi. Анонсированная в 2006 году, среда разработки ориентированна в первую очередь на студентов, индивидуальных пользователей и программистов-любителей. Основное отличие данного продукта от других продуктов CodeGear - наличие бесплатной версии Turbo Delphi Explorer.
Существует две версии:
- Turbo Delphi for Windows -- для создания приложений Win32;
- CLR -- для создания машинно-независимого кода для Microsoft .NET
Каждая версия вышла в двух редакция: свободно распространяемая Explorer edition и Professional edition, стоимостью около 400 долларов.
Рисунок 9 - главное окно TurboDelphy.
Delphi XE (2011). С начала 2011 года новая версия Delphi, входящая в состав RAD Studio, носит название Delphi XE. Помимо этого в пакет входят С++Builder, Delphi Prism, RadPHP.
Из нововведений новой версии можно отметить:
- Интеграция Subversion;
- Новые возможности VCL и RTL;
- Доработки в редакторе кода;
- Обновление DataSnap, в частности по части поддержки новых версий СУБД;
- Обновление средств моделирования, поддержка диаграмм последовательностей;
- Новые возможности для расширения IDE.
Рисунок 10 - главное окно Delphi XE.
2. ИГРА «ПЯТНАШКИ»
Пятнашки - популярная головоломка, придуманная в 1878 году Ноем Чемэном. Существует вариант для восьми элементов. Представляет собой набор одинаковых квадратных костяшек с нанесёнными числами, заключённых в квадратную коробку. Длина стороны коробки в четыре раза больше длины стороны костяшек для набора из 15 элементов и в три раза больше для набора в 8 элементов, соответственно в коробочке остаётся незаполненным одно квадратное поле. Цель игры - перемещая костяшки по коробке добиться упорядочивания их по номерам, желательно сделав как можно меньше перемещений.
2.1 История создания
С 1891 года до самой смерти Сэм Ллойд считал, что изобрёл головоломку именно он. Однако существуют доказательства того, что он был непричастен к созданию «пятнашек». Настоящим изобретателем был Ной Палмер Чепмэн, почтмейстер из Канастоты, который ещё в 1874 году показывал друзьям головоломку, состоящую из шестнадцати пронумерованных квадратиков, которые надо было сложить в ряды по четыре штуки так, чтобы сумма чисел в каждом ряду была равна 34. Затем сын Ноя Чепмэна, Фрэнк Чепмэн привёз доработанные головоломки в Сиракузы (штат Нью-Йорк), а затем в Хартфорд (Коннектикут), где слушатели Американской школы для слабослышащих начали производство головоломки. К 1879 году она уже продавалась не только в Хартфорде, но и в Бостоне. Тогда о «пятнашках» узнал художник по дереву Маттиас Райс. В декабре 1879 года он начал бизнес по производству новой головоломки под названием «Драгоценная головоломка» (англ. Gem Puzzle). В начале 1880 года некий Чарльз Певи, дантист из Ворчестера, привлёк внимание общественности, предложил денежное вознаграждение за решение задачи собирания головоломки, что добавило популярности новой забаве. Весной того же года игра достигла Европы. 21 февраля 1880 года Ной Чепмэн попытался оформить патент на своё изобретение (патент назывался «Головоломка из бриллиантовых блоков», «Block Solitaire Puzzle»), однако заявка на патент была отклонена, так как мало отличалась от уже оформленного тремя годами ранее патента «Хитрые блоки», «Puzzle-Blocks»
2.2 Математическое описание
Пятнашки представляют собой классическую задачу для моделирования эвристических алгоритмов. Обычно задачу решают через количество перемещений и поиск манхттенского расстояния между каждой костяшкой и ёё позицией в собранной головоломке. Для решения используются алгоритмы наподобие алгоритма А*
Нерешаемая комбинация, предложенная Ноем Чепменом
Можно показать, что ровно половину из всех возможных 1307674368000 (=15!) начальных положений пятнашки невозможнопривести к собранному виду: пусть квадратик с числом i расположен до (если считать слева на право и сверху вниз) k квадратиков с числами меньшими i. Будем считать ni = k, то есть если после костяшки с i-м числом нет чисел, меньших i, то k = 0. Также введем чмсло е - номер ряда пустой клетки (считая с 1). Если сумма является нечётной, то решения головоломки не существует.
Для вариантов пятнашек с большим, чем 15, количеством костяшек задача поиска кратчайшего решения является NP-полной
3. РАЗРАБОТКА ПРОЕКТА
Для разработки игры «Пятнашки» применялась среда визуального программирования Delphi 7. Проект программы состоит из двух окон (рисунок 2.1)
Рисунок 2.1 - рабочая зона проекта
Настраиваем форму: размер, цвет:
Сначала на форме располагается компонент TPanel со свойствами BevelInner и BevelOuter, равными bvLowered, для создания эффекта бордюра по краям формы. Затем на полученную панель ставится еще одна панель меньшего размера со свойством BevelOuter равным bvRaised, BevelInner --bvLowered, а цвет Color --clBlack. Эта вторая панель будет фоном для кнопок с цифрами. Затем добавляются кнопки (компоненты TButton или TSpeedButton) с названиями about, game, exit и кнопка начать игру (компонент TSpeedButton). Расположение их показано на рисунке. Теперь надо создать те самые квадратики с цифрами. Эту роль играют компоненты TButton. Расположите их на второй панели именно так, как показано на рисунке, то есть, кнопка с цифрой (Caption) 1 должна иметь имя (Name) Button1, кнопка 2 --Button2 и т.д. Это важно. Объясняю, почему. При добавлении компонента на форму он автоматически заносится в список (массив) компонентов формы и получает индекс начиная с 0. В дальнейшем взаимодействие с кнопками программой будет осуществляться через их индексы. Поэтому если у вас кнопка с именем Button1 будет иметь Caption 2, вам просто будет сложнее работать с ней. Что касается размеров кнопок, то я установил параметры Heigth и Width каждой по 50. Да, еще. Чтобы посмотреть индекс кнопки, размещенной на форме, в ее процедуре-обработчике события (Event), например, OnClick, наберите:
form1.caption:=inttostr((sender as tbutton).componentindex);
Это приведет к тому, что при нажатии на кнопку ее индекс будет выводиться в заголовке формы. Потом эту строчку можете удалить.
Рисунок 2.2 - форма с кнопками.
Теперь, когда интерфейс программы готов, можно перейти непосредственно к программированию. Опишем глобальные переменные модуля. В разделе var (там, где написано Form1: TForm1) напишите:
a:array[1..16]of byte;
i,k,fl,rn,p,m:byte;
x,y,x1,y1,num,pos,lr,td,lr1,td1:integer;
flag:boolean;
(назначение переменных я буду объяснять далее). После этого нужно написать процедуру, генерирующую массив случайных чисел от 1 до 16 так, чтобы они не повторялись. Потом по этому массиву будут расставляться кнопки с числами. Случайные числа будем заносить в массив a. Цифра 16 будет означать пустую область, на которой нет кнопки. Процедура заполнения массива случайными числами выглядит следующим образом:
procedure rndarr;
begin
for k:=1 to 16 do a[k]:=0;
randomize;
i:=1;
repeat
rn:=random(16)+1;
fl:=0;
k:=1;
while (a[k]<>rn) and (k<>17) do inc(k);
if k=17 then begin a[i]:=rn;
Inc(i);
end;
until i=17;
end;
Теперь делаем визуализацию массива. На этом принципе работают многие игры. Например, тот же тетрис: имеется некий двумерный массив (стакан), в котором нули -- пустые позиции, единицы -- квадратики, из которых строятся фигуры тетриса. Далее в массиве эти единицы сдвигаются, и массив выводится на экран с заменой 0 и 1 на графические элементы. Это повторяется несколько раз, что создает эффект падения фигур. В данном случае все должно происходить аналогичным образом: все перемещения производятся в массиве, а в соответствии числам из массива располагаются сами «пятнашки». Для того чтобы это осуществить, нужно написать процедуру, в которой читаются элементы массива, соответствующие индексам компонентов-кнопок с цифрами. Затем происходит обращение к этим кнопкам по их индексу и размещение их соответственно значениям в массиве. То есть, если первым элементом массива является число 15, то первой кнопкой в левом верхнем углу будет кнопка с цифрой 15 и т.д. Вот эта процедура:
procedure drawarr;
begin
p:=0;
for i:=0 to 3 do
for k:=0 to 3 do
begin
p:=p+1;
if a[p]<>16 then
begin
with TButton(form1.components[a[p]+5]) do
begin
left:=k*50+2;
top:=i*50+2;
end;
end;
end;
end;
Так как у меня первая кнопка в массиве компонентов формы имеет индекс 6, то я при обращении к кнопкам прибавляю к значению из массива число 5, чтобы получить их индексы:
Начнем работу с процедурами-обработчиками событий. Первая из них -- обработчик события OnClick кнопки (TSpeedButton) «Начать игру». Дважды щелкните по этой кнопке. При этом откроется редактор кода с таким заголовком процедуры:
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
rndarr;
drawarr;
form1.speedbutton2.caption:='Начать игру заново';
end;
Таким образом, при нажатии на кнопку «Начать игру» происходит генерация массива случайных чисел процедурой rndarr, затем -- размещение кнопок с цифрами соответственно числам в массиве процедурой drawarr и, наконец, изменение названия кнопки Начать игру на Начать игру заново.
Предпоследний этап. Нужно сделать так, чтобы при нажатии на кнопку с цифрой определялось направление ее движения, т.е. то место, где нет другой кнопки. Для этого клацните дважды, например, по кнопке 15 и в появившейся процедуре-обработчике события OnClick (как и в предыдущий раз) между Begin и End наберите:
if flag then exit; {если flag=true -- выход из процедуры}
pos:=0;m:=0;num:=0;
num:=(sender as tbutton).componentindex-5; {num -- номер нажатой кнопки}
for i:=1 to 16 do if a[i]=num then pos:=i; {определение ее позиции в массиве}
{определение направления движения}
if (pos-1>0)and(pos-1<>4)and(pos-1<>8)and(pos-1<>12)and(a[pos-1]=16)then m:=1;
if (pos+1<17)and(pos+1<>5)and(pos+1<>9)and(pos+1<>13)and(a[pos+1]=16)then m:=2;
if (pos-4>0)and(a[pos-4]=16)then m:=3;
if (pos+4<17)and(a[pos+4]=16)then m:=4;
if m=0 then exit; {если вокруг кнопки пустой позиции нет -- выход}
flag:=true; {установливаем флаг, означающий, что кнопка в движении}
lr1:=(sender as tbutton).left; {сохраняем в lr1 и td1 начальные координаты}
td1:=(sender as tbutton).top;
lr:=0;td:=0;
form1.move(sender); {вызов процедуры перемещения кнопки}
В Object Inspector в разделе Events для остальных кнопок с цифрами напротив события OnClick укажите эту процедуру. Таким образом, она будет выполняться при нажатии любой кнопки с цифрой. В этой процедуре определяется, есть ли рядом с нажатой кнопкой пустая позиция. Если таковая слева, то m:=1, справа --m:=2, сверху --m:=3, снизу --m:=4. Определение «слева или справа» происходит путем вычета или прибавления к позиции нажатой кнопки единицы, определение «сверху или снизу» -- через вычет или прибавление 4. Переменная Flag служит для того чтобы определить, движется ли какая-либо кнопка или нет. Если движется -- процедура не должна выполняться. Процедура перемещения кнопки form1.move описана далее.
Чтобы как-то «оживить» игру, требуется движение. В данном случае -- движение кнопок. Для реализации заметного человеческому глазу и более-менее плавного движения потребуется компонент TTimer. Выберите его из списка компонентов и расположите в любом месте формы. Установите его свойство Interval равным 1. Затем в его единственном событии OnTimer в Object Inspector напишите move и нажмите Enter. На экране появится тело процедуры-обработчика этого события:
procedure TForm1.move(Sender: TObject);
begin
timer1.enabled:=true; {включение таймера}
case m of {исходя из направления движения}
1:dec(lr,5); {уменьшаем на 5 lr}
2:inc(lr,5); {увеличиваем на 5 lr}
3:dec(td,5);
4:inc(td,5);
end;
with TButton(components[num+5])do begin {перемещаем компонент}
left:=lr1+lr;top:=td1+td;end;
if (abs(lr)=50) or (abs(td)=50) then {когда пройдено 50 шагов}
begin
timer1.enabled:=false; {выключаем таймер}
lr:=0;
td:=0;
flag:=false;
case m of {перестановка чисел в массиве}
1:begin a[pos-1]:=a[pos];a[pos]:=16;end;
2:begin a[pos+1]:=a[pos];a[pos]:=16;end;
3:begin a[pos-4]:=a[pos];a[pos]:=16;end;
4:begin a[pos+4]:=a[pos];a[pos]:=16;end;
end;
fl:=0;
for i:=1 to 16 do if a[i]<>i then fl:=1; {определяем, расставлены ли кнопки по порядку от 1 до 15}
if fl=0 then showmessage('Вы выиграли!'); {если кнопки расставлены как надо -- сообщение «Вы выиграли!»}
end;
end;
Основная часть программы уже написана. Осталось внести последние штрихи. Создайте форму AboutBox и в процедуре-обработчике события OnClick кнопки About напишите: AboutBox.Show. Аналогично, для кнопки Exit напишите Close -- для выхода из программы.
Далее компилируем и если правильно сделано, то программа запустится и будет вида:
Рисунок 2.3 - Игра «Пятнашки»
ЗАКЛЮЧЕНИЕ
В связи с усовершенствованием компьютерных технологий стали разрабатывать различные системы для записи алгоритмов, которые назвали языками программирования. Языки программирования содержат в себе набор вычислительных формул, который, в процессе работы, переводят в алгоритм.
Среда программирования Delphi предлагает программистам открытую архитектуру, которая позволяет добавлять любые компоненты и управлять ими в визуальном построителе. Также программисты имеют возможность добавлять CASE-инструменты и генераторы кадров. Визуальный создатель интерфейса обеспечивает оперативность визуальной разработки клиент-серверных приложений, путем выбора компонентов из конкретной группы.
Благодаря открытой компонентной архитектуре приложения, созданные в Delphi, функционируют устойчиво и надежно.
Компоненты, которые применяются при программировании, встроены в среду Delphi и являются набором специальных типов объектов. Данные типы применяются в качестве основы при разработке приложения.
Язык программирования Delphi основан на Borland Object Pascal. Классы объектов находятся в виде иерархии, которая содержит промежуточные, абстрактные и готовые компоненты. В результате, программист пользуется готовыми компонентами.
Delphi позволяет с минимальными усилиями разрабатывать от самых простейших приложений, функционирующих только на одном профессиональном компьютере, до огромных корпоративных приложений, применяющие серверные базы данных, которые располагаются на разных платформах.
С помощью среды программирования Delphi можно создать разнообразные приложения, игры и сложные программы. При стремительном росте информационных технологий и регулярном применении профессионального компьютера в жизнедеятельности человека, значительно возрастает роль программирования.
Чтобы овладеть искусством программирования необходимо не только хорошо знать теоретический материал, но и функционирование языка программирования на практике. Поэтому лишь самостоятельно разрабатывая приложения можно стать профессионалом в данной области. Лишь практикуясь можно научиться определять ошибки и разбираться в различных языках программирования.
Выполнение курсовой работы позволило закрепить ранее изученный материал по дисциплине «Программирование на языке высокого уровня», изучить новый для меня материал.
В ходе выполнения данной курсовой работы на основе различных источников данных была проанализирована заданная предметная область.
В результате выполнения проекта была полностью реализована программа «Напоминание», удовлетворяющая поставленным требованиям. В процессе тестирования ошибок не обнаружено.
Цель курсовой работы достигнута, задачи выполнены:
1. осуществить теоретический анализ научной и методической литературы по проблеме разработки программы «Напоминание»;
2. освоить основные компоненты и средства построения интерфейса среды программирования Delphi;
3. спроектировать интерфейс программы и порядок ее взаимодействия с пользователем;
4. разработать игру «Пятнашки» которая выводит случайное последовательность кнопок.
ГЛОССАРИЙ
№ п/п Понятие Определение
1. Команды - сообщения, с помощью которых реализуется процесс управления ходом диалога
2. Компилятор - машинная программа, которая автоматически переводит текст алгоритма с одного языка программирования на другой
3. Объектно-ориентированное программирование - это методика создания программ, в основе которой лежит понятия объектов и классов
4. Ошибка - сообщение о прерывании выполнения программного кода, невозможность обработки входных данных пользователя
5. Проект - совокупность файлов форм, файлов настройки, файлов программного кода, участвующих в разработке программного обеспечения
6. Процедура - подпрограмма, которая необходима для выполнения конкретной задачи или подзадачи
7. Синтаксис - построение программы на языке программирования
8. Тестирование программы - комплекс мероприятий, направленных на выявление ошибок в функционировании программ
9. Форма - окно программы на стадии ее разработки
10. Файл проекта - файл, который создается автоматически, связывая все файлы программы и код инициализации
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Архангельский, А.Я. Delphi 2006. Язык Delphi, классы, функции Win32 и .NET. Справочное пособие / [Текст]. - М.: Бином-Пресс, 2011. - 1152с. - ISBN 978-5-9518-0336-8.
2 .Вольфенгаген, В.Э. Конструкции языков программирования / [Текст]. - М.: Центр ЮрИнфоР, 2001. - 276с. - ISBN 5-89158-079-9.
3. Гавриков, М.М. Теоретические основы разработки и реализации языков программирования / [Текст]. - М.: КноРус, 2010. - 184с. - ISBN 978-5-406-00121-9.
4. Голицына, О.Л. Языки программирования / [Текст]. - М.: Форум, 2010. - 400с. - ISBN 978-5-91134-442-9.
5. Кауфман, В.Ш. Языки программирования. Концепции и принципы / [Текст]. - М.: ДМК Пресс, 2010. - 464с. - ISBN 978-5-94074-622-5.
6. Лесневский, А.С. Объектно-ориентированное программирование для начинающих / [Текст]. - М.: Бином. Лаборатория знаний, 2010. - 232с. - ISBN 978-5-94774-251-0.
7. Мозговой, М.В. Классика программирования: алгоритмы, языки, автоматы, компиляторы. Практический подход / [Текст]. - М.: Наука и техника, 2006. - 320с. - ISBN 5-94387-224-8.
8. Попов, В.Б. Delphi для школьников / [Текст]. - М.: Финансы и статистика, 2010. - 320с. - ISBN 978-5-279-03470-3.
9. Опалева, Э.А. Языки программирования и методы трансляции / [Текст]. - М.: БХВ-Петербург, 2005. - 480с. - ISBN 5-94157-327-8.
10. Хомоненко, А. Delphi 7 / [Текст]. - Спб.: БХВ-Петербург, 2010. - 1120с. - ISBN 978-5-9775-0425-6.
11. Хореев, П.Б. Объектно-ориентированное программирование / [Текст]. - М.: Академия, 2011. - 448с. - ISBN 978-5-7695-8091-8.
Размещено на Allbest.ru
...Подобные документы
Игра "Пятнашки": исходные данные, условия задачи и цели ее решения. Основные приемы программирования и типы данных, используемые при решении аналогичных задач. Для разработки программы использовался язык С и среда программирования Borland C++ Builder.
курсовая работа [674,1 K], добавлен 03.07.2011История развития Visual Basic, его преимущества и недостатки. Игра "Пятнашки" как классическая задача для моделирования эвристических алгоритмов. Разновидности и вариации игры. Разработка проекта в Visual Basic, который представляет собой игру "Пятнашки".
курсовая работа [5,7 M], добавлен 15.05.2014"Пятнашки" на первый взгляд простая игра, но для ее реализации необходимо обратится ко всем разделам программирования в среде Турбо Паскаль. Назначение и область применения. Описание алгоритма программы. Программное и аппаратное обеспечение программы.
курсовая работа [308,0 K], добавлен 04.07.2008Особенности создания программы "Файловый менеджер" в среде объектно-ориентированного программирования Delphi. Назначение и основные функции программы, формулировка задачи. Описание программы, использованные компоненты, интерфейс и порядок применения.
контрольная работа [1,3 M], добавлен 19.06.2012Создание компьютерной игры посредством среды программирования Delphi. Инструменты разработки, компоненты и методы для разработки программы. Логическая и физическая структуры, основные функции и элементы управления программы, ее тестирование и отладка.
курсовая работа [27,9 K], добавлен 26.07.2014Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.
курсовая работа [880,1 K], добавлен 21.04.2015Понятие алгоритма, свойства, история его исследования. Метод генерации случайных чисел. Концепция (теория) экспертных систем. Нерешаемая комбинация, предложенная Ноем Чепменом. Сущность и цель игры "пятнашки". Моделирование эвристических алгоритмов.
курсовая работа [339,5 K], добавлен 08.04.2014История интегрированной среды разработки, версии Delphi. Организация библиотеки компонентов. Страница Additional, ряд часто используемых компонентов общего назначения. Исполняемый файл программы "Архиватор текстовых файлов", интерфейс приложения.
курсовая работа [1019,0 K], добавлен 16.05.2017Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".
дипломная работа [1,5 M], добавлен 10.03.2013Общая характеристика и функциональные особенности, основные требования к интерфейсу разрабатываемого программного продукта. Описание алгоритмов, таблица идентификаторов, организация интерфейса пользователя, инструментальные средства реализации проекта.
курсовая работа [587,7 K], добавлен 12.01.2014Рассмотрение теории и технологии работы со средой программирования Delphi. Описание Описание интерфейса программы, структуры данных, генерации точек. Разработка задания по выявлению всех квадратов, которые могут быть образованы точками на плоскости.
реферат [21,0 K], добавлен 13.01.2015Входные и выходные данные программы. Выбор языка программирования. Рабочая среда Delphi 7. Правила игры "Кости". Разработка пользовательского интерфейса. Экономическое обоснование программного продукта. Расчет расходов на содержание и эксплуатацию.
дипломная работа [960,6 K], добавлен 07.02.2016Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.
курсовая работа [147,1 K], добавлен 05.02.2015Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Характеристика системы программирования. Главные составные части Delphi. Интерфейс программного приложения. Результаты работы программы. Руководство системного программиста и оператора. Язык программирования Delphi, среда компилятора Borland 7.0.
курсовая работа [1,6 M], добавлен 29.05.2013Создание игры "Сбей самолет" в середе визуального программирования Delphi. Классификация таймеров: малоточные, точные и сверхточные. Разработка алгоритма мультипликации самолета. Описание пользовательского интерфейса и технологий отображения графики.
курсовая работа [782,0 K], добавлен 16.02.2015Обоснование выбора системы управления базы данных. Delphi и его основные компоненты. Обоснование среды программирования. Создание базы данных и ее связь со средой программирования. Анализ и описание предметной области. Описание процедур программы.
курсовая работа [1,3 M], добавлен 25.05.2015Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.
курсовая работа [572,7 K], добавлен 14.07.2012Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009