Графика: праздничный салют - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Салют.Реализовать на экране картину праздничного салюта:взлет,разрывы,падения пиротехнических ракет и их осколков (из нескольких стволов).Световые эффекты желательно сопроводить звуковыми.

Решение задачи: «Графика: праздничный салют»

textual
Листинг программы
uses crt,graphABC;
var vx,vy: integer;
 
procedure Vzlet(x,k: integer);
var i,y: integer;
begin
y:=500;
for i:=1 to 100 do
    begin
    setbrushcolor(clwhite);
    setpencolor(clwhite);
    circle(x,y,5);
    if i>10 then
       begin
       setbrushcolor(clblack);
       setpencolor(clblack);
       circle(x-(k*10),y+(4*10),5);
       end;
    y:=y-4;
    x:=x+k;
    sleep(10);
    end;
end;
 
procedure Bach (x,y: integer);
var i,j,kx,ky: integer;
begin
for j:=1 to 6 do
    begin
    clearwindow(clblack);
    for i:=1 to 100 do
        begin
        setbrushcolor(rgb(random(255),random(255),random(255)));
        setpencolor(rgb(random(255),random(255),random(255)));
        repeat
        kx:=random(200)-100;
        ky:=random(200)-100;
        until sqr(kx)+sqr(ky)<sqr(100);
        circle(x+kx,y+ky,6-j);
        sleep(1);
        end;
    y:=y+10;
    sleep(50);
    end;
end;
 
begin
hidecursor;
setwindowsize(800,500);
clearwindow(clblack);
repeat
vx:=random(400)+200;
vy:=random(6)-3;
Vzlet(vx,vy);
Bach (vx+(vy*100),random(100)+100);
until keypressed;
end.

Объяснение кода листинга программы

  1. В начале кода подключаются необходимые библиотеки и переменные.
  2. В процедуре Vzlet(x,k:) используются циклы for для рисования кругов с определенными параметрами. Переменная y инициализируется значением 500, а затем уменьшается на 4 с каждой итерацией цикла. Переменная x увеличивается на значение k при каждой итерации цикла. Если значение переменной i больше 10, то цвет кисти и пера меняется на черный.
  3. В процедуре Bach (x,y:) используется цикл for для рисования кругов на окне. Цикл повторяется 6 раз, каждый раз меняя цвет кисти и пера на случайный из палитры RGB. Критерий остановки - сумма квадратов координат x и y меньше суммы квадратов значения 100.
  4. Основной цикл программы начинается с вызова функции hidecursor() для скрытия курсора мыши, затем устанавливается размер окна приложения. Затем происходит последовательное выполнение процедур Vzlet(x,vy) и Bach(vx,vy) до нажатия клавиши.

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы