Создание Игр Курсовая

Создание Игр Курсовая



➡➡➡ ПОДРОБНЕЕ ЖМИТЕ ЗДЕСЬ!






























Создание Игр Курсовая
Информационное обеспечение, программирование

Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Создание компьютерной игры

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

₽ Яндекс.Директ 7 видеоуроков! Всего за 990 р! Жмите! Скрыть объявление -60%. Курс «Операционный аналитик» Скрыть объявление Ночь дизайна для недизайнеров! Скрыть объявление Разработка электроники. От 2900 ₽ ! Скрыть объявление
Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

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


Программа написана на языке
программирования Borland C++ Builder, с использованием объектно-ориентированного программирования и
проектирования.


Использование ООП позволяет обойти
ряд сложных проблем в программировании с минимальными потерями, сводя
необходимую модификацию программы к её расширению и дополнению.


Систематическое применение
объектно-ориентированного подхода позволяет разрабатывать достаточно хорошо
структурированные, надежные в эксплуатации, просто модифицируемые программные
системы. Элементы объектно-ориентированного программирования получили своё
развитие, и в настоящее время ООП принадлежит к числу ведущих технологий
программирования.









Технология объектно-ориентированного
программирования - один из современных методов реализации программных систем.
Наиболее эффективно применение объектного подхода для больших программных
систем, со сложным характером взаимодействия значительного количества
элементов.


Исследованиям этих вопросов и
посвящена настоящая курсовая работа.


Рассматриваемые модели учитывают
влияние различных факторов на многие элементы системы. Таким образом, цель
настоящей курсовой работы - проектирование и программная реализация стратегии
поведения системы, которая в соответствии с заданным вариантом реализует
процессы создания и взаимодействия группы объектов.


По варианту задания на базе
объектного подхода необходимо спроектировать и разработать модель
стратегической игры - противоборство.




Стратегия игры состоит в следующем:


Существует множество объектов
различного вида и типа, которые взаимодействуют между собой. Перемещая главного
героя нужно добиться поставленной задачи (собрать все ключи), минуя врагов,
мины и другие препятствия. Достижение результата происходит при прохождении
последнего уровня и возвращения на начальную позицию.


Предполагается оконный интерфейс и
организация меню, которое было бы привычным пользователю пакета Microsoft Windows. Основное игровое окно
должно содержать картинку, разбитую на части.





1.3 Ограничения, условия
функционирования и выполнения




Персональный компьютер пользователя
должен соответствовать минимальным требованиям: процессор Intel Pentium II/400 MHz, Microsoft Windows 98/2000/XP (SP2), 256 МВ RAM, 20 МВ свободного места
на жестком диске, монитор SVGA (разрешение экрана 800×640,
256 цветов), наличие мыши.


Игра предназначается для одного
пользователя. Игра имеет следующие ограничения: два уровня сложности, которыми
задаются способ передвижения главного героя.







2.1 Абстрагирование и
выделение объектов




Объектом в данной информационной
модели является:


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


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


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


стратегический программа игра
информационный


2.2 Построение
информационной модели


















                                                       






Рисунок 2.2 - Информационная модель







При запуске исполняемого файла
проекта загружается основное окно игры. Повляется стартовый экран, при нажатии
на любую клавишу начинается игра.


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


Жизненный цикл программы изображен
на рисунке 2.3.




Рисунок 2.3 - Жизненный цикл
программы







Рассмотрим жизненный цикл объекта
«Главный герой».




















Рисунок 2.4 - Жизненный цикл объекта




Описание иллюстрации жизненного
цикла объекта:


S2 - Не активен (ожидание действия);


S4 - Взаимодействие с другими объектами;


Рисунок 2.5 - Диаграмма переходов
состояний.




2 .6 Диаграмма потоков данных и
действий


































Рисунок 2.6 - Диаграмма потоков
состояния «ожидания действия» объекта.




Диаграмма иллюстрирует переход из
состояния в состояние.


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







Корнем иерархии являються объекты
классов map, gg, enemyA далее по иерархии наследниками класса map является
класс obj, от него идут классы go и mine, наследник класса enemyA является
класс enemyB. Следующей ступенью иерархии являются классы key, liv - наследники
класса go.


Класс gg содержит следующие
свойства:x int y - текущие координаты;left, right, up, down - переменные для
второго типа движения


Класс map содержит следующие
свойства:= new Graphics:TBitmap(); - загружаемые изображения*f2, *sg; - файлы,
используемые для сохранения и считыванияa[10] [10]; - массив картыmod, levelup
- переменные перехода на следующие уровень и другой тип движения.


Класс EnemyA cсодержит следующие
свойства:x1, y1, x3, y3, aa - перменные-координаты и вспомогательная
переменная, используемая при движении.







.1 Обоснование выбора
языка программирования




В соответствии с заданием на
курсовой проект, для написания программного продукта следует использовать язык
высокого уровня, с использованием объектного подхода. Выбор был сделан в пользу
языка С++ и среды программирования С++ Builder 6.0. Эта версия хотя не
самая новая, однако, проста и надежна в применении.


С++ Builder - программный продукт,
инструмент быстрой разработки приложений (RAD), интегрированная среда
программирования (IDE), система, используемая программистами для разработки
программного обеспечения на языке С++. Изначально продукт разрабатывался
компанией Borland Software, а затем ее подразделением CodeGear, которое сейчас
принадлежит компании Embarcadero Technologies. С++ Builder объединяет в себе комплекс объектных библиотек (STL, VLC, CL, MFC и др.), компилятор,
отладчик, редактор кода и многие другие компоненты. С++ Builder содержит инструменты,
которые при помощи drag-and-drop делают разработку визуальной, упрощает программирование благодаря
встроенному WYSIWYG - редактору интерфейса.




3.2 Общее описание
глобальных переменных и структур программных модулей
// ~gg();x;y;class
map;class key;class liv;left, right, up, down;paint (map *m, TTimer *Timer3,
TTimer *Timer2, TLabel *Label4, key *k, liv *l);drawgg (TImage *Image1, TForm
*Form1);


Этот класс является одним из базовых
и содержит координаты главного героя, переменные для второго типа движения
герой, также класс является дружественным с тремя другими: map, key, liv.




class map {:()
{/*key_all=0;*/ /*ochki=1;*/ /*key=0;*/ fin=0; mod=false; level=1; payse=0;
loaod=0;= new Graphics:TBitmap();= new Graphics:TBitmap();= new
Graphics:TBitmap();= new Graphics:TBitmap();= new Graphics:TBitmap();= new
Graphics:TBitmap();>LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\1.bmp»);->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\12.bmp»);->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\14.bmp»);->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\13.bmp»);->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\ea.bmp»);->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\eb.bmp»);


// ~map();*f2, *sg;a[10]
[10];/*ochki*/fin,/*key, key_all,*/level, lkl, payse, sav, loaod;:TBitmap*
gBitmap;:TBitmap* gBitmap2;:TBitmap* gBitmap3;:TBitmap* gBitmap4;:TBitmap*
gBitmap5;:TBitmap* gBitmap6;


// Graphics:TBitmap*
gBitmap7;mod, levelup;check (TCheckBox *CheckBox1, TForm *Form1, gg *c);


//void allkey();pause
(TImage *Image3p, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666);savegame
(TLabel *Label3s, TTimer *Timer2, liv *l);loadgame (TLabel *Label5h, TForm
*Form1, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666, liv *l);Paint_Map
(TForm *Form1, TImage *Image1, gg a2, key *k);finish (TImage *Image4, gg p,
TTimer *Timer1, TTimer *Timer5, TTimer *Timer666, TImage *Image7, TCheckBox
*CheckBox1, TTimer *Timer2, TTimer *Timer4, TTimer *Timer3, TImage *Image1,
TLabel *Label3h, TLabel *Label4h, TLabel *Label5h, class EnemyB a3, key *k, liv
*l);newlevel (map *m, TForm *Form1, gg *a2, TTimer *Timer1, TTimer *Timer3,
TTimer *Timer5, key *k, class mine *mm);


Этот класс отвечает за прорисовку
карты, поэтому содержит большое количество загружаемых изображений, содержит
такие методы как окончание уровня, пауза, новый уровень, конец игры, сохранения
игры, загрузка, подключемые карты. Класс является дружественным с классом gg.




public:void test (TForm
*Form1, map *n)=0;


go: public Obj {:test
(TForm *Form1, map *n);


Класс является наследником
абстрактного класса Obj, содержит функцию изменения типа окна.




class key: public go
{:key_all, ky;();test (TForm *Form1, map *n);


Класс является наследником класса go, содержит функцию
нахождения всех клчей и две переменных - ky и key_all




class liv: public go
{:ochki;();test (TForm *Form1, map *n);


Класс предназначен размещения жизней
на карте. Осуществляет обработку перемеенной ochki во время игры.




class mine: public Obj
{:x, y;test (TForm *Form1, map *n);();


Класс, отвечающий за отображение и
обработку мин, содержит координаты x, y, функцию test, конструктор, в котором осуществляется инициализация переменных и
загружаемое изображение.




class EnemyA {:() {x3=7;
y3=1; aa=0;}x1, y1, x3, y3, aa;MoveA (map *n, gg ob, TTimer *Timer2, TLabel *Label4);


Этот класс так же как и gg является одним из
базовых. Содержит переменные x1, y1, x3, y3, aa отвечающие за координаты врагов и дополнительную переменную для
движения. Класс содержит конструктор и функцию передвижения врага).




public:() {fl=0; fl2=0;
aa=0; ab=0; x4=5; y4=1; ff2=0;}x2, y2, x4, y4;fl, fl2, aa, ab, ac, ad,
ff2;MoveB (map *c, gg ob2, TTimer *Timer2, TLabel *Label4);


Класс является наследником класса EnemyA, применяется в
программе для отображения другого типа врага, имеет множество дополнительных
переменных для задания движения врага.


Основные функции-методы программы
представлены структурными схемами.







Рисунок 3.2.1 -
Структурная схема функции «Paint»







Рисунок 3.2.2 -
Структурная схема функции «Paint»







Рисунок 3.2.3 -
Структурная схема функции «newlevel»







Рисунок 3.2.4 -
Структурная схема функции «Paint_Map»







Рисунок 3.2.5 -
Структурная схема функции «finish»







Рисунок 3.2.6 -
Структурная схема функции «move»







Рисунок 3.2.7 -
Структурная схема функции «Timer»




3.3 Интерфейс
пользователя, настройка программы




Для начала работы программы
необходимо запустить исполняемый файл AGAME, находящийся в папке game.


В начале выполнения программы
появляется окно со стартовым экраном программы, представленное ниже.





Рисунок 3.3.1 - Игровое меню программы




При нажатии любой клавиши игра
начинается:




В случае если главный герой
попадается врагу, то мы видим сообщение о том, что были пойманы и количество
жизней уменьшается




Когда пользователь соберет все ключи
на карте откроется портал.




Когда главный герой попадает в
портал, он перемещается на новый уровень.




В случае если количество жизней
будет равно нулю пользователь увидит сообщение о проигрыше.




3.4 Критерии качества
программной среды


стратегический программа
игра информационный


Критерии качества с точки зрения
выполнения критериев объектно-ориентированного подхода:


ü  Разработанные
объекты содержат инкапсулированные данные и процедуры, сгруппированные вместе,
отображающие их сущность;


ü  Написанная
программа моделирует взаимодействие полученных объектов;


ü  В достаточной
степени достигнута реализация остальных объектно-ориентированных свойств
программы.


С точки зрения надежности программа
обладает следующим рядом качеств:


ü  Программа написана
на языке высокого уровня С++, после ее выполнения проводилось тщательное
тестирование. Никаких ошибок обнаружено не было;


ü  Программа не
требует предустановленного специфического программного обеспечения;


ü  Быстродействие
программы высокое, особых требований к системе нет.


ü  Программа обладает
простым интерфейсом, доступным любому пользователю;


ü  Приложение занимает
сравнительно малый объем дискового пространства;


ü  При надобности
возможно полная или частичная замена графических ресурсов игры.









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


Относительно
объектно-ориентированного подхода сделаны следующие выводы:


ü  Сам подход
(разбиение на классы и описание взаимодействия объектов этих классов) является
эффективным методом программирования;


ü  Разработка
приложений с использованием объектно-ориентированного анализа и проектирования
дает отличные результаты, повышая гибкость программы, позволяя без проблем
внедрять дополнительные модули;


ü  С использованием
объектно-ориентированного подхода повышается читабельность кода, что позволяет
работать над проектом целой команде программистов.


Программа организована достаточно
доступно и ясно, что позволит (при надобности) легко ее модифицировать.


Цель курсового проекта была
достигнута - была создана игра противоборство.







1.       Архангельский А.Я. Программирование в C++ Builder 6 /
А.Я. Архангельский. - М.: БИНОМ, 2003. - 1152 с.


2.       Глушаков С.В. Язык программирования С++ / С.В. Глушаков.
- Харьков: «Фолио», 2002. - 500 с.


.        Культин Н.Б. Самоучитель C++ Builder / Н.Б. Культин. -
СПб.: БХВ-Петербург, 2004. - 320 с.: ил.


.        Оверленд Б. С++ без страха: [учебное пособие: пер. с
англ.] / Брайан Оверленд. - М.:Триумф, 2005. - 432 с.: ил.


.        Шилдт Г. Самоучитель С ++: Пер. с англ. / Г. Шилдт. - 3-е
изд. - СПб.: БХВ-Петербург, 2006. - 688 с.









/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++




Севастопольский национальный
технический университет


Программа для определения общего
стажа в цехах




+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++




Дата последней коррекции:
16.10.2012.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/




//
*****************************************************************************


gg {:() {x=30; y=30;
up=false; down=false; left=false; right=false;}


// ~gg();x;y;class
map;class key;class liv;left, right, up, down;paint (map *m, TTimer *Timer3,
TTimer *Timer2, TLabel *Label4, key *k, liv *l);drawgg (TImage *Image1, TForm
*Form1);


map {:() {/*key_all=0;*/
/*ochki=1;*/ /*key=0;*/ fin=0; mod=false; level=1; payse=0; loaod=0;= new
Graphics:TBitmap();= new Graphics:TBitmap();= new Graphics:TBitmap();= new Graphics:TBitmap();=
new Graphics:TBitmap();= new Graphics:TBitmap();


>LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\1.bmp»);->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\12.bmp»);->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\14.bmp»);->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\13.bmp»);->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\ea.bmp»);->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\eb.bmp»);


// ~map();*f2, *sg;a[10]
[10];/*ochki*/fin,/*key, key_all,*/level, lkl, payse, sav, loaod;:TBitmap*
gBitmap;:TBitmap* gBitmap2;:TBitmap* gBitmap3;:TBitmap* gBitmap4;:TBitmap*
gBitmap5;:TBitmap* gBitmap6;


// Graphics:TBitmap*
gBitmap7;mod, levelup;check (TCheckBox *CheckBox1, TForm *Form1, gg *c);


//void allkey();pause
(TImage *Image3p, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666);savegame
(TLabel *Label3s, TTimer *Timer2, liv *l);loadgame (TLabel *Label5h, TForm
*Form1, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666, liv *l);Paint_Map
(TForm *Form1, TImage *Image1, gg a2, key *k);finish (TImage *Image4, gg p,
TTimer *Timer1, TTimer *Timer5, TTimer *Timer666, TImage *Image7, TCheckBox
*CheckBox1, TTimer *Timer2, TTimer *Timer4, TTimer *Timer3, TImage *Image1,
TLabel *Label3h, TLabel *Label4h, TLabel *Label5h, class EnemyB a3, key *k, liv
*l);newlevel (map *m, TForm *Form1, gg *a2, TTimer *Timer1, TTimer *Timer3,
TTimer *Timer5, key *k, class mine *mm);class gg;


// -Obj {:void test
(TForm *Form1, map *n)=0;


go: public Obj {:test
(TForm *Form1, map *n);


// -key: public go
{:key_all, ky;();test (TForm *Form1, map *n);
// -liv: public go
{:ochki;();test (TForm *Form1, map *n);


liv: test (TForm *Form1,
map *n) {=2;


// -mine: public Obj
{:x, y;test (TForm *Form1, map *n);();:TBitmap* gBitmap13;


:mine() {= new
Graphics:TBitmap();->LoadFromFile (ExtractFilePath(Application->ExeName)+
«ico\\15.bmp»);


(n->level==2)
{>a[5] [7]='m';->Canvas->Draw (210,150, gBitmap13);


}(n->level==4)
{>a[1] [2]='m';->Canvas->Draw (60,30, gBitmap13);


}(n->level==5)
{>a[4] [3]='m';->Canvas->Draw (90,120, gBitmap13);


// -go:test (TForm
*Form1, map *n) {->BorderStyle=bsSizeable;


// -EnemyA {:() {x3=7; y3=1;
aa=0;}x1, y1, x3, y3, aa;MoveA (map *n, gg ob, TTimer *Timer2, TLabel *Label4);


// -EnemyB: public
EnemyA {:() {fl=0; fl2=0; aa=0; ab=0; x4=5; y4=1; ff2=0;}x2, y2, x4, y4;fl,
fl2, aa, ab, ac, ad, ff2;MoveB (map *c, gg ob2, TTimer *Timer2, TLabel *Label4);


map:check (TCheckBox
*CheckBox1, TForm *Form1, gg *c) {(CheckBox1->Checked==true)
mod=true;{mod=false; c->left=false; c->right=false; c->up=false;
c->down=false;}




map:pause (TImage
*Image3p, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666) {(payse==0)
{=1;->Enabled=false;->Enabled=false;->Enabled=false;p->Visible=true;p->BringToFront();


}if (payse==1)
{=0;p->Visible=false;->Enabled=true;->Enabled=true;->Enabled=true;


map:savegame (TLabel
*Label3s, TTimer *Timer2, liv *l)
{k;->Enabled=true;s->Visible=true;*lst=new TStringList;


//sg=fopen
(«save\\game.txt», «w»);=level;=k+'\n';=k+l->ochki;>Text=k;>SaveToFile
(«save\\game.txt»);


void map:loadgame (TLabel
*Label5h, TForm *Form1, TTimer *Timer5, TTimer *Timer1, TTimer *Timer666, liv
*l) {o, l2;*list = new
TStringList;->Enabled=false;->Enabled=false;->Enabled=false;>LoadFromFile
(«\save\\game.txt»);=list->Strings[0];=list->Strings[1];list;h->Caption=o;=StrToInt(l2);>ochki=StrToInt(o);=1;


//level=StrToInt(l);(«ok!»);->Enabled=true;->Enabled=true;->Enabled=true;->FocusControl(0);


// -gg:paint (map *m,
TTimer *Timer3, TTimer *Timer2, TLabel *Label4, key *k, liv *l) {(left)(m->a
[y/30] [x/30-1]!=1) {(m->a [y/30] [x/30-1]==2) {m->a [y/30] [x/30-1]=0;
l->ochki++;} //star


// if ((m->a [y/30]
[x/30-1]==3)||(m->a [y/30] [x/30-1]==4)) {m->a [y/30] [x/30-1]=0;
Label4->Visible=true; Timer2->Enabled=true; m->ochki- ;}
//enemy(m->a [y/30] [x/30-1]==5) {m->a [y/30] [x/30-1]=0; k->ky++;}
//key=30;}(right) if (m->a [y/30] [x/30+1]!=1) {(m->a [y/30] [x/30+1]==2)
{m->a [y/30] [x/30+1]=0; l->ochki++;} //star


// if ((m->a [y/30]
[x/30+1]==3)||(m->a [y/30] [x/30+1]==4)) {m->a [y/30] [x/30+1]=0;
Label4->Visible=true; Timer2->Enabled=true; m->ochki- ;}
//enemy(m->a [y/30] [x/30+1]==5) {m->a [y/30] [x/30+1]=0; k->ky++;}
//key+=30;}(up) if (m->a [y/30-1] [x/30]!=1) {(m->a [y/30-1] [x/30]==2)
{m->a [y/30-1] [x/30]=0; l->ochki++;} //star


// if((m->a [y/30-1]
[x/30]==3)||(m->a [y/30-1] [x/30]==4)) {m->a [y/30-1] [x/30]=0;
Label4->Visible=true; Timer2->Enabled=true; m->ochki- ;}
//enemy(m->a [y/30-1] [x/30]==5) {m->a [y/30-1] [x/30]=0; k->ky++;}
//key=30;}(down) if (m->a [y/30+1] [x/30]!=1) {(m->a [y/30+1] [x/30]==2)
{m->a [y/30+1] [x/30]=0; l->ochki++;} //star


// if((m->a [y/30+1]
[x/30]==3)||(m->a [y/30+1] [x/30]==4)) {m->a [y/30+1] [x/30]=0;
Label4->Visible=true; Timer2->Enabled=true; m->ochki- ;}
//enemy(m->a [y/30+1] [x/30]==5) {m->a [y/30+1] [x/30]=0; k->ky++;} //
key+=30;}




// -key:test (TForm
*Form1, map *n) {(int i=0; i<10; i++)(int j=0; j<10; j++)(n->a[i]
[j]==5) key_all++;


// -gg:drawgg (TImage
*Image1, TForm *Form1)


//Graphics:TBitmap* gg =
new Graphics:TBitmap;


//gg->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\gg.bmp»);


//Form1->Canvas->Draw
(x*30, y*30, gg);->Visible=true;->BringToFront();->Left=x;->Top=y;


map:newlevel (map *m,
TForm *Form1, gg *a2, TTimer *Timer1, TTimer *Timer3, TTimer *Timer5, key *k,
mine *mm)


//FILE *f2;(level==1)
f2=fopen («101.txt», «r»);if (level==2) f2=fopen («2.txt», «r»);if (level==3)
f2=fopen («3.txt», «r»);if (level==4) f2=fopen («4.txt», «r»);if (level==5)
f2=fopen («5.txt», «r»);->Enabled=true;->Enabled=true;->left=false;
a2->right=false; a2->down=false;
a2->up=false;>ky=0;=0;>key_all=0;(int i=0; i<10; i++)(int j=0;
j<11; j++)


{'0': a[j] [i]=0;
break;'1': a[j] [i]=1; break;'2': a[j] [i]=2; break;'3': a[j] [i]=3; break;'4':
a[j] [i]=4; break;'5': a[j] [i]=5; break;


}>test (Form1,
m);(f2);(level==1) {a2->x=30; a2->y=30; Timer1->Interval=100;
Timer5->Interval=85; lkl=0;}(level==2) {a2->x=240;
a2->y=240;}(level==3) {a2->x=30; a2->y=240;
Timer5->Interval=100;}(level==4) {a2->x=120; a2->y=30;
Timer5->Interval=95; Timer1->Interval=125;}(level==5) {a2->x=30;
a2->y=30;}=false;




// рандом(level==2) {(int
i=0; i<10; i++)(int j=0; j<11; j++)


{if
(i==2)((j>3)&&(j<7)) {a[i]
[j]=random(2);}(i==3)((j>3)&&(j<7)) {a[i] [j]=random(2);}(i==5)((j==2)||(j==3)||(j==6))
{a[i] [j]=random(2);}(i==6)((j==2)||(j==6)||(j==8)) {a[i]
[j]=random(2);}(i==8)(j==6) {a[i] [j]=random(2);}


}(level==3) {(int i=0;
i<10; i++)(int j=0; j<11; j++)


{if (i==1)(j==1) {a[i]
[j]=random(2);}(i==3)((j==5)||(j==7)) {a[i] [j]=random(2);}(i==6)((j==5)||(j==7))
{a[i] [j]=random(2);}(i==7)((j==2)||(j==4)||(j==5)||(j==7)) {a[i]
[j]=random(2);}


map: Paint_Map (TForm
*Form1, TImage *Image1, gg a2, key *k)
Graphics:TBitmap*
gBitmap = new Graphics:TBitmap();:TBitmap* gBitmap2 = new
Graphics:TBitmap();:TBitmap* gBitmap3 = new Graphics:TBitmap();:TBitmap*
qBitmap4 = new Graphics:TBitmap();:TBitmap* qBitmap5 = new
Graphics:TBitmap();:TBitmap* qBitmap6 = new Graphics:TBitmap();


{1:
Form1->Canvas->Draw (i*30, j*30, gBitmap2); break;0:
if((i==a2.x/30)&&(j==a2.y/30)) {break;} Form1->Canvas->Draw
(i*30, j*30, gBitmap); break;2: Form1->Canvas->Draw (i*30, j*30, gBitmap3);
break;3: if((i==a2.x/30)&&(j==a2.y/30)) {break;}
Form1->Canvas->Draw (i*30, j*30, gBitmap5); break;7:
if((i==a2.x/30)&&(j==a2.y/30)) {break;} Form1->Canvas->Draw
(i*30, j*30, gBitmap5); break;4: if((i==a2.x/30)&&(j==a2.y/30))
{break;} Form1->Canvas->Draw (i*30, j*30, gBitmap6); break;8:
if((i==a2.x/30)&&(j==a2.y/30)) {break;} Form1->Canvas->Draw
(i*30, j*30, gBitmap6); break;5: Form1->Canvas->Draw (i*30, j*30,
gBitmap4); break;


if (level==1) {((a[2]
[1]==1)&&(a[2] [2]==1)&&(a[2] [3]==1)&&(a[1] [3]==1))
{a[1] [3]=0; ShowMessage («1»);}((a[2] [1]==1)&&(a[2]
[2]==1)&&(a[2] [3]==1)&&(a[1] [3]==4)) {a[1] [4]=0; ShowMessage
(«2»);}((a[2] [1]==1)&&(a[2] [2]==1)&&(a[2]
[3]==1)&&(a[2] [4]==1)&&(a[2] [5]==1)&&(a[1] [5]==1))
{a[2] [4]=0; ShowMessage («3»);}((a[2] [1]==1)&&(a[2]
[2]==1)&&(a[2] [3]==1)&&(a[1] [4]==1)) {a[2] [2]=0; ShowMessage
(«4»);}((a[2] [1]==1)&&(a[2] [2]==1)&&(a[1] [3]==1)) {a[2]
[1]==0; ShowMessage («5»);}




/////////////////////////////////////////////////////////////////
((a[1] [3]==1)&&(a[1] [6]==1)&&(a[2] [3]==1)&&(a[2]
[4])&&(a[2] [5]==1)&&(a[2] [6]==1)) {a[2] [5]=0; ShowMessage
(«6»);}((a[1] [4]==1)&&(a[2] [4]==1)&&(a[2]
[5]==1)&&(a[2] [6]==1)&&(a[1] [6]==1)) {a[1] [6]=0; ShowMessage
(«7»);}((a[1] [3]==1)&&(a[2] [3]==1)&&(a[1]
[5]==1)&&(a[2] [5]==1)&&(a[2] [4]==1)) {a[1] [3]=0; ShowMessage
(«8»);}


map:finish (TImage
*Image4, gg p, TTimer *Timer1, TTimer *Timer5, TTimer *Timer666, TImage
*Image7, TCheckBox *CheckBox1, TTimer *Timer2, TTimer *Timer4, TTimer *Timer3,
TImage *Image1, TLabel *Label3h, TLabel *Label4h, TLabel *Label5h, class EnemyB
a3, key *k, liv *l)


if (level==1) {[1]
[0]='f';[8] [4]=1;[4] [4]=1;


//a[2]
[4]=1;->Left=0; Image4->Top=30; Image4->Visible=true;((p.x/30==0)&&(p.y/30==1))
fin=1;


(level==2) {[5]
[6]='f';->Left=180; Image4->Top=150;
Image4->Visible=true;((p.x/30==6)&&(p.y/30==5)) fin=1;


(level==3) {[1]
[5]='f';->Left=150; Image4->Top=30;
Image4->Visible=true;((p.x/30==5)&&(p.y/30==1)) fin=1;


}(level==4) {a[1]
[5]='f';->Left=150; Image4->Top=30;
Image4->Visible=true;((p.x/30==5)&&(p.y/30==1)) fin=1;


}(level==5) {a[3]
[2]='f';->Left=60; Image4->Top=90;
Image4->Visible=true;((p.x/30==2)&&(p.y/30==3)) fin=1;


}((l->ochki>0)&&(fin==1))
{(level==5) {=1;short
res;->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;->Visible=false;->Visible=false;h->Visible=false;h->Visible=false;h->Visible=false;->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+ «ico\\767.bmp»);->Top=0;->Width=511;->Height=326;->Left=0;->Visible=true;


// res=MessageDlg
(«Congratulations! You are win! Start a New Game?», mtInformation,
TMsgDlgButtons()<Terminate();}if (res==mrYes)
{>ochki=1;=0;.ff2=0;>ky=0;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;->Visible=true;->Visible=true;h->Visible=false;h->Visible=false;h->Visible=false;->Visible=false;(Image4,
p, Timer1, Timer5, Timer666, Image7, CheckBox1, Timer2, Timer4, Timer3, Image1,
Label3h, Label4h, Label5h, a3, k, l);


// if (lkl==1) ShowMessage
(«Are you ready?»);(lkl==0) ShowMessage («Next level»);->Visible=false;
level++;->Enabled=true;=true;


void EnemyA: MoveA (map
*n, gg ob, TTimer *Timer2, TLabel *Label4)


{(n->level==1) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(n->a[i] [j]==3) {x1=i; y1=j;}


((y1+1!=6)&&(x1==6))
{n->a[x1] [y1]=0; n->a[x1] [y1+1]=3;} // вправоif((x1-1!=2)&&(y1==5)) {n->a[x1] [y1]=0; n->a [x1-1]
[y1]=3;} // вверхif (y1-1!=0) {n->a[x1] [y1]=0; n->a[x1] [y1-1]=3;} // влевоif((x1+1!=7)&&(y1==1))
{n->a[x1] [y1]=0; n->a [x1+1] [y1]=3;} // вниз




// if
((ob.x/30==y1)&&(ob.y/30==x1)) {Label4->Visible=true;
Timer2->Enabled=true; n->ochki- ;}


(int i=0; i<10;
i++)(int j=0; j<10; j++)


{if (n->a[i] [j]==3)
{x1=i; y1=j;}(n->a[i] [j]==7) {x3=i; y3=j;}


}((n->a[x1]
[y1+1]!=1)&&(x1==4)) {n->a[x1] [y1]=0; n->a[x1] [y1+1]=3;} // вправоif ((n->a [x1+1]
[y1]!=1)&&(y1==5)) {n->a[x1] [y1]=0; n->a [x1+1] [y1]=3;} // внизif (n->a[x1]
[y1-1]!=1) {n->a[x1] [y1]=0; n->a[x1] [y1-1]=3;} // влевоif((n->a [x1-1]
[y1]!=1)&&(y1==1)) {n->a[x1] [y1]=0; n->a [x1-1] [y1]=3;} // вверх((n->a[x3]
[y3+1]!=1)&&(aa==0)) {n->a[x3] [y3]=0; n->a[x3] [y3+1]=7;} // вправо(y3==8)
aa=1;((n->a[x3] [y3-1]!=1)&&(aa==1)) {n->a[x3] [y3]=0;
n->a[x3] [y3-1]=7;} // влево(y3==3) aa=0;


(n->level==3) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(n->a[i] [j]==3) {x1=i;
y1=j;}(x1==8) aa=1;(x1==1) aa=0;((n->a [x1+1] [y1]!=1)&&(aa==0))
{n->a[x1] [y1]=0; n->a [x1+1] [y1]=3;} // вниз((n->a [x1-1] [y1]!=1)&&(aa==1)) {n->a[x1] [y1]=0;
n->a [x1-1] [y1]=3;} // вверх


(n->level==4) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(n->a[i] [j]==3) {x1=i;
y1=j;}((n->a [x1+1] [y1]!=1)&&(x1!=6)&&(y1!=8)) {n->a[x1]
[y1]=0; n->a [x1+1] [y1]=3;} // внизif ((n->a[x1] [y1+1]!=1)&&(x1==6)) {n->a[x1] [y1]=0;
n->a[x1] [y1+1]=3;} // вправоif ((n->a [x1-1] [y1]!=1)&&(y1==8)) {n->a[x1]
[y1]=0; n->a [x1-1] [y1]=3;} // вверхif ((n->a[x1] [y1-1]!=1)&&(x1==3)) {n->a[x1] [y1]=0;
n->a[x1] [y1-1]=3;} // влево


}(n->level==5) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(n->a[i] [j]==3) {x1=i;
y1=j;}((x1==1)&&(y1==4)) aa=1;((x1==3)&&(y1==1)) aa=0;


((n->a [x1+1]
[y1]!=1)&&(y1==1)&&(x1!=5)&&(aa==0)) {n->a[x1]
[y1]=0; n->a [x1+1] [y1]=3;} // внизif ((n->a[x1] [y1+1]!=1)&&(aa==0)) {n->a[x1] [y1]=0;
n->a[x1] [y1+1]=3;} // вправоif ((n->a [x1-1] [y1]!=1)&&(aa==0)&&(y1==4))
{n->a[x1] [y1]=0; n->a [x1-1] [y1]=3;} // вверхif ((n->a [x1+1] [y1]!=1)&&(aa==1)&&(y1==4))
{n->a[x1] [y1]=0; n->a [x1+1] [y1]=3;} // вниз2if ((n->a[x1] [y1-1]!=1)&&(aa==1)) {n->a[x1]
[y1]=0; n->a[x1] [y1-1]=3;} // влевоif ((n->a [x1-1] [y1]!=1)&&(y1==1)&&(aa==1))
{n->a[x1] [y1]=0; n->a [x1-1] [y1]=3;} // вверх2


// -EnemyB: MoveB (map
*c, gg ob2, TTimer *Timer2, TLabel *Label4)


/*!!!!!!*/ for (int i=0;
i<10; i++)(int j=0; j<10; j++)(c->a[i] [j]==4) {x2=i; y2=j;}


((c->a [x2+1]
[y2]!=1)&&(ff2==0)&&(x2!=7)) {c->a[x2] [y2]=0; c->a
[x2+1] [y2]=4;} // внизif ((c->a[x2] [y2-1]!=1)&&(x2==7)&&(ff2==0))
{c->a[x2] [y2]=0; c->a[x2] [y2-1]=4;} // влевоif ((c->a[x2] [y2+1]!=1)&&(x2==7)&&(ff2==1))
{c->a[x2] [y2]=0; c->a[x2] [y2+1]=4;} // вправоif ((c->a [x2-1] [y2]!=1)&&(y2==8)&&(ff2==1))
{c->a[x2] [y2]=0; c->a [x2-1] [y2]=4;} // вверх((x2==7)&&(y2==2)) ff2=1;


/*!!!!!!!*/ if
((x2==2)&&(y2==8)) ff2=0;




// if
((ob2.x/30==y2)&&(ob2.y/30==x2)) {Label4->Visible=true;
Timer2->Enabled=true; c->ochki- ;}


(c->level==2) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(c->a[i] [j]==4) {x2=i;
y2=j;}((c->a[x2] [y2+1]!=1)&&(ab<4)) {c->a[x2] [y2]=0;
c->a[x2] [y2+1]=4;} // вправоif ((x2!=5)&&(ab<4)) {c->a[x2] [y2]=0; c->a
[x2+1] [y2]=4; ab++;} // внизif (c->a [x2-1] [y2]!=1) {c->a[x2] [y2]=0; c->a [x2-1]
[y2]=4;} // вверхif (c->a[x2] [y2-1]!=1) {c->a[x2] [y2]=0; c->a[x2]
[y2-1]=4;} // влево((x2==1)&&(y2==1)) ab=0;


(c->level==3) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(c->a[i] [j]==4) {x4=i;
y4=j;}((c->a[x4] [y4+1]!=1)&&(x4!=4)) {c->a[x4] [y4]=0;
c->a[x4] [y4+1]=4;} // вправоif ((c->a [x4-1] [y4]!=1)&&(x4!=4)) {c->a[x4]
[y4]=0; c->a [x4-1] [y4]=4;} // вверхif ((c->a[x4] [y4-1]!=1)&&(y4!=1)) {c->a[x4] [y4]=0;
c->a[x4] [y4-1]=4;} // влевоif ((c->a [x4+1] [y4]!=1)&&(x4!=5)) {c->a[x4]
[y4]=0; c->a [x4+1] [y4]=4;} // вниз


}(c->level==4) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(c->a[i] [j]==4) {x4=i;
y4=j;}((c->a[x4] [y4-1]!=1)&&(y4!=2)&&(x4==8)) {c->a[x4]
[y4]=0; c->a[x4] [y4-1]=4;} // влевоif ((c->a [x4-1] [y4]!=1)&&(y4==2)&&(x4!=2))
{c->a[x4] [y4]=0; c->a [x4-1] [y4]=4;} // вверхif ((c->a[x4] [y4-1]!=1)&&(y4==2)&&(x4==4))
{c->a[x4] [y4]=0; c->a[x4] [y4-1]=4;} // влево2if ((c->a [x4-1] [y4]!=1)&&(y4==1)&&(x4!=2))
{c->a[x4] [y4]=0; c->a [x4-1] [y4]=4;} // вверх2if ((c->a[x4] [y4+1]!=1)&&(x4==2)) {c->a[x4]
[y4]=0; c->a[x4] [y4+1]=4;} // вправо2if ((c->a [x4+1] [y4]!=1)&&(y4==4)) {c->a[x4]
[y4]=0; c->a [x4+1] [y4]=4;} // внизif ((c->a[x4] [y4+1]!=1)&&(x4==6)&&(y4!=7))
{c->a[x4] [y4]=0; c->a[x4] [y4+1]=4;} // вправо3if ((c->a [x4+1] [y4]!=1)&&(y4==7)) {c->a[x4]
[y4]=0; c->a [x4+1] [y4]=4;} // вниз2


(c->level==5) {(int
i=0; i<10; i++)(int j=0; j<10; j++)(c->a[i] [j]==4) {x4=i;
y4=j;}((x4==1)&&(y4==8)) ac=1;((x4==8)&&(y4==1)) ac=0;((c->a[x4]
[y4+1]!=1)&&(x4==8)&&(ac==0)) {c->a[x4] [y4]=0; c->a[x4]
[y4+1]=4;} // вправоif ((c->a [x4-1] [y4]!=1)&&(y4==8)&&(ac==0))
{c->a[x4] [y4]=0; c->a [x4-1] [y4]=4;} // вверхif ((c->a [x4+1] [y4]!=1)&&(ac==1)) {c->a[x4]
[y4]=0; c->a [x4+1] [y4]=4;} // внизif ((c->a[x4] [y4-1]!=1)&&(ac==1)) {c->a[x4] [y4]=0;
c->a[x4] [y4-1]=4;} // влево


//
******************************************************************************Form1;


__fastcall TForm1:TForm1
(TComponent* Owner)


(«font\\PERTIBD.ttf»);(«font\\PERTILI_0.ttf»);->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+»\\ico\\gg.bmp»);->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+»\\ico\\65.bmp»);->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+»\\ico\\background.bmp»);->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+»\\ico\\final.bmp»);->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+
«ico\\767.bmp»);p->Picture->LoadFromFile
(ExtractFilePath(Application->ExeName)+
«ico\\pause.bmp»);p->Width=200;p->Height=100;p->Left=60;p->Top=100;


//if
(f=fopen((ExtractFilePath (Application->ExeName) + «1.txt»).c_str(), «r»))


{'0': m.a[i] [j]=0;
break;'1': m.a[i] [j]=1; break;'2': m.a[i] [j]=2; break;'3': m.a[i] [j]=3;
break;'4': m.a[i] [j]=4; break;'5': m.a[i] [j]=5; break;


} // рандомное заполнение первого
левела(int i=0; i<10; i++)


{if
(i==1)((j>2)&&(j<7)) {m.a[i]
[j]=random(2);}(i==2)((j>0)&&(j<7)) {m.a[i]
[j]=random(2);}(i==5)((j==6)||(j==7)) {m.a[i] [j]=random(2);}(i==6)(j==6)
{m.a[i] [j]=random(2);}


__fastcall TForm1:
FormKeyDown (TObject *Sender, WORD &Key,Shift)


{(m.payse==0)
{->Enabled=true;->Enabled=true;->Enabled=true;


}.check (CheckBox1,
Form1,&ob);->Visible=false;->Visible=true; // картинка-фоон





Label11->Font->Name=
«Perpetua Titling MT»;->Font->Name= «Perpetua Titling
MT»;->Font->Name= «Perpetua Titling MT»;->Font->Name= «Perpetua
Titling MT»;->Font->Name= «Perpetua Titling MT»;->Font->Name=
«Perpetua Titling MT»;->Font->Name= «Perpetua Titling
MT»;->Font->Name= «Perpetua Titling MT»;->Font->Name= «Perpetua
Titling MT»;s->Font->Name= «Perpetua Titling
MT»;p->Visible=true;h->Visible=true;h->Visible=true;h->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Visible=true;->Width=80;->Visible=true;


(m.mod) {(Key) {VK_LEFT:
{if (m.payse==0) {ob.left=true; ob.right=false; ob.up=false; ob.down=false;
break;}}VK_RIGHT: {if (m.payse==0) {ob.left=false; ob.right=true; ob.up=false;
ob.down=false;} break;}VK_UP: {if (m.payse==0) {ob.left=false; ob.right=false;
ob.up=true; ob.down=false;} break;}VK_DOWN: {if (m.payse==0) {ob.left=false;
ob.right=false; ob.up=false; ob.down=true;} break;}VK_F1: {m.pause (Image3p,
Timer5, Timer1, Timer666); break;}VK_F2: {m.savegame (Label3s, Timer2,&ll);
break;}VK_F3: {m.loadgame (Label5h, Form1, Timer1, Timer5, Timer666,&ll);
break;}


{(Key) {'1':
{kl.ky=kl.key_all; break;}VK_F1: {m.pause (Image3p, Timer5, Timer1, Timer666);
break;}VK_F2: {m.savegame (Label3s, Timer2,&ll); break;}VK_F3: {m.loadgame
(Label5h, Form1, Timer1, Timer5, Timer666,&ll); break;}VK_LEFT: if
(m.payse==0) {(m.a [ob.y/30] [ob.x/30-1]!=1) {(m.a [ob.y/30] [ob.x/30-1]==2)
{m.a [ob.y/30] [ob.x/30-1]=0; ll.ochki++;} //star


// if ((m.a [ob.y/30] [ob.x/30-1]==3)||(m.a
[ob.y/30] [ob.x/30-1]==4)) {m.a [ob.y/30] [ob.x/30-1]=0;
Form1->Label4->Visible=true; Timer2->Enabled=true; m.ochki- ;}
//enemy(m.a [ob.y/30] [ob.x/30-1]==5) {m.a [ob.y/30] [ob.x/30-1]=0; kl.ky++;}
//key.x-=30;} break;}VK_RIGHT: if (m.payse==0) {(m.a [ob.y/30] [ob.x/30+1]!=1)
{(m.a [ob.y/30] [ob.x/30+1]==2) {m.a [ob.y/30] [ob.x/30+1]=0; ll.ochki++;}
//star


// if ((m.a [ob.y/30]
[ob.x/30+1]==3)||(m.a [ob.y/30] [ob.x/30+1]==4)) {m.a [ob.y/30] [ob.x/30+1]=0;
Form1->Label4->Visible=true; Timer2->Enabled=true; m.ochki- ;}
//enemy(m.a [ob.y/30] [ob.x/30+1]==5) {m.a [ob.y/30] [ob.x/30+1]=0; kl.ky++;}
//key.x+=30;} break;}VK_UP: if (m.payse==0) {(m.a [ob.y/30-1] [ob.x/30]!=1)
{(m.a [ob.y/30-1] [ob.x/30]==2) {m.a [ob.y/30-1] [ob.x/30]=0; ll.ochki++;}
//star


// if((m.a [ob.y/30-1]
[ob.x/30]==3)||(m.a [ob.y/30-1] [ob.x/30]==4)) {m.a [ob.y/30-1] [ob.x/30]=0;
Form1->Label4->Visible=true; Timer2->Enabled=true; m.ochki- ;}
//enemy(m.a [ob.y/30-1] [ob.x/30]==5) {m.a [ob.y/30-1] [ob.x/30]=0; kl.ky++;}
//key.y-=30;} break;}VK_DOWN: if (m.payse==0) {(m.a [ob.y/30+1] [ob.x/30]!=1)
{(m.a [ob.y/30+1] [ob.x/30]==2) {m.a [ob.y/30+1] [ob.x/30]=0; ll.ochki++;}
//star


// if((m.a [ob.y/30+1]
[ob.x/30]==3)||(m.a [ob.y/30+1] [ob.x/30]==4)) {m.a [ob.y/30+1] [ob.x/30]=0;
Form1->Label4->Visible=true; Timer2->Enabled=true; m.ochki- ;}
//enemy(m.a [ob.y/30+1] [ob.x/30]==5) {m.a [ob.y/30+1] [ob.x/30]=0; kl.ky++;}
// key.y+=30;} break;}


//Caption= «Жизни:» + String
(m.ochki);




__fastcall TForm1:
Timer1Timer (TObject *Sender)


{int n;. MoveA (&m,
ob, Timer2, Label4);


// q. MoveB (&m, ob,
Timer2, Label4);


// m. Paint_Map (Form1,
Image1, ob);


/**/ if (ll.ochki==0)
{Timer1->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;->Enabled=false;short
res2;=MessageDlg («You are Lost! Start a New Game?», mtInformation,
TMsgDlgButtons()<Terminate();}if (res2==mrYes) {.ochki=1;.level=1;.ky=0;.ff2=0;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;->Enabled=true;


//
Image7->Visible=false;.newlevel (&m, Form1,&ob, Timer1, Timer3,
Timer5,&kl,&min);


// m.finish (Image4, ob,
Timer1, Timer5, Timer666, Image7, CheckBox1, Timer2, Timer4, Timer3, Image1);


}->Caption=ll.ochki;->Caption=kl.ky;->Caption=m.level;->Caption=kl.key_all;=
«Жизни:» + String
(ll.ochki);(int i=0; i<10; i++)(int j=0; j<10; j++)(m.a[i] [j]==2)
n++;((kl.ky==kl.key_all)&&(ll.ochki>0)) {m.finish (Image4, ob,
Timer1, Timer5, Timer666, Image7, CheckBox1, Timer2, Timer4, Timer3, Image1,
Label3h, Label4h, Label5h,
q,&kl,&ll);}((m.level==2)&&(m.levelup)) {m.newlevel (&m,
Form1,&ob, Timer1, Timer3, Timer5,&kl,&min);}((m.level==3)&&(m.levelup))
{m.newlevel (&m, Form1,&ob, Timer1, Timer3,
Timer5,&kl,&min);}((m.level==4)&&(m.levelup)) {m.newlevel
(&m, Form1,&ob, Timer1, Timer3,
Timer5,&kl,&min);}((m.level==5)&&(m.levelup)) {m.newlevel
(&m, Form1,&ob, Timer1, Timer3, Timer5,&kl,&min);}((m.level==1)&&(m.levelup))
{q.ff2=0; m.newlevel (&m, Form1,&ob, Timer1, Timer3,
Timer5,&kl,&min);}(m.loaod==1) {m.newlevel (&m, Form1,&ob,
Timer1, Timer3, Timer5,&kl,&min); m.loaod=0;}


__fastcall TForm1:
Timer2Timer (TObject *Sender) // покраснение live


{->Label4->Visible=false;->Label3s->Visible=false;


__fastcall TForm1:
Timer3Timer (TObject *Sender) // передвижение гг
в режиме хард


{.paint (&m, Timer3,
Timer2, Label4,&kl,&ll);


// -__fastcall TForm1:
CheckBox1Click (TObject *Sender) // хард моде


void __fastcall TForm1:
Timer4Timer (TObject *Sender) // пересечение гг
с енеми


{((m.a [ob.y/30]
[ob.x/30]==3)||(m.a [ob.y/30] [ob.x/30]==4)||(m.a [ob.y/30] [ob.x/30]==7)||(m.a
[ob.y/30] [ob.x/30]==8)) {->Enabled=false;->Enabled=false;->Label4->Visible=true;(m.level==1)
{ob.x=30; ob.y=30;}if (m.level==2) {ob.x=240; ob.y=240;}if (m.level==3)
{ob.x=30; ob.y=240;}if (m.level==4) {ob.x=120; ob.y=30;}if (m.level==5)
{ob.x=30; ob.y=30;}. Paint_Map (Form1, Image1, ob,&kl);.ochki
-;.left=false; ob.right=false; ob.down=false;
ob.up=false;(«CatchYou!»);(0);->Enabled=true;->Enabled=true;->Enabled=true;


}((m.a [ob.y/30]
[ob.x/30]=='m')) {.a [ob.y/30] [ob.x/30]=0;.left=false; ob.right=false;
ob.down=false; ob.up=false;->Enabled=false;->Enabled=false;->Label4->Visible=true;(«ACHTUNG!»);.
Paint_Map (Form1, Image1, ob,&kl);.ochki
-;(0);->Enabled=true;->Enabled=true;->Enabled=true;


__fastcall TForm1:
Timer5Timer (TObject *Sender) //enemy B


__fastcall TForm1:
Timer666Timer (TObject *Sender) // проприсовка карты
передвиж гг


{. Paint_Map (Form1,
Image1, ob,&kl);



Создание компьютерной игры . Курсовая работа...
Курсовая работа: Разработка компьютерной игры "Змейка"
Курсовая работа (Практика) на тему " Создание игры " скачать...
Курсовая работа "Разработка компьютерной игры "
Курсовой проект по программированию. Создание игры ...
Реферат На Тему Теория Игр
Правила Написания Дипломной
Система Зажигания Автомобиля Реферат
Сочинение Мое Понимание Романа Пушкина
Как Сделать Город Экологический Привлекательным Эссе

Report Page