Рисование падающего снега - PascalABC.NET
Формулировка задачи:
нужно нарисовать падающий снег в паскаль авс нет, так чтобы он падал поверх этой елки.Нужно так чтобы снежинки вверху появлялись спускались вниз и исчезали.
вот программа с елкой
Решение задачи: «Рисование падающего снега»
textual
Листинг программы
uses graphabc; const m=200; type mas=array[1..m] of integer; procedure fon; begin setpencolor(clgreen); line(150,25,75,125); line(150,25,225,125); line(225,125,75,125); line(150,125,50,250); line(150,125,250,250); line(50,250,250,250); line(150,250,25,400); line(150,250,275,400); line(25,400,275,400); setpencolor(clbrown); rectangle(125,400,175,500); floodfill(150,75,clgreen); floodfill(150,200,clgreen); floodfill(150,325,clgreen); floodfill(150,450,clbrown); setpencolor(clblack); end; procedure shary(x:integer); begin setbrushcolor(clrandom); circle(120,75,10); setbrushcolor(clrandom); circle(160,95,10); setbrushcolor(clrandom); circle(130,110,10); setbrushcolor(clrandom); circle(155,60,10); setbrushcolor(clrandom); circle(200,105,10); setbrushcolor(clrandom); circle(150,165,10); setbrushcolor(clrandom); circle(120,190,10); setbrushcolor(clrandom); circle(170,210,10); setbrushcolor(clrandom); circle(140,220,10); setbrushcolor(clrandom); circle(100,230,10); setbrushcolor(clrandom); circle(190,180,10); setbrushcolor(clrandom); circle(200,240,10); setbrushcolor(clrandom); circle(150,300,10); setbrushcolor(clrandom); circle(120,330,10); setbrushcolor(clrandom); circle(180,340,10); setbrushcolor(clrandom); circle(140,360,10); setbrushcolor(clrandom); circle(90,370,10); setbrushcolor(clrandom); circle(190,380,10); setbrushcolor(clrandom); circle(230,370,10); end; procedure snezinki(x,y:mas); var i:integer; begin setpencolor(clWhite); setbrushcolor(clWhite); for i:=1 to m do circle(x[i],y[i],2); end; var x,y:mas; i,j,k,n:integer; begin randomize; clearwindow(clBlue); for i:=1 to m do begin x[i]:=random(windowwidth); y[i]:=random(windowheight); circle(x[i],y[i],2); end; lockdrawing; k:=0;n:=0; while true do begin clearwindow(clBlue); fon; shary(1); snezinki(x,y); k:=k+1; sleep(10); for i:=1 to m do begin if y[i]>windowheight-n-10 then y[i]:=1 else y[i]:=y[i]+3; if x[i]<0 then x[i]:=windowwidth else x[i]:=x[i]-1; end; //рисуем увеличивающийся слой снега на земле(если хотите) if k mod 20=0 then n:=n+1; rectangle(0,windowheight-n,windowwidth,windowheight); redraw; end; end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д