Автор работы: Пользователь скрыл имя, 23 Ноября 2009 в 18:54, Не определен
Условие задачи: Разработать программу, моделирующую игру «Сбей самолет». По экрану летят вражеские самолеты. Цель играющего – сбить их. Пусковая установка находится в нижней строке экрана, её можно передвигать по строке вперед и назад.
end;
end;
//=======================
procedure FillZap(ind: integer);
begin
Su25[ind].X:=random(Form1.
Su25[ind].Y:=-1;
Su25[ind].vectX:=random(Form1.
Su25[ind].vectY:=Form1.Image1.
Su25[ind].koef_b:=Su25[ind].X;
Su25[ind].koef_a:=Su25[ind].
end;
//=======================
procedure Calc;
var i: integer;
begin
For i:=1 to n do
begin
if Su25[i].Y>Form1.Image1.Height then FillZap(i);
Su25[i].X:=round(Su25[i].Y*
inc(Su25[i].Y,random(10));
end;
if rocket.Destroed<>true then dec(rocket.Y,10);
if rocket.Y<-10 then
begin
rocket.Destroed:=true;
rocket.Y:=Form1.Image1.Height+
end;
end;
//=======================
procedure ClearScr;
begin
Form1.Image1.Canvas.Brush.
Form1.Image1.Canvas.FillRect(
end;
//=======================
procedure LoadImages_;
var i: integer;
begin
For i:=1 to n do
begin
Su25[i].Gr:=TBitmap.Create;
Su25[i].Gr.LoadFromFile('
Su25[i].Gr.TransparentColor:=
Su25[i].Gr.Transparent:=true;
end;
turel.Gr:=TBitmap.Create;
turel.Gr.LoadFromFile('graph
turel.Gr.TransparentColor:=
turel.Gr.Transparent:=true;
turel.X:=turel.Gr.Width+10;
turel.Y:=521-turel.Gr.Height;
Rocket.Gr:=TBitmap.Create;
Rocket.Gr.LoadFromFile('graph
Rocket.Gr.TransparentColor:=
Rocket.Gr.Transparent:=true;
Rocket.Y:=Form1.Image1.Height+
Rocket.Destroed:=true;
end;
//=======================
procedure DrawScene;
var I: integer;
begin
For i:=1 to n do
begin
Form1.Image1.Canvas.Draw(Su25[
end;
Form1.Image1.Canvas.Draw(
Form1.Image1.Canvas.Draw(
end;
//=======================
procedure Precache_;
var i: integer;
begin
For i:=1 to n do FillZap(i);
end;
//=======================
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Calc;
Colision;
ClearScr;
DrawScene;
label3.Caption:=inttostr(
if killed>=100 then
begin
label3.Caption:='Вы выйграли';
Timer1.Enabled:=false;
Button1.Enabled:=true;
killed:=0;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
LoadImages_;
Precache_;
ClearScr;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Timer1.Enabled:=false;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_LEFT : begin
if turel.X >0 then dec(turel.X,10);
end;
VK_RIGHT : begin
if turel.X<Image1.Width-turel.Gr.
end;
VK_SPACE : begin
if rocket.Destroed then
begin
rocket.Destroed:=false;
rocket.X:=turel.X + turel.Gr.Width div 2;
end;
end;
VK_ESCAPE : begin
Timer1.Enabled:=false;
Button1.Enabled:=true;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled:=false;
Timer1.Enabled:=true;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Showmessage('Игра
"Сбей самолет"'#13#13#13'
end;
end.
Общие сведения: программа разработана в среде программирования Delphi 7.
Функциональное назначение программы: программа предназначена для развлечения.
Используемые технические средства: при разработке программы были использованы следующие технические и программные средства:
Вызов и загрузка: для того, чтобы запустить программу, необходимо запустить файл «Project1.exe».
Для тестирования программы были пройдены все этапы игры.
Контрольный пример предполагал проверку следующих требований:
-
возможность открытия
- отображение рисунков,
- работа счетчика «Вы сбили:».
- возможность перехода игры в режим «Пауза».
Программа тщательно проверялась. Ошибок не найдено.
Вид
приложения в случайный момент игры
приведен на рисунке 4.
Рисунок 4 - Вид окна приложения в случайный момент игры
Условия выполнения программы: Данное приложение способно работать на персональных компьютерах с минимальными требованиями Pentium 100, оперативной памятью 32 Мб, операционной средой Windows.
Установка программы: в данном приложении не предусмотрен установочный пакет. Поэтому установка заключается в копировании папки содержащей весь состав проекта (см. приложение) с диска, дискеты или другого носителя на жесткий диск компьютера.
Выполнение
программы: для загрузки программы необходимо
запустить файл «Project1.exe», для старта (повтора)
игры следует нажать на кнопку «Поехали».
Для того чтобы остановить игру нужно
нажать на кнопку клавиатуры – «Esc». Для
выхода из программы необходимо нажать
Alt+F4 или щелкнуть левой кнопкой мыши по
крестику в правом верхнем углу экрана.
Приложение представляет собой очень простой вариант игры «сбей самолет».
Здесь используется цикл таймера для прорисовки объектов игры. Несмотря на то, что программист имеет право по-своему определять какие ему нужны компоненты при разработке приложения, так как главное результат, но данный подход, при котором для прорисовки на поле объектов игры используется цикл таймера не является оптимальным. Таймер имеет погрешность при определении интервала времени, поэтому в игре могут быть заметны мелкие скачки при выводе изображения. Но целью приложения является осуществление вывода графических объектов, поэтому такой подход в данном случае можно использовать.
С помощью именно такого подсчета количества набранных очков, который используется в игре, можно получать довольно разнообразные результаты за одинаковый промежуток времени (времени игры). Это вызывает больший интерес к игре, т. к. игроки могут соревноваться в количестве набранных очков.
Для
уменьшения размера исполняемого файла
картинки игры загружаются при запуске
игры, но из-за этого увеличивается количество
файлов необходимых для функциональности
приложения.
№ | Новые понятия |
|
1 | Объектно-ориентированное программирование | подход к программированию, рассматривающий программу как совокупность объектов и сообщений |
2 | Объект |
пакет информации, содержащий данные и процедуры их обработки. Сообщение – это спецификация условий выполнения одной из процедур обработки объекта |
3 | Язык программирования |
система обозначений, служащая для точного описания программ или алгоритмов машинных вычислений. Язык программирования – это искусственный язык, в котором алфавит ( набор различных символов языка), синтаксис (правила построения множества текстов или конструкций языка из алфавита языка) и семантика (описание соответствия между текстами и их «смыслами») строго и однозначно определены |
4 | Операция | действие в языке программирование, которое выполняется над данными |
5 | Структура
программы |
общая схема построения программы, рассматривающая все ее составные компоненты и взаимосвязи между ними |
6 | Оператор присваивания | оператор языка программирования, предназначенный для вычисления значения заданного выражения и записи в память полученного результата |
7 | Файл |
определенным образом организованная совокупность данных, имеющих общее имя и размещенных на одном из внешних устройств компьютера (например, на жестком или гибком дисках) |
8 | Оператор ввода данных | специальный оператор,
предназначенный для ввода |
9 | Оператор вывода данных | специальный оператор, предназначенный для вывода данных из памяти в файл, закрепленный за одним из внешних устройств компьютера |
10 | Качествопрограммы |
степень соответствия программы своему функциональному назначению с точки зрения предъявляемых к ней требований |