Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

WithForm1.Image1.Canvasdo begin




Begin

Begin

WithForm1.Image1.Canvasdo begin

if (Vx = 0) and (Vy = 0) then

Pen.Color:= RGB(0, 70, 0) else Pen.Color:= clBlack; Brush.Color:= Pen.Color;

Pen.Width:= 5; MoveTo(GunPosition, 240);

 

LineTo(GunPosition + round(15 * sin(Angle * pi / 180)), 240 - round(15 * cos(Angle * pi / 180)));

Pen.Width:= 1;

Ellipse(GunPosition - 8, 232, GunPosition + 8, 248); Rectangle(GunPosition - 10, 240, GunPosition + 10, 260); end;

 

end;

 

Процедура DrawExplosion обеспечивает доступ к координатам снаряда.

 

procedure DrawExplosion(x, y, Phase: integer); var

 

i, xx, yy, Size: integer; a, b: double;

with Form1.Image1.Canvas do for i:= 0 to Phase * 10 do begin

a:= random * 2 * pi;

b:= random * sqr(Phase) / 3 + 5;

xx:= x + round(l * sin(a));

yy:= y + round(l * cos(a));

Size:= round(sqr(10 - Phase) / 8 + 2); Pen.Color:= RGB(random(100), 0, 0); Brush.Color:= Pen.Color;

Ellipse(xx - random(Size) - 1, yy - random(Size) - 1, xx + random(Size), yy + random(Size)); end;

end;

Кроме того, пушка меняет цвет, когда готов очередной снаряд. В довершение, нужно соединить все написанное воедино.

Процедуры рисования объединяются в процедуре, рисующей все поле боя:

• небо,

• шары,

• пушка,

• ядро,

• бомба.

Объединять все вместе обработчик таймера.


 


procedure DrawBattleField; var

 

i: integer; begin

 

with Form1.Image1.Canvas do for i:= 0 to 259 do

Pen.Color:= RGB(i div 2, i div 2, 255); MoveTo(0, i);

LineTo(440, i); end;

for i:= 0 to BallCount - 1 do with Balloons[i] do

if Explosion = 0 then DrawBalloon(x, 260 - y, Color) else if Explosion < 10 then DrawExplosion(x, 260 - y, Explosion);

if GunExplosion = 0 then DrawGun else if GunExplosion < 10 then DrawExplosion(GunPosition,240, GunExplosion);

Pen.Color:= clMaroon; Brush.Color:= clRed;

 

if (Vx <> 0) or (Vy <> 0) then Ellipse(round(x) - 2, 260 - round(y) - 2, round(x) + 3, 260 -round(y) + 3);

if (BombY <> 1000) then Ellipse(GunPosition - 2, 260 - round(BombY) - 2, GunPosition + 3,260 - round(BombY) + 3);

end;

 

end;

 

procedure TForm1.Timer1Timer(Sender: TObject); begin

 

MoveAll;

CheckCollisions;

DrawBattleField;

 

end;

 

Рис. 64.


Практическая работа № 19 «Тест»

 

Цель работы -создать программу,которая тестирует учащегося по информатике иматематике.

 

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

На первой форме происходит регистрация учащегося.

 

Рис. 65.

 

Фрагмент программы (unit1): uses Unit2;

 

{$R *.dfm}

 

procedure TForm1.Button2Click(Sender: TObject); begin

 

Close; end;

 

procedure TForm1.Button1Click(Sender: TObject); begin

 

Form2.Label3.Caption:=Form1.Edit1.Text;

Form2.ShowModal; end;

 

На второй форме предлагается выбрать один из тестов.

 

Рис. 66.

 

Фрагмент программы (unit2):

 

uses Unit3, Unit6;{$R *.dfm}

 

procedure TForm2.Button1Click(Sender: TObject); begin

 

Form3.ShowModal; end;


procedure TForm2.Button2Click(Sender: TObject); begin

 

Form2.Close; end;

 

procedure TForm2.Button3Click(Sender: TObject); begin

 

Form6.Edit2.Text:='';

Form6.ShowModal; end;

 

На третьей форме предлагается проути тест по информатике.

 

Рис. 67.

 

Фрагмент программы (unit3): uses Unit4, Unit2;

 

{$R *.dfm}

 

procedure TForm3.Button1Click(Sender: TObject); begin

 

k:=0;

if (Form3.Edit1.Text='монитор') or (Form3.Edit1.Text='Монитор') or (Form3.Edit1.Text='МОНИТОР') then k:=k+1;

if (Form3.Edit2.Text='Клавиатура') or (Form3.Edit2.Text='клавиатура') or (Form3.Edit2.Text='КЛАВИАТУРА') then k:=k+1;

 

if Form3.Edit3.Text='8' then k:=k+1;Form4.Label2.Caption:=IntToStr(k);

if k=0 then Form4.Label1.Caption:='Очень плохо' else

if k=1 then Form4.Label1.Caption:='Плохо' else

if k=2 then Form4.Label1.Caption:='Хорошо' else

if k=3 then Form4.Label1.Caption:='Очень хорошо';

Form3.Edit1.Text:='';

Form3.Edit2.Text:='';

Form3.Edit3.Text:='';

Form4.ShowModal; end;

 

procedure TForm3.Button2Click(Sender: TObject); begin

 

Form3.Close; end;

 

На следующей форме отображается результат тестирования и предложение о промотре ответа.

 


 

 

Рис. 68.

 

Фрагмент программы (unit4): uses Unit1, Unit5, Unit3, Unit2;

{$R *.dfm}

 

procedure TForm4.Button2Click(Sender: TObject); begin

 

Form4.Close; end;

 

procedure TForm4.Button1Click(Sender: TObject); begin

 

Form4.Close;

Form3.Close; end;

 

procedure TForm4.Button3Click(Sender: TObject); begin

 

Form5.ShowModal; end;

 

На следующей форме отображаются правильные ответы.

 

 

Рис. 69.

 

Фрагмент программы (unit5): uses Unit4, Unit3, Unit2, Unit1;

{$R *.dfm}

 

procedure TForm5.Button1Click(Sender: TObject); begin

 

Form4.Close;

Form3.Close;

Form2.Close;

Form1.Close;

 

Form5.Close; end;

 

Если учащийся выбрал тест по математике, то ему предлагается проверить свои знания таблицы умножения. На следующей форме случайным образом выбираются числа. Учащийся должен ввести значение произведения в текстовое поле. С помощью кнопки «проверка» выясняется правильность введенного ответа. Если ответ правильный, то можно сгенерировать следующий пример. После нескольких примеров можно проверить свой рейтинг.

 

 

Рис. 70.

 

Фрагмент программы (unit6): uses Unit7, Unit1;

 

{$R *.dfm}

 

procedure TForm6.Button1Click(Sender: TObject); var n,i:integer;

 

begin randomize;

 

a:=random(10)-0; b:=random(10)-0; Form6.Label1.Caption:=IntToStr(a); Form6.Label2.Caption:=IntToStr(b); Form6.Edit2.Text:=''; Form6.Label6.Caption:='';

 

end;

 

procedure TForm6.Button2Click(Sender: TObject); begin

 

if (a*b=StrToInt(Form6.Edit2.Text)) then begin

Form6.Label6.Caption:='Правильно'; m:=m+1;

 

r:=r+1;

q:=q+1; end

 




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 67; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.