Рисование падающего снега - PascalABC.NET

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

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

нужно нарисовать падающий снег в паскаль авс нет, так чтобы он падал поверх этой елки.Нужно так чтобы снежинки вверху появлялись спускались вниз и исчезали. вот программа с елкой
Листинг программы
  1. uses graphabc;
  2. var a:integer;
  3. procedure shary(x:integer);
  4. begin
  5. floodfill(120,75,clrandom);
  6. floodfill(160,95,clrandom);
  7. floodfill(130,110,clrandom);
  8. floodfill(155,60,clrandom);
  9. floodfill(200,105,clrandom);
  10. floodfill(150,165,clrandom);
  11. floodfill(120,190,clrandom);
  12. floodfill(170,210,clrandom);
  13. floodfill(140,220,clrandom);
  14. floodfill(100,230,clrandom);
  15. floodfill(190,180,clrandom);
  16. floodfill(200,240,clrandom);
  17. floodfill(150,300,clrandom);
  18. floodfill(120,330,clrandom);
  19. floodfill(180,340,clrandom);
  20. floodfill(140,360,clrandom);
  21. floodfill(90,370,clrandom);
  22. floodfill(190,380,clrandom);
  23. floodfill(230,370,clrandom);
  24. end;
  25. begin
  26. setpencolor(clgreen);
  27. line(150,25,75,125);
  28. line(150,25,225,125);
  29. line(225,125,75,125);
  30. line(150,125,50,250);
  31. line(150,125,250,250);
  32. line(50,250,250,250);
  33. line(150,250,25,400);
  34. line(150,250,275,400);
  35. line(25,400,275,400);
  36. setpencolor(clbrown);
  37. rectangle(125,400,175,500);
  38. floodfill(150,75,clgreen);
  39. floodfill(150,200,clgreen);
  40. floodfill(150,325,clgreen);
  41. floodfill(150,450,clbrown);
  42. setpencolor(clblack);
  43. circle(120,75,10);
  44. circle(160,95,10);
  45. circle(130,110,10);
  46. circle(155,60,10);
  47. circle(200,105,10);
  48. circle(150,165,10);
  49. circle(120,190,10);
  50. circle(170,210,10);
  51. circle(140,220,10);
  52. circle(100,230,10);
  53. circle(190,180,10);
  54. circle(200,240,10);
  55. circle(150,300,10);
  56. circle(120,330,10);
  57. circle(180,340,10);
  58. circle(140,360,10);
  59. circle(90,370,10);
  60. circle(190,380,10);
  61. circle(230,370,10);
  62. while true do
  63. shary(1);
  64. end.

Решение задачи: «Рисование падающего снега»

textual
Листинг программы
  1. uses graphabc;
  2. const m=200;
  3. type mas=array[1..m] of integer;
  4. procedure fon;
  5. begin
  6. setpencolor(clgreen);
  7. line(150,25,75,125);
  8. line(150,25,225,125);
  9. line(225,125,75,125);
  10. line(150,125,50,250);
  11. line(150,125,250,250);
  12. line(50,250,250,250);
  13. line(150,250,25,400);
  14. line(150,250,275,400);
  15. line(25,400,275,400);
  16. setpencolor(clbrown);
  17. rectangle(125,400,175,500);
  18. floodfill(150,75,clgreen);
  19. floodfill(150,200,clgreen);
  20. floodfill(150,325,clgreen);
  21. floodfill(150,450,clbrown);
  22. setpencolor(clblack);
  23. end;
  24.  
  25. procedure shary(x:integer);
  26. begin
  27. setbrushcolor(clrandom);
  28. circle(120,75,10);
  29. setbrushcolor(clrandom);
  30. circle(160,95,10);
  31. setbrushcolor(clrandom);
  32. circle(130,110,10);
  33. setbrushcolor(clrandom);
  34. circle(155,60,10);
  35. setbrushcolor(clrandom);
  36. circle(200,105,10);
  37. setbrushcolor(clrandom);
  38. circle(150,165,10);
  39. setbrushcolor(clrandom);
  40. circle(120,190,10);
  41. setbrushcolor(clrandom);
  42. circle(170,210,10);
  43. setbrushcolor(clrandom);
  44. circle(140,220,10);
  45. setbrushcolor(clrandom);
  46. circle(100,230,10);
  47. setbrushcolor(clrandom);
  48. circle(190,180,10);
  49. setbrushcolor(clrandom);
  50. circle(200,240,10);
  51. setbrushcolor(clrandom);
  52. circle(150,300,10);
  53. setbrushcolor(clrandom);
  54. circle(120,330,10);
  55. setbrushcolor(clrandom);
  56. circle(180,340,10);
  57. setbrushcolor(clrandom);
  58. circle(140,360,10);
  59. setbrushcolor(clrandom);
  60. circle(90,370,10);
  61. setbrushcolor(clrandom);
  62. circle(190,380,10);
  63. setbrushcolor(clrandom);
  64. circle(230,370,10);
  65. end;
  66. procedure snezinki(x,y:mas);
  67. var i:integer;
  68. begin
  69. setpencolor(clWhite);
  70. setbrushcolor(clWhite);
  71. for i:=1 to m do
  72. circle(x[i],y[i],2);
  73. end;
  74. var x,y:mas;
  75.     i,j,k,n:integer;
  76. begin
  77. randomize;
  78. clearwindow(clBlue);
  79. for i:=1 to m do
  80.  begin
  81.   x[i]:=random(windowwidth);
  82.   y[i]:=random(windowheight);
  83.   circle(x[i],y[i],2);
  84.  end;
  85. lockdrawing;
  86. k:=0;n:=0;
  87. while true do
  88.  begin
  89.   clearwindow(clBlue);
  90.   fon;
  91.   shary(1);
  92.   snezinki(x,y);
  93.   k:=k+1;
  94.   sleep(10);
  95.   for i:=1 to m do
  96.    begin
  97.     if y[i]>windowheight-n-10 then y[i]:=1
  98.     else y[i]:=y[i]+3;
  99.     if x[i]<0 then x[i]:=windowwidth
  100.     else x[i]:=x[i]-1;
  101.    end;
  102.   //рисуем увеличивающийся слой снега на земле(если хотите)
  103.   if k mod 20=0 then n:=n+1;
  104.   rectangle(0,windowheight-n,windowwidth,windowheight);
  105.   redraw;
  106.  end;
  107. end.

ИИ поможет Вам:


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

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

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы