Делфи игра крестики нолики

Автор работы: Пользователь скрыл имя, 26 Июня 2013 в 21:57, курсовая работа

Краткое описание

В данной курсовой работе будет разрабатываться игровая программа «Крестики-нолики», которая и будет являться объектом исследования. Потребуется создать полноценную правильно-функционирующую программу и самостоятельно изучим некоторые процедуры и функции.
Delphi - это комбинация нескольких важнейших технологий:
- Высокопроизводительный компилятор в машинный код;
- Объектно-ориентированная модель компонент;

Содержание

Введение ……………………………………………………………………………5
1 Компоненты Delphi используемые в программе ………….……………………6
1.1 Компонент TMainMenu ……………………..……………………………….....6
1.2 Компонент TLabel …….……………………………………………….…….....9
1.3 Компонент TPanel ………………………..……………………………..……..10
1.4 Компонент TImage …………………………..……………………………….....11
1.5 Компонент TImageList …………………………………………………..…....12
1.6 Компонент TTimer ……………..…………………………………………...….13
2 Разработка программы ………………………………………………….……….14
2.1 Постановка задачи ………………………..…………………………………....14
2.2 Блок схема………………………………………………………………….......15
2.3 Алгоритм реализации игровой программы …………………..………….....16
3 Описание пользовательского интерфейса …..……………………….………..24
Заключение ………………………………………………………………….…..…25
Список используемой литературы ……………………………………….………26
Приложение А-Листинг программы……………………………………….27

Прикрепленные файлы: 1 файл

Kursovaya_igra.doc

— 1.15 Мб (Скачать документ)

Содержание

 

 

 Введение ……………………………………………………………………………5

1 Компоненты Delphi используемые в программе ………….……………………6

1.1 Компонент TMainMenu ……………………..……………………………….....6

1.2 Компонент TLabel …….……………………………………………….…….....9

1.3 Компонент TPanel ………………………..……………………………..……..10

1.4 Компонент TImage …………………………..……………………………….....11

1.5 Компонент TImageList …………………………………………………..…....12

1.6 Компонент TTimer ……………..…………………………………………...….13

2 Разработка программы ………………………………………………….……….14

2.1 Постановка задачи  ………………………..…………………………………....14

2.2 Блок схема………………………………………………………………….......15

2.3 Алгоритм реализации игровой программы …………………..………….....16

3 Описание пользовательского интерфейса …..……………………….………..24

Заключение ………………………………………………………………….…..…25

Список используемой литературы ……………………………………….………26

Приложение А-Листинг программы……………………………………….27

 

 


 

 

 

 

 

 

 

 

                                                                       у  

Введение

В данной курсовой работе будет разрабатываться игровая программа «Крестики-нолики», которая и будет являться объектом исследования. Потребуется создать полноценную правильно-функционирующую программу и самостоятельно изучим некоторые процедуры и функции.

Delphi - это комбинация нескольких важнейших технологий:

- Высокопроизводительный компилятор в машинный код;

- Объектно-ориентированная модель компонент;

- Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;

- Масштабируемые средства для построения баз данных;

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”.  Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL.  Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на C++ или ручного написания кода (хотя это возможно).

 

 

 

 


 

1    Компоненты Delphi используемые в программе

1.1 Компонент TMainMenu

TMainMenu – позволяет поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка (Рисунок 1). Иконки данного типа называют невидимым (невизуальным) компонентом, поскольку они невидимы во время выполнения программы.


Рисунок 1 Иконки компонентов на форме, созданное меню, компонент TPanel

Создание меню включает три шага:

    1. помещение TMainMenu на форму;
    2. вызов Menu Designer (Рисунок 2);
  1. определение пунктов меню в Menu Designer.


 

Рисунок 2 Menu Designer

Этот компонент доступен из модуля MENUS, и находится на странице Палитры компонентов Standard.

Этот компонент представляет главное меню формы и наследует  все методы и свойства TMenu. Особенность его в том, что в нем реализован сложный механизм объединения меню. Это необходимо по следующим причинам:

    1. Если в приложении имеется несколько форм со своими меню, то для упрощения работы целесообразно соединить их в одно и управлять меню из главной формы.
    2. Объединение меню нужно при работе с интерфейсом MDI и его подокнами.
    3. Механизм объединения меню используется серверами OLE, запускаемыми по месту нахождения объекта OLE. Загружаясь, сервер дописывает осуществляемые им операции к меню другого приложения.

Для того чтобы реализовать  объединение меню, у тех форм, меню которых будут присоединены к главному, необходимо установить в True свойство:

(Pb) property AutoMerge: Boolean;

 

 


 

При этом у главного меню оно должно оставаться равным False, иначе главное меню будет вообще невидимым. Объединение будет происходить автоматически при активизации новых форм или серверов OLE. Кроме автоматического режима, объединение меню можно выполнить при вызове метода:

procedure Merge(Menu: TMainMenu);

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

1.2 Компонент TLabel

TLabel – служит для отображения текста на экране (Рисунок 3). Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.



Рисунок 3 TImage и TLabel на форме

Этот компонент доступен из модуля STDCTRLS, и находится на странице Палитры компонентов Standard.

Компонент представляет собой статический текст. С помощью  этого компонента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов. Но он имеет и другую важную функцию – если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другому элементу управления.

 

 

 

 

 

 

1.3 Компонент TPanel

TPanel – управляющий, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него (Рисунок 1). Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания панели инструментов и окна статуса.

Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Standard.

Этот компонент — является несущей  конструкцией для размещения других элементов управления. В отличие  от простой рамки (TBevel) панель сама является оконным элементом управления и родителем для всех размещенных на ней компонентов. Часто ее используют для создания панелей инструментов, строк состояния и т. п.

На границах панели размещаются  две специальные окаймляющие  рамки (bevels): BevelInner и BevelOuter. При помощи комбинации белого и серого цветов они имитируют трёхмерность – приподнятость (bvRaised) или утопленность (bvLowered). Также рамки могут быть невидимыми (bvNone).

Выравнивание текста заголовка панели определяется при  помощи свойства:

(Pb) property Alignment: TAlignment;

 

 

 

 


 

 

 

 

1.4 Компонент TImage

TImage – отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу (Рисунок 3).

Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Additional.

Этот компонент служит надстройкой над классом TPicture и замыкает всю иерархию графических объектов VCL. Он предназначен для показа на форме изображения: битовой карты (TBitmap), метафайла (TMetafile), значка (TIcon).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

1.5 Компонент TImageList

TImageList представляет собой контейнер для хранения множества рисунков одинакового размера. Он может быть полезен при программном создании набора инструментальных кнопок, секций управляющего заголовка, при разработке программ, использующих анимационные эффекты, и вообще там, где требуется индексированный доступ к изображениям. Воспринимает форматы BMP, ICO.

При помещении TImageList на форму это выглядит, как просто иконка (Рисунок 1). Иконки данного типа называют невидимым (невизуальным) компонентом, поскольку они невидимы во время выполнения программы. Этот компонент находится на странице Палитры компонентов Win 32.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

1.6 Компонент TTimer

TTimer (таймер) служит для отсчета интервалов реального времени. Его свойство interval определяет интервал времени в миллисекундах, который должен пройти от включения таймера до наступления события onTimer. Таймер включается при установке значения True в его свойство Enabled. Раз включенный таймер все время будет возбуждать события onTimer до тех пор, пока его свойство Enabled не примет значения False.

При помещении TTimer на форму это выглядит, как просто иконка (Рисунок 1). Иконки данного типа называют невидимым (невизуальным) компонентом, поскольку они не видимы во время выполнения программы. Этот компонент находится на странице Палитры компонентов System.

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 


2 Разработка программы

2.1 Постановка задачи

Разработать игровую программу «Крестики-нолики», которая включает в себя игровую панель, состоящую из девяти клеток (панелей), образующих собой один большой квадрат. Игровая программа рассчитана на двух игроков. Противникам поочерёдно предоставляется ход, один играет символом «X», другой – «O». Выигрывает тот, кто первым заполнит ряд панелей своим символом: любой из трёх рядов по горизонтали или вертикали, либо любой ряд по диагонали.

 

 

 

 

 

 

 

 

 

 

 

2.2 Блок схема


 

 

 

 

 

 

 

 

                                                                                                              нет

 

 

                                                                                 да

 

                                                                                                  нет

 

 

                                                                                 да

 

 


 

2.3 Алгоритм реализации игровой программы

Запуск программы осуществляется следующим образом: необходимо открыть папку, содержащую данную игру, и найти исполняемый файл SGIRG.exe.

Проект программы состоит  из файла проекта, содержащего необходимые конструкции для исполнения, и трёх модулей Unit1, Unit2 и Unit3.

Модуль Unit1 является основным модулем проекта, содержащим все необходимые для работы программы процедуры.

После запуска программы  на экран выводится основная форма Form1 (рисунок 4), на которой расположены: главное меню и игровое поле.

Игра, т.е. работа программы, начинается сразу же после запуска, ход сначала предоставляется  игроку, выбравшему символ «X».

 

В первую очередь пишем  процедуру очистки игрового поля – clean. Сначала для надёжности выключаем таймер, меняем стиль панели на начальный (Form1.Panel2.BevelInner:=bvNone) и очищаем заголовок (Form1.Panel2.Caption:=' '). Данную операцию расписываем на все девять панелей игрового поля. В конце возобновляем работу таймера.


 

Рисунок 4 Вид программы после запуска

Далее выполняем проверку на “мухлёж”, т.е. проверяем заголовок каждой панели игрового поля. Если заголовок панели пуст, то на данную панель разрешено нажимать, если же ему присвоено какое-либо значение («X» либо «O»), то при нажатии на данную панель ничего не будет происходить:

if Panel2.Caption<>' ' then exit;

При нажатии на панель, для большей красоты, меняем её стиль (Panel2.BevelInner:=bvLowered). Перед нами встал вопрос: как сделать чередование «X» и «O»?! Всё просто, чередование делаем с помощью условного оператора If. Если Tag равен нулю, то в заголовок данной панели записываем символ «X» и присваиваем в Tag единицу, в противном случае в заголовок записываем символ «O» и присваиваем в Tag ноль.


  Пример нажатой панели изображён на рисунке 5.

 

 

 

 

 

 

 

         

if Form1.Tag=0

  then

   begin

    Panel.Caption:='X';

    Form1.Tag:=1;

   end

  else

   begin

    Panel.Caption:='O';

    Form1.Tag:=0;

   end;


 

 

Таким же образом описываем каждую панель игрового поля.

Следующим шагом написания  программы является процедура проверки на выигрыш. В качестве данной процедуры  используем компонент TTimer.

Когда подпрограмма сталкивается с невозможностью выполнения последующих действий, она создает объект с описанием ошибки и прерывает нормальный ход своей работы с помощью оператора Raise. Данный оператор создает объект класса EOutOfMemory (класс ошибок исчерпания памяти) и прерывает нормальное выполнение программы. Вызывающие подпрограммы могут эту ситуацию перехватить и обработать. Для этого в них организуется так называемый защищенный блок:

try

   // Защищаемые от ошибок операторы

except

   // Операторы обработки исключительной ситуации

end;

Информация о работе Делфи игра крестики нолики