Advertisement
dangduong06

PASCAL_FIREWORK

Dec 31st, 2020
866
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.35 KB | None | 0 0
  1. program FireWork;
  2. {
  3.     TRUONG DANG DUONG
  4.     30.12.2020
  5.     FB.COM/DUONGDZIN
  6. }
  7.  
  8.  
  9. uses crt;
  10. var i,x,y,size : Integer;
  11.     chars:String;
  12. const
  13.     FIRE_CHAR = '.';
  14.     NULL_CHAR = ' ';
  15.     BULLET_CHAR = '|';
  16.     SPEED = 25;
  17.     MAX_Y = 30;
  18.     MAX_X = 120;
  19.  
  20. procedure DRAW_FIREWORK(x,y,size:Integer;c:char);
  21. begin
  22.     for i:=0 to size do begin
  23.         //1
  24.         gotoxy(x+i*2, y);
  25.         write(c);
  26.         //2
  27.         gotoxy(x-i*2, y);
  28.         write(c);
  29.         //3
  30.         gotoxy(x, y+i);
  31.         write(c);
  32.         //4
  33.         gotoxy(x, y-i);
  34.         write(c);
  35.         //5
  36.         gotoxy(x+i*2, y+i);
  37.         write(c);
  38.         //6
  39.         gotoxy(x-i*2, y-i);
  40.         write(c);
  41.         //7
  42.         gotoxy(x-i*2, y+i);
  43.         write(c);
  44.         //8
  45.         gotoxy(x+i*2, y-i);
  46.         write(c);
  47.         delay(SPEED);
  48.     end;
  49.     delay(SPEED);
  50. end;
  51.  
  52. procedure DRAW_BULLET(x,y:Integer);
  53. var i : Integer;
  54. begin
  55.     for i := MAX_Y downto y do begin
  56.         gotoxy(x, i-1);
  57.         write('*');
  58.         gotoxy(x, i);
  59.         write(BULLET_CHAR);
  60.         gotoxy(x, i+3);
  61.         write(' ');
  62.         delay(SPEED);
  63.     end;
  64. end;
  65. //MAIN PROGRAM
  66. begin
  67. clrscr;
  68. cursoroff;
  69. chars:='..*o-".';
  70. while 1=1 do begin
  71.     try;
  72.         textcolor(random(10));
  73.         size:=5+random(5);
  74.         x:=1+random(MAX_X);
  75.         y:=10+random(MAX_Y-20);
  76.         if (x < 0) or (y < 0) then continue ;
  77.         //gotoxy(1, 1);
  78.         //write(x,' ',y);
  79.         DRAW_BULLET(x,y);
  80.         DRAW_FIREWORK(x,y,size,chars[random(length(chars))]);
  81.         delay(10);
  82.         DRAW_FIREWORK(x,y,size,NULL_CHAR);
  83.         finally
  84.     end;
  85.    
  86. end;
  87.  
  88.    
  89. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement