Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.60 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <graphics.h>
  3. #include <unistd.h>
  4. using namespace std;
  5. int di[8]={-1,-1,-1,0,1,1,1,0};
  6. int dj[8]={-1,0,1,1,1,0,-1,-1};
  7. int dx[16]={-1,0,-1,1,0,1,1,1,1,0,1,-1,-1,0,-1,-1};
  8. int dy[16]={0,-1,-1,-1,-1,0,-1,1,0,1,1,1,0,1,-1,1};
  9. int sofisticat=1;
  10. int lungimex=1900, lungimey=1000;
  11. int vitezamax=20;
  12. short page = 1;
  13. int lungimemax=20;
  14. struct {
  15. int x,y,L,viteza;
  16. int ap[11]; } fulgi[10001];
  17. int clearscreen()
  18. {
  19. setfillstyle(SOLID_FILL,BLACK);
  20. floodfill(2,2,YELLOW);
  21. }
  22. int generarefulg(int &u)
  23. {
  24. u++;
  25. fulgi[u].x=lungimex;
  26. fulgi[u].y=rand()%1000;
  27. fulgi[u].L=rand()%lungimemax+lungimemax/5;
  28. fulgi[u].viteza=fulgi[u].L;
  29. if(sofisticat==2)
  30. {int cate=8;
  31. int i,x;
  32. for(i=0;i<=7;i++)
  33. fulgi[u].ap[i]=0;
  34. while(cate>0)
  35. {
  36. x=rand()%8;
  37. while(fulgi[u].ap[x]==1)
  38. x=rand()%8;
  39. fulgi[u].ap[x]=rand()%3+1;
  40. cate--;
  41. }}
  42. }
  43. int brate(int x,int y,int L,int l,int fl)
  44. {
  45. int aux=x,auy=y,i,j=-1,cate;
  46. int ap[10];
  47. cate=8;
  48. for(i=0;i<=7;i++)
  49. ap[i]=0;
  50. while(cate>0)
  51. {
  52. x=rand()%8;
  53. while(ap[x]==1)
  54. x=rand()%8;
  55. ap[x]=rand()%3+1;
  56. cate--;
  57. }
  58. for(i=0;i<=7;i++)
  59. {
  60.  
  61. x=aux+di[i]*L;
  62. y=auy+dj[i]*L;
  63. j++;
  64. if(sofisticat==2) {if(fulgi[fl].ap[i]==1||fulgi[fl].ap[i]==3)
  65. line(x+dy[j]*l,y+dx[j]*l,x,y);}
  66. else line(x+dy[j]*l,y+dx[j]*l,x,y);
  67. j++;
  68. if(sofisticat==2){if(fulgi[fl].ap[i]==2||fulgi[fl].ap[i]==3)
  69. line(x+dy[j]*l,y+dx[j]*l,x,y);}
  70. else line(x+dy[j]*l,y+dx[j]*l,x,y);
  71. }
  72. }
  73. int fulg(int x,int y,int L,int fl)
  74. {
  75. line(x-L,y,x+L,y);
  76. line(x,y-L,x,y+L);
  77. line(x-L,y-L,x+L,y+L);
  78. line(x+L,y-L,x-L,y+L);
  79. if(sofisticat==1)
  80. {brate(x,y,L,L/4,fl);
  81. brate(x,y,L/2,L/4,fl);}
  82. }
  83. int main()
  84. {
  85. int i,j,z=1,u;
  86. u=0;
  87. initwindow(lungimex,lungimey);
  88. srand(time(NULL));
  89. setactivepage(page);
  90. setvisualpage(1 - page);
  91. while(z)
  92. {
  93. setactivepage(page);
  94. setvisualpage(page);
  95. clearscreen();
  96. setvisualpage(page+1);
  97. z=(z+1)%10001+1;
  98. if(z%7==0) generarefulg(u);
  99. setactivepage(page);
  100. setvisualpage(1 - page);
  101. page = 1 - page;
  102. for(i=1;i<=u;i++)
  103. {fulgi[i].x-=fulgi[i].viteza;
  104. if(fulgi[i].x<0)
  105. {
  106. for(j=i;j<u;j++)
  107. fulgi[j]=fulgi[j+1];
  108. u--;
  109. i--;
  110. }
  111. else fulg(fulgi[i].x,fulgi[i].y,fulgi[i].L,i);
  112. setvisualpage(page);
  113. }}
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement