Создание игровой логической программы "Стеночки"
Рассмотрение программных игр, виртуальных развлечений для мозга человека. Компоненты Delphi, используемые в процессе создание игровой логической программы "Стеночки". Изучение блок-схемы программного приложения. Алгоритм реализации игровой программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.02.2017 |
Размер файла | 505,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http: //www. allbest. ru/
Содержание
Введение
1. Основная часть
1.1 История описание
1.2 Постановка задачи
2. Специальная часть
2.1 Компоненты Delphi используемые в программе
2.2 Алгоритм реализации игровой программы
2.3 Блок-схема программы работы
2.4 Листинг программы
Заключение
Список литературы
Введение
В данной курсовой работе речь пойдет о создании игровой логической программы «Стеночки», которая и будет являться объектом исследования.
Полезность логических игр состоит в том, что они развивают навыки логического мышления. Чаще всего игра представляет собой одну задачу или набор нескольких головоломок (например, задачи на перестановку фигур или составление рисунка), которые должен решить играющий, пожалуй, это одни из самых увлекательных и интересных игр. Для любителей интеллектуальных развлечений и задачек для мозга логические игры - это лучшая пища для ума. Логические игры развивают воображение и пространственное мышление, тренируют память и стимулируют желание упорно идти к победе. Любые логические игры в силах отвлечь игрока от жизненных проблем, позволяя окунуться в процесс игры с головой. Рассчитывая траекторию мяча или шара, строя в определенной последовательности фигуры, разгадывая головоломки, соревнуясь в шашки, шахматы и маджонг, вы тренируете логику и память.
В процессе разработки, потребуется создать полноценную правильно-функционирующую программу и закрепить полученные знания о программировании в Delphi.
Действительно, процесс разработки в Delphi предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Вы просто помещаете нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настраиваете их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке и т.д.) с кодом его обработки - и вот простое приложение готово. Причем разработчик получает в свое распоряжение мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему (в том числе и по Microsoft API), средства коллективной работы над проектом, всего просто не перечислить. Вы можете создавать компоненты ActiveX без использования Microsoft IDL, расширять возможности web-сервера (скрипты на стороне сервера), практически ничего не зная об HTML, XML или ASP. Можно создавать распределенные приложения на базе СОМ и CORBA, Интернет- и intranet-приложения, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. Появившаяся, начиная с Delphi 3, поддержка многозвенной технологии (multi-tiered) доступа к данным позволяет создавать масштабируемые приложения (относительно слабо зависящие от сервера БД) за счет перенесения методов обработки информации (бизнес-правил) на среднее звено.
Таким образом, вы можете использовать Delphi для создания как самых простых приложений, на разработку которых требуется 2-3 часа, так и серьезных корпоративных проектов, предназначенных для работы десятков и сотен пользователей. Причем для этого можно использовать самые последние веяния в мире компьютерных технологий с минимальными затратами времени и сил. delphi логический игровой программный
Ну, и одна из самых последних новостей от Inprise обещает, что в ближайшем будущем вы сможете переносить приложения, разработанные в Delphi, на платформу Linux. Более подробную информацию о Delphi можно получить на сайтах www.inprise.com и www.inprise.ru. Существует большое количество сайтов, посвященных Delphi, например <Королевство Delphi> - delphi.vitpc.com, Torry's Delphi Pages - www.torry.ru. Последний содержит большое число ссылок на ресурсы, связанные с Delphi. Ну а если вы уже давно знакомы с этим продуктом, то на сайте www.brainbench.com можно бесплатно протестироваться в качестве программиста Delphi 3 и получить по почте сертификат.
В данной курсовой работе рассматриваются аспекты программирования игр с использованием визуальных компонентов. Приводится описание компонентов, используемых при реализации практической части курсовой работы, этапы разработки программы, такие как постановка задачи, составление блок-схемы, алгоритм реализации и описание пользовательского интерфейса.
В заключении приведены выводы по курсовой работе, достоинства и недостатки.
Список использованных источников содержит полный перечень технической литературы, использованной для написания данной курсовой работы.
1. Основная часть
1.1 История и описание
Эту игру Мартин Гарднер, известный популяризатор науки и автор книг по занимательной математике, назвал жемчужиной логических игр. В отечественной литературе она также встречается под названием "Вышивка" или "Сундучки". На Западе эту игру называют Nine Squares.
Игровое поле представляет из себя четыре ряда по четыре точки. Играющие соединяют соседние по вертикали или горизонтали точки отрезками. Ходы делаются по очереди, но если игрок замкнул своим ходом один или два единичных квадратика, то он обязан продолжать делать ходы, пока не сделает ход, не замыкающий квадратик, или до конца игры. Когда проведены все отрезки, подсчитываются квадратики, которые замкнул каждый игрок. Выигрывает тот, кто замкнул больше квадратиков. Так как всего имеется не четное количество квадратиков, то ничьей здесь не бывает.
В «Стеночки» обычно играют на поле 5х5 или 7х7 квадратиков, но и на поле 3х3 игра представляет для человека немалую сложность. Здесь, как и в шахматах, возможны комбинационные удары, когда более опытный игрок дает новичку замкнуть один или несколько квадратиков, чтобы тот затем сделал невыгодный ход и проиграл.
Целью комбинации всегда является выигрыш темпа. Полный набор стратегий достаточно сложен и до сих пор не классифицирован.
Так, только в 2001 году было показано, что игра на поле 3х5 выигрышна для второго игрока. Рассмотрим сначала позицию на рис. 1. Здесь игроки уже исчерпали ходы, после которых нельзя замкнуть квадратик, и партия, выражаясь шахматным языком, перешла в стадию эндшпиля. Игровое поле разбито на две области из двух и из семи квадратиков.
Ясно, что тот, кто вынужден будет сделать ход в нижней области, сразу проиграет, т.к. его соперник замкнет семь квадратиков.
Второй игрок, которому сейчас ходить, должен дать возможность замкнуть первому два квадратика сверху.
Но далеко не все равно, как это сделать.
Надо сделать такой ход, чтобы выиграть темп и передать очередь хода тогда, когда останутся только ходы в области, содержащей семь квадратиков. Если a4-b4, то первый игрок отвечает b4-c4!, отдавая два квадратика наверху и выигрывая партию.
К победе ведет только b3-b4! Аналогичная идея присутствует в окончании на рис. 2.
После очевидных ходов c4-d4 d3-d4 второй игрок замыкает квадратик и должен продолжать игру: a4-b4. Если теперь первый игрок замкнет все четыре квадратика, то он проиграет. Правильно a3-b3, a2-b2 и b1-c1! Ход a2-b2 можно не делать.
Теперь перейдем к более сложным случаям.
В позиции на рис. 3 выиграть можно только комбинационным ходом b2-c2, c1-c2, c2-c3 или c2-d2. Соперник может принять или отклонить жертву, но в любом случае он вынужден будет отдать пять квадратиков внизу. В этой позиции даже не важно, кто замкнул два квадратика сверху.
В точках и квадратах на поле 3х3, с учетом симметрии, не так уж и много различных позиций. Опытные игроки, конечно, знают, к каким позициям надо стремиться при своем ходе, а к каким при ходе партнера.
1.2 Постановка задачи
Разработать, в среде программирования Delphi, игру «Стеночки»: Играют два игрока на клетчатом поле. Каждый игрок ставит за один ход одну стену. Если клетка становится ограниченной с четырех сторон, то она считается завоеванной игроком, поставившим четвертую стенку. Игроку, завоевавшему клетку, дается право поставить еще одну стенку. Побеждает игрок, завоевавший наибольшее число клеток.
2. Специальная часть
2.1 Компоненты Delphi используемые в программе
Компонент TLabel
TLabel служит для отображения текста на экране. Можно изменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в Инспекторе Объектов. Видно, что это легко сделать и во время выполнения программы, написав всего одну строчку кода.
Этот компонент доступен из модуля STDCTRLS, и находится на странице Палитры компонентов Standard.
Компонент представляет собой статический текст. С помощью этого компонента на рабочей поверхности формы можно отобразить информацию, сделать пояснения и показать названия других компонентов. Но он имеет и другую важную функцию -- если в составе текста TLabel есть символы-акселераторы, информация об их нажатии может передаваться от TLabel другому элементу управления.
Свойства компонента приведены в табл.1:
Свойства компонента TLabel
Свойство |
Описание |
|
(Pb) property Caption: TCaption; TCaption = string[255]; |
Содержит строку с выводимым текстом. |
|
(Pb) property Alignment: TAlignment; |
Устанавливает правило выравнивания текста -- по правому, левому краю или по центру клиентской области. |
|
(Pb) property AutoSize: Boolean; |
В случае True происходит автоматическое приведение размеров компонента к размерам текста и высоте шрифта. |
|
(Pb) property FocusControl: TWinControl; |
Определяет оконный компонент, которому посылаются сообщения о вводе акселе ратора. |
|
(Pb) property Transparent: Boolean; |
Прозрачность фона компонента. Если свойство установлено в True, то при перерисовке элемента управления не про исходит закрашивание клиентской облас ти. В противном случае -- происходит закрашивание кистью bsSolid и цветом Color. |
|
(Pb) property WordWrap: Boolean; |
Определяет возможность разрыва слов в случае, если длина выводимого текста превышает ширину компонента. |
Компонент TPanel
TPanel - управляющий, похожий на TGroupBox, используется в декоративных целях. Чтобы использовать TPanel, просто поместите его на форму и затем положите другие компоненты на него. Теперь при перемещении TPanel будут передвигаться и эти компоненты. TPanel используется также для создания панели инструментов и окна статуса.
Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Standard.
Этот компонент -- является несущей конструкцией для размещения других элементов управления. В отличие от простой рамки (TBevel) панель сама является оконным элементом управления и родителем для всех размещенных на ней компонентов. Часто ее используют для создания панелей инстру ментов, строк состояния и т. п.
За внешнее оформление панели отвечают свойства:
(Pb) property Bevel Inner: TPanelBevel;
(Рb) property BevelOuter: TPanelBevel;
TPanelBevel = (bvNone, bvLowered, bvRaised) ;
(Pb) property BevelWidth: TBevelWidth;
TBevelWidth = 1..Maxint;
(Pb) property BorderWidth: TBorderWidth;
TBorderWidth = 0..Maxint ;
На границах панели размещаются две специальные окаймляющие рамки (bevels): Bevellnner и BevelOuter. При помощи комбинации белого и серого цветов они имитируют трехмерность -- приподнятость (bvRaised) или утоп-ленность (bvLowered). Обе рамки имеют ширину BevelWidth. Наружная -- BevelOuter -- расположена прямо по периметру панели, вторая -- Bevellnner -- внутри на расстоянии BorderWidth от нее. Обе могут быть невидимыми (bvNone), приподнятыми или утопленными.
Комбинируя сочетания bvLowered/bvRaised, можно создать вокруг панели "ров" или "вал".
Иллюзию трехмерности может подчеркнуть также стиль обрамления компонента:
(Pb) property BorderStyle: TBorderStyle;
TBorderStyle = bsNone.. bsSingle;
Значение bsSingle означает, что панель будет окаймлена черной линией единичной толщины (по периметру, снаружи от обеих рамок).
Выравнивание текста заголовка панели определяется при помощи свойства:
(Pb) property Alignment: TAlignment;
Компонент TImage
TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.
Этот компонент доступен из модуля EXTCTRLS, и находится на странице Палитры компонентов Additional.
Этот компонент служит надстройкой над классом TPicture и замыкает всю иерархию графических объектов VCL. Он предназначен для показа на форме изображения: битовой карты (TBitmap), метафайла (TMetafile), значка (TIcon).
Свойство (Pb) property Picture: TPicture; служит контейнером для графического объекта одного из перечисленных клас сов.
В качестве канвы используется канва объекта Picture. Graphic -- только если поле Graphic ссылается на объект класса TBitmap:
(Pb) property Canvas: TCanvas;
Если это не так, то попытка обращения к свойству вызовет исключительную ситуацию EInvalidOperation, так как рисовать на метафайле или значке нельзя.
Следующие три свойства определяют, как именно Tpicture располагается в рабочей области компонента:
(Pb) property AutoSize: Boolean;
-- означает, что размеры компонента настраиваются по размерам содержащегося в нем графического объекта. Устанавливать его в True нужно перед загрузкой изображения из файла или буфера обмена;
(Pb) property Stretch: Boolean;
-- если это свойство установлено в True, то изображение "натягивается" на рабочую область, при необходимости уменьшая или увеличивая свои размеры. Если оно установлено в False, то играет роль следующее свойство;
(Pb) property Center: Boolean;
-- если это свойство установлено в True, изображение центрируется в пределах рабочей области. В противном случае -- располагается в ее верхнем левом углу.
Компонент TShape
TObject -> TPersistent -> TComponent -> TControl -> TGraphicControl -> TShape
Страница Палитры компонентов Additional.
Этот компонент предназначен только для того, чтобы нарисовать и показать на своей поверхности простейшую геометрическую фигуру:
(Pb) property Shape: TShapeType;
Рисуемая фигура -- одна из предопределенных в множестве:
TShapeType = (stRectangle, stSquare, stRoundRect, stRoundSquare, stEllipse, stCircle) ;
Размеры фигуры соответствуют размерам компонента. Если задан квадрат или круг, а ширина и высота компонента не равны между собой, то сторона или диаметр фигуры будут равны длине меньшей стороны компонента.
Кисть и перо, которыми рисуется и закрашивается фигура, представлены свой ствами:
(Pk) property Brush: TBrush;
(Рb) property Pen: TPen;
Метод, исполняемый при изменении фигуры, кисти или пера
procedure StyleChangedfSender: TObject);
выполняет перерисовку компонента.
Компонент TButton
TObject -> TPersistent -> TCornponent -> TControl -> TWinControl -> -*TButtonControl -> TButton
Модуль STDCTRLS.
Страница Палитры компонентов Standard.
Обычная кнопка Windows. В этом компоненте опубликованы только приведенные выше свойства Default, Cancel, Caption, ModalResult и OnClick. Двойной щелчок на кнопке не предусмотрен.
2.2 Алгоритм реализации игровой программы
Запуск программы осуществляется следующим образом: необходимо открыть папку, содержащую данную игру, и найти исполняемый файл game.exe. На этом файле следует выполнить двойной щелчок левой клавишей манипулятора мышь.
Проект программы состоит из файла проекта, содержащего необходимые конструкции для исполнения, и двух модулей Unit1 и Unit2.
Модуль Unit2 предназначен для вывода окна, содержащего информацию о программе(Рис.11).
Модуль Unit1 является основным модулем проекта, содержащим все необходимые для работы программы процедуры.
После запуска программы на экран выводится основная форма Form1 (Рис.12), на которой расположены следующие объекты:
1. Кнопка «Новая игра»
2. Кнопка «Выход»
3. Индикатор «Чей ход?»
4. Игровое поле
5. Счетчики очков
6. Вызов помощи
Игра, т.е. работа программы начинается сразу после запуска. При создании Form1 процедура FormCreate присваивает переменной gamer, хранящей значение игрока делающего ход, значение False, индикатору «Чей ход?» Label1 - цвет первого игрока, т.е. красный и «обнуляет» переменные g1kol и g2kol, хранящие количество очков игроков.
При щелчке на стеночке вызывается процедура root, суть работы которой, приведена в блок-схеме (подробные комментарии в см. в листинге). Эта процедура, собственно, является основной в работе программы, т.к. с ее помощью осуществляется сам игровой процесс: закрытые стенки и клетки окрашиваются в цвет игрока, сделавшего ход; ведется начисление и вывод количества набранных очков; индикатор «Чей ход?» окрашивается в цвет игрока, которому предстоит сделать ход. Когда будет закрыто больше половины клеток процедура root сообщит о победе одного из игроков.
При нажатии кнопки «Новая игра», запустится процедура Button1Click, приводящая значения переменных, счетчиков и свойства объектов в первоначальное состояние.
2.3 Блок-схема работы программы
Выход из игры можно осуществить нажатием кнопки «Выход» обращающейся к процедуре Button2Click, которая и завершает работу приложения.
Нажав на изображение вопросительного знака в нижнем правом углу программы, процедура Image1Click, вызовет создание Form2, содержащей, описанную выше информацию о игре, и кнопку закрытия окна.
2.4 Листинг программы
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.res}
begin
Application.Initialize;
Application.Title := 'Стеночки';
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, jpeg;
type
TForm1 = class(TForm)
Panel1: TPanel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Shape4: TShape;
Shape5: TShape;
Shape6: TShape;
Shape7: TShape;
Shape8: TShape;
Shape9: TShape;
Shape10: TShape;
Shape11: TShape;
Shape12: TShape;
Shape13: TShape;
Shape14: TShape;
Shape15: TShape;
Shape16: TShape;
Shape17: TShape;
Shape18: TShape;
Shape19: TShape;
Shape20: TShape;
Shape21: TShape;
Shape22: TShape;
Shape23: TShape;
Shape24: TShape;
Shape25: TShape;
Shape26: TShape;
Shape27: TShape;
Shape28: TShape;
Shape29: TShape;
Shape30: TShape;
Shape31: TShape;
Shape32: TShape;
Shape33: TShape;
Shape34: TShape;
Shape35: TShape;
Shape36: TShape;
Shape37: TShape;
Shape38: TShape;
Shape39: TShape;
Shape40: TShape;
Shape41: TShape;
Shape42: TShape;
Shape43: TShape;
Shape44: TShape;
Shape45: TShape;
Shape46: TShape;
Shape47: TShape;
Shape48: TShape;
Shape49: TShape;
Shape50: TShape;
Shape51: TShape;
Shape52: TShape;
Shape53: TShape;
Shape54: TShape;
Shape55: TShape;
Shape56: TShape;
Shape57: TShape;
Shape58: TShape;
Shape59: TShape;
Shape60: TShape;
Shape61: TShape;
Shape62: TShape;
Shape63: TShape;
Shape64: TShape;
Shape65: TShape;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button2: TButton;
Label3: TLabel;
Panel2: TPanel;
Label4: TLabel;
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Shape46MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape26MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape47MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape27MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape50MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape28MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape48MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape51MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape52MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape29MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape49MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape53MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape30MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape31MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape32MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape33MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape34MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape35MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape54MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape55MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape56MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape57MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape36MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape37MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape38MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape39MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape40MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape58MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape59MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape60MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape61MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape41MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape42MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape43MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape44MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape45MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape62MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape63MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape64MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Shape65MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Image1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
gamer:Boolean; //переменная хранящая игрока выполняющего ход
g1kol:Integer; //количество очков первого игрока
g2kol:Integer; //количество очков второго игрока
implementation
uses ConvUtils, Unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); //при создании формы
begin
gamer:=False; //присваеваем переменной значение соответствующее первому игроку
g1kol:=0; //устанавливаем количество очков игрокам, равным нулю
g2kol:=0;
Label1.Color:=clRed;//присваеваем индикатору цвет первого игрока
end;
procedure root(a: TShape; b: TShape; //действия при клике на стенку
c: TShape; x, y: Integer; d: TLabel);
begin
a.Enabled:=false; //делаем невозможным повторное нажатие на сенку
if gamer=False then //если играет первый игрок
begin
gamer:=true; //передаем ход второму игроку
a.Pen.Color:=clRed;//окрашиваем стенку в цвет игрока сделавшего ход
d.Color:=clGreen; //присваеваем индикатору цвет второго игрока
b.Tag:=b.Tag+1; //добавляем в теги,связанных стенкой клеток,единицу
c.Tag:=c.Tag+1;
end
else //если играет второй игрок
begin
gamer:=False; //передаем ход первому игроку
a.Pen.Color:=clGreen; //окрашиваем стенку в цвет игрока сделавшего ход
d.Color:=clRed; //присваеваем индикатору цвет первого игрока
b.Tag:=b.Tag+1; //добавляем в теги смежных со стенкой клеток единицу
c.Tag:=c.Tag+1;
end;
if ((b.Tag=x) and (c.Tag=y)) then //если закрываются связанные тупики
begin
if gamer=False then//если ход уже передан первому игроку => играл второй
begin
b.Brush.Color:=clLime; //закрашиваем смежные клетки в цвет игрока
c.Brush.Color:=clLime;
d.Color:=clGreen; //присваеваем индикатору цвет второго игрока
gamer:=True; //даем повторный ход
g2kol:=g2kol+2; //добавляем второму игроку два очка
end
else //если ход делал первый игрок
begin
b.Brush.Color:=clMaroon;//закрашиваем смежные клетки в цвет игрока
c.Brush.Color:=clMaroon;
d.Color:=clRed; //присваеваем индикатору цвет второго игрока
gamer:=False; //даем повторный ход
g1kol:=g1kol+2; //добавляем первому игроку два очка
end;
end
else
begin
if b.Tag=x then //если закрыта одна из смежных клеток
begin
if gamer=False then//если ход уже передан первому игроку => играл второй
begin
b.Brush.Color:=clLime;//закрашиваем клетку в цвет игрока
d.Color:=clGreen; //присваеваем индикатору цвет второго игрока
gamer:=True; //даем повторный ход
g2kol:=g2kol+1; //добавляем второму игроку одно очко
end
else //если ход делал первый игрок
begin
b.Brush.Color:=clMaroon;//закрашиваем клетку в цвет игрока
d.Color:=clRed; //присваеваем индикатору цвет первого игрока
gamer:=False; //даем повторный ход
g1kol:=g1kol+1; //добавляем первому игроку одно очко
end;
end;
if c.Tag=y then //если закрыта вторая из смежных клеток
begin
if gamer=False then//если ход уже передан первому игроку => играл второй
begin
c.Brush.Color:=clLime;//закрашиваем клетку в цвет игрока
d.Color:=clGreen; //присваеваем индикатору цвет второго игрока
gamer:=True; //даем повторный ход
g2kol:=g2kol+1 //добавляем второму игроку одно очко
end
else //если ход делал первый игрок
begin
c.Brush.Color:=clMaroon;//закрашиваем клетку в цвет игрока
d.Color:=clRed; //присваеваем индикатору цвет первого игрока
gamer:=False; //даем повторный ход
g1kol:=g1kol+1; //добавляем первому игроку одно очко
end;
end;
end;
Form1.Label2.Caption:=IntToStr(g2kol); //выводим на счетчик количество
Form1.Label3.Caption:=IntToStr(g1kol); //очков игрока
if g1kol>=13 then ShowMessage('Красные выиграли!');//если один из игроков закрыл больше
if g2kol>=13 then ShowMessage('Зеленые выиграли!');//половины клеток-выводим сообщение о победе
end;
procedure TForm1.Shape46MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); //при кликах по стенке
begin
root (Shape46,Shape1,Shape25,2,3,Label1);//вызываем процедуру, передавая
end; //параметры:две смежные клетки и максимальное значение тегов клеток
procedure TForm1.Shape26MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape26,Shape1,Shape22,2,3,Label1);
end;
procedure TForm1.Shape47MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape47,Shape25,Shape2,3,3,Label1);
end;
procedure TForm1.Shape27MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape27,Shape25,Shape9,3,4,Label1);
end;
procedure TForm1.Shape50MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape50,Shape22,Shape9,3,4,Label1);
end;
procedure TForm1.Shape28MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape28,Shape2,Shape12,3,4,Label1);
end;
procedure TForm1.Shape48MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape48,Shape2,Shape3,3,3,Label1);
end;
procedure TForm1.Shape51MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape51,Shape9,Shape12,4,4,Label1);
end;
procedure TForm1.Shape52MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape52,Shape12,Shape7,4,4,Label1);
end;
procedure TForm1.Shape29MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape29,Shape3,Shape7,3,4,Label1);
end;
procedure TForm1.Shape49MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape49,Shape3,Shape4,3,2,Label1);
end;
procedure TForm1.Shape53MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape53,Shape7,Shape6,4,3,Label1);
end;
procedure TForm1.Shape30MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape30,Shape4,Shape6,2,3,Label1);
end;
procedure TForm1.Shape31MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape31,Shape22,Shape8,3,3,Label1);
end;
procedure TForm1.Shape32MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape32,Shape9,Shape13,4,4,Label1);
end;
procedure TForm1.Shape33MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape33,Shape12,Shape17,4,4,Label1);
end;
procedure TForm1.Shape34MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape34,Shape7,Shape18,4,4,Label1);
end;
procedure TForm1.Shape35MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape35,Shape6,Shape24,3,3,Label1);
end;
procedure TForm1.Shape54MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape54,Shape8,Shape13,3,4,Label1);
end;
procedure TForm1.Shape55MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape55,Shape13,Shape17,4,4,Label1);
end;
procedure TForm1.Shape56MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape56,Shape17,Shape18,4,4,Label1);
end;
procedure TForm1.Shape57MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape57,Shape18,Shape24,4,3,Label1);
end;
procedure TForm1.Shape36MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape36,Shape8,Shape10,3,3,Label1);
end;
procedure TForm1.Shape37MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape37,Shape13,Shape14,4,4,Label1);
end;
procedure TForm1.Shape38MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape38,Shape17,Shape15,4,4,Label1);
end;
procedure TForm1.Shape39MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape39,Shape18,Shape19,4,4,Label1);
end;
procedure TForm1.Shape40MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape40,Shape24,Shape23,3,3,Label1);
end;
procedure TForm1.Shape58MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape58,Shape10,Shape14,3,4,Label1);
end;
procedure TForm1.Shape59MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape59,Shape14,Shape15,4,4,Label1);
end;
procedure TForm1.Shape60MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape60,Shape15,Shape19,4,4,Label1);
end;
procedure TForm1.Shape61MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape61,Shape19,Shape23,4,3,Label1);
end;
procedure TForm1.Shape41MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape41,Shape10,Shape11,3,2,Label1);
end;
procedure TForm1.Shape42MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape42,Shape14,Shape21,4,3,Label1);
end;
procedure TForm1.Shape43MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape43,Shape15,Shape16,4,3,Label1);
end;
procedure TForm1.Shape44MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape44,Shape19,Shape20,4,3,Label1);
end;
procedure TForm1.Shape45MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape45,Shape23,Shape5,3,2,Label1);
end;
procedure TForm1.Shape62MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape62,Shape11,Shape21,2,3,Label1);
end;
procedure TForm1.Shape63MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape63,Shape21,Shape16,3,3,Label1);
end;
procedure TForm1.Shape64MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape64,Shape16,Shape20,3,3,Label1);
end;
procedure TForm1.Shape65MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
root (Shape65,Shape20,Shape5,3,2,Label1);
end;
procedure TForm1.Button2Click(Sender: TObject); //при щелчке на кнопке "выход"
begin
Application.Terminate; //завершаем программу
end;
procedure TForm1.Button1Click(Sender: TObject);//при щелчке на кнопке "новая игра"
begin
gamer:=False; //присваеваем переменной значение соответствующее первому игроку
g1kol:=0; //устанавливаем количество очков игрокам, равным нулю
g2kol:=0;
Label1.Color:=clRed;//присваеваем индикатору цвет первого игрока
Label2.Caption:='0'; //обнуляем счетчик очков
Label3.Caption:='0';
Shape1.Brush.Color:=clWhite; //меняем цвет клеток на исходный
Shape2.Brush.Color:=clWhite;
Shape3.Brush.Color:=clWhite;
Shape4.Brush.Color:=clWhite;
Shape5.Brush.Color:=clWhite;
Shape6.Brush.Color:=clWhite;
Shape7.Brush.Color:=clWhite;
Shape8.Brush.Color:=clWhite;
Shape9.Brush.Color:=clWhite;
Shape10.Brush.Color:=clWhite;
Shape11.Brush.Color:=clWhite;
Shape12.Brush.Color:=clWhite;
Shape13.Brush.Color:=clWhite;
Shape14.Brush.Color:=clWhite;
Shape15.Brush.Color:=clWhite;
Shape16.Brush.Color:=clWhite;
Shape17.Brush.Color:=clWhite;
Shape18.Brush.Color:=clWhite;
Shape19.Brush.Color:=clWhite;
Shape20.Brush.Color:=clWhite;
Shape21.Brush.Color:=clWhite;
Shape22.Brush.Color:=clWhite;
Shape23.Brush.Color:=clWhite;
Shape24.Brush.Color:=clWhite;
Shape25.Brush.Color:=clWhite;
Shape26.Pen.Color:=clBlack; //меняем цвет стенок на исходный
Shape27.Pen.Color:=clBlack;
Shape28.Pen.Color:=clBlack;
Shape29.Pen.Color:=clBlack;
Shape30.Pen.Color:=clBlack;
Shape31.Pen.Color:=clBlack;
Shape32.Pen.Color:=clBlack;
Shape33.Pen.Color:=clBlack;
Shape34.Pen.Color:=clBlack;
Shape35.Pen.Color:=clBlack;
Shape36.Pen.Color:=clBlack;
Shape37.Pen.Color:=clBlack;
Shape38.Pen.Color:=clBlack;
Shape39.Pen.Color:=clBlack;
Shape40.Pen.Color:=clBlack;
Shape41.Pen.Color:=clBlack;
Shape42.Pen.Color:=clBlack;
Shape43.Pen.Color:=clBlack;
Shape44.Pen.Color:=clBlack;
Shape45.Pen.Color:=clBlack;
Shape46.Pen.Color:=clBlack;
Shape47.Pen.Color:=clBlack;
Shape48.Pen.Color:=clBlack;
Shape49.Pen.Color:=clBlack;
Shape50.Pen.Color:=clBlack;
Shape51.Pen.Color:=clBlack;
Shape52.Pen.Color:=clBlack;
Shape53.Pen.Color:=clBlack;
Shape54.Pen.Color:=clBlack;
Shape55.Pen.Color:=clBlack;
Shape56.Pen.Color:=clBlack;
Shape57.Pen.Color:=clBlack;
Shape58.Pen.Color:=clBlack;
Shape59.Pen.Color:=clBlack;
Shape60.Pen.Color:=clBlack;
Shape61.Pen.Color:=clBlack;
Shape62.Pen.Color:=clBlack;
Shape63.Pen.Color:=clBlack;
Shape64.Pen.Color:=clBlack;
Shape65.Pen.Color:=clBlack;
Shape1.Tag:=0; //обнуляем теги клеток
Shape2.Tag:=0;
Shape3.Tag:=0;
Shape4.Tag:=0;
Shape5.Tag:=0;
Shape6.Tag:=0;
Shape7.Tag:=0;
Shape8.Tag:=0;
Shape9.Tag:=0;
Shape10.Tag:=0;
Shape11.Tag:=0;
Shape12.Tag:=0;
Shape13.Tag:=0;
Shape14.Tag:=0;
Shape15.Tag:=0;
Shape16.Tag:=0;
Shape17.Tag:=0;
Shape18.Tag:=0;
Shape19.Tag:=0;
Shape20.Tag:=0;
Shape21.Tag:=0;
Shape22.Tag:=0;
Shape23.Tag:=0;
Shape24.Tag:=0;
Shape25.Tag:=0;
Shape26.Enabled:=True; //возвращаем возможность нажатия на стенки
Shape27.Enabled:=True;
Shape28.Enabled:=True;
Shape29.Enabled:=True;
Shape30.Enabled:=True;
Shape31.Enabled:=True;
Shape32.Enabled:=True;
Shape33.Enabled:=True;
Shape34.Enabled:=True;
Shape35.Enabled:=True;
Shape36.Enabled:=True;
Shape37.Enabled:=True;
Shape38.Enabled:=True;
Shape39.Enabled:=True;
Shape40.Enabled:=True;
Shape41.Enabled:=True;
Shape42.Enabled:=True;
Shape43.Enabled:=True;
Shape44.Enabled:=True;
Shape45.Enabled:=True;
Shape46.Enabled:=True;
Shape47.Enabled:=True;
Shape48.Enabled:=True;
Shape49.Enabled:=True;
Shape50.Enabled:=True;
Shape51.Enabled:=True;
Shape52.Enabled:=True;
Shape53.Enabled:=True;
Shape54.Enabled:=True;
Shape55.Enabled:=True;
Shape56.Enabled:=True;
Shape57.Enabled:=True;
Shape58.Enabled:=True;
Shape59.Enabled:=True;
Shape60.Enabled:=True;
Shape61.Enabled:=True;
Shape62.Enabled:=True;
Shape63.Enabled:=True;
Shape64.Enabled:=True;
Shape65.Enabled:=True;
end;
procedure TForm1.Image1Click(Sender: TObject); //вызов окна помощи
begin
Form2.ShowModal;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject); //закрытие окна помощи
begin
Form2.Close;
end;
end.
Заключение
В результате выполнения данной курсовой работы был получен игровой программный продукт, названный «Стеночки». Было проведено исследование компонентов программной среды Borland Delphi 6.0, которые использовались при создании игры.
Были выявлены следующие недостатки полученного программного продукта:
1. Отсутствие возможности игры с компьютером, связанное со сложностью стратегий игры и невозможностью для метода случайных ходов, сделать процесс игры, сколько-нибудь интересным;
2. Невозможность возврата на несколько ходов назад;
3. Работоспособность приложения только в среде Windows;
Достоинства программного продукта:
1. Минималистичный интерфейс программы позволяет сразу же приступить к игре и не вызывает утомления от длительной работы с программой;
2. Программа не требует установки в систему;
3. Программный продукт малотребователен к системным ресурсам компьютера. Минимальная конфигурация: процессор - не ниже Pentium, оперативная память - не ниже 16 Mb, операционная система - Windows 95 / 98/ Me / NT / 2000 / XP.
В результате учета всех сделанных выше замечаний можно заключить, что программа полностью удовлетворяет поставленной при разработке задаче, имея при этом минимально необходимую функциональность. Так же следует заметить возможность улучшения и дальнейшего развития программного продукта, для чего потребуется освоение новых областей знаний и приемов программирования.
Данная логическая игра пользуется большим спросом среди интернет пользователей, т.к. развивает воображение и пространственное мышление, тренирует память человека, а так же стимулирует желание человека идти победе. В психологическом плане помогает человеку отвлечься от жизненных проблем, увлекая и позволяя человеку окунуться в процесс игры с головой.
В эту обычно играют на поле 5х5 или 7х7 квадратиков, но и на поле 3х3 игра представляет для человека немалую сложность. Здесь, как и в шахматах, возможны комбинационные удары, когда более опытный игрок дает новичку замкнуть один или несколько квадратиков, чтобы тот затем сделал невыгодный ход и проиграл. Целью комбинации всегда является выигрыш темпа. Полный набор стратегий достаточно сложен и до сих пор не классифицирован. Так, только в 2001 году было показано, что игра на поле 3х5 выигрышна для второго игрока. Рассмотрим сначала позицию на рис. 1. Здесь игроки уже исчерпали ходы, после которых нельзя замкнуть квадратик, и партия, выражаясь шахматным языком, перешла в стадию эндшпиля. Игровое поле разбито на две области из двух и из семи квадратиков. Если теперь первый игрок замкнет все четыре квадратика, то он проиграет. Правильно a3-b3, a2-b2 и b1-c1! Ход a2-b2 можно не делать.
Список литературы
1. Сергей Мельников. Логическая игра Точки и квадраты // Наука и жизнь. -- 1996. -- В. 8.
2. А. Архангельский, В. Ильин, М. Тагин. Русская справка по Delphi 5 и Object Pascal. Бином.
3. А. Архангельский. Программирование в Delphi 5. Бином.
4. А. Архангельский. Программирование в Delphi 6. Бином.
5. П. Дарахвелидзе, Е. Марков. Delphi 4 в подлиннике.
6. П. Дарахвелидзе, Е. Марков, О. Котенок. Программирование в Delphi 5. BHV-СПб..
7. П.В. Шумаков, В.В Фараонов. «Delphi xx Руководство разработчика баз данных».
8. М. Кэнту. Delphi 4 для профессионалов.
9. http://slovesnov.narod.ru/sticks/index.html
10. Банников Н.А. Создание баз данных в InterBase SQL Server.
Размещено на Аllbest.ru
Подобные документы
Создание игровой программы, реализующей игру в бильярд на компьютере. Математическое описание законов физики, определяющих траекторию движения шаров по бильярдному столу. Существующие аналоги разрабатываемого продукта. Алгоритмы игровой программы.
контрольная работа [31,3 K], добавлен 25.07.2012Программирование игр с использованием визуальных компонентов. Описание операторов, используемых при практической реализации разработанной программы. Работа над созданием программы "Морской бой", постановка задачи, алгоритм реализации работы, блок-схема.
курсовая работа [175,9 K], добавлен 10.05.2010Разработка приложения на WinAPI с реализацией логической структуры в игре "Сапер". Реализация графической части приложения. Проверка на корректность поведения интерфейса программы, работы логической части игры, корректности записи и чтения файла.
курсовая работа [1,1 M], добавлен 17.10.2012Разработка полноценной правильно функционирующей игровой программы "Парные картинки", изучение процедур и функций. Использование масштабируемых средств для построения баз данных. Компоненты Delphi в программе. Описание пользовательского интерфейса.
курсовая работа [1,3 M], добавлен 13.07.2012Анализ предметной области разрабатываемого программного продукта. Разработка интерфейса пользователя и структурной схемы игровой программы "Крестики-нолики". Отладка и тестирование. Проведение исследования компонентов программной среды Borland Delphi 6.0.
курсовая работа [660,4 K], добавлен 08.03.2015Общие сведения о языке ассемблера. Назначение команды прерывания INT число. Описание логической структуры программы: алгоритм работы, используемые методы, входные и выходные данные. Структура и тестирование программы. Руководство оператора программы.
курсовая работа [90,0 K], добавлен 01.12.2009Порядок разработки игровой программы, создаваемой в среде Delphi в процессе проектирования приложения, основанной на модульном принципе. Структура программы: объявление списка используемых модулей и несколько операторов, запускающих данное приложение.
курсовая работа [384,2 K], добавлен 03.01.2011Создание блок-схемы алгоритма и реализующей его программы, снабженных пояснениями, для решения задач. Реализация программы в среде Delphi как проекта консольного приложения. Основные алгоритмические структуры, соответствующие операторы для их реализации.
контрольная работа [447,4 K], добавлен 08.10.2012Разработка игровой программы "разгадывания кроссворда". Создание схемы хранения данных, изучение возможности среды программирования. Требования к функциональным характеристикам, составу и параметрам технических средств, информационной совместимости.
курсовая работа [403,9 K], добавлен 26.03.2015Создание игровой системы "Тетрис": количество игр, режимы сложности, интерфейс пользователя, игровая статистика, обработка исключений. Структура входных и выходных данных. Диаграммы и описание классов. Блок-схема алгоритма программы, результаты ее работы.
курсовая работа [1,9 M], добавлен 13.06.2012