Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <graphics.h>
- #include <unistd.h>
- using namespace std;
- int di[8]={-1,-1,-1,0,1,1,1,0};
- int dj[8]={-1,0,1,1,1,0,-1,-1};
- int dx[16]={-1,0,-1,1,0,1,1,1,1,0,1,-1,-1,0,-1,-1};
- int dy[16]={0,-1,-1,-1,-1,0,-1,1,0,1,1,1,0,1,-1,1};
- int sofisticat=1;
- int lungimex=1900, lungimey=1000;
- int vitezamax=20;
- short page = 1;
- int lungimemax=20;
- struct {
- int x,y,L,viteza;
- int ap[11]; } fulgi[10001];
- int clearscreen()
- {
- setfillstyle(SOLID_FILL,BLACK);
- floodfill(2,2,YELLOW);
- }
- int generarefulg(int &u)
- {
- u++;
- fulgi[u].x=lungimex;
- fulgi[u].y=rand()%1000;
- fulgi[u].L=rand()%lungimemax+lungimemax/5;
- fulgi[u].viteza=fulgi[u].L;
- if(sofisticat==2)
- {int cate=8;
- int i,x;
- for(i=0;i<=7;i++)
- fulgi[u].ap[i]=0;
- while(cate>0)
- {
- x=rand()%8;
- while(fulgi[u].ap[x]==1)
- x=rand()%8;
- fulgi[u].ap[x]=rand()%3+1;
- cate--;
- }}
- }
- int brate(int x,int y,int L,int l,int fl)
- {
- int aux=x,auy=y,i,j=-1,cate;
- int ap[10];
- cate=8;
- for(i=0;i<=7;i++)
- ap[i]=0;
- while(cate>0)
- {
- x=rand()%8;
- while(ap[x]==1)
- x=rand()%8;
- ap[x]=rand()%3+1;
- cate--;
- }
- for(i=0;i<=7;i++)
- {
- x=aux+di[i]*L;
- y=auy+dj[i]*L;
- j++;
- if(sofisticat==2) {if(fulgi[fl].ap[i]==1||fulgi[fl].ap[i]==3)
- line(x+dy[j]*l,y+dx[j]*l,x,y);}
- else line(x+dy[j]*l,y+dx[j]*l,x,y);
- j++;
- if(sofisticat==2){if(fulgi[fl].ap[i]==2||fulgi[fl].ap[i]==3)
- line(x+dy[j]*l,y+dx[j]*l,x,y);}
- else line(x+dy[j]*l,y+dx[j]*l,x,y);
- }
- }
- int fulg(int x,int y,int L,int fl)
- {
- line(x-L,y,x+L,y);
- line(x,y-L,x,y+L);
- line(x-L,y-L,x+L,y+L);
- line(x+L,y-L,x-L,y+L);
- if(sofisticat==1)
- {brate(x,y,L,L/4,fl);
- brate(x,y,L/2,L/4,fl);}
- }
- int main()
- {
- int i,j,z=1,u;
- u=0;
- initwindow(lungimex,lungimey);
- srand(time(NULL));
- setactivepage(page);
- setvisualpage(1 - page);
- while(z)
- {
- setactivepage(page);
- setvisualpage(page);
- clearscreen();
- setvisualpage(page+1);
- z=(z+1)%10001+1;
- if(z%7==0) generarefulg(u);
- setactivepage(page);
- setvisualpage(1 - page);
- page = 1 - page;
- for(i=1;i<=u;i++)
- {fulgi[i].x-=fulgi[i].viteza;
- if(fulgi[i].x<0)
- {
- for(j=i;j<u;j++)
- fulgi[j]=fulgi[j+1];
- u--;
- i--;
- }
- else fulg(fulgi[i].x,fulgi[i].y,fulgi[i].L,i);
- setvisualpage(page);
- }}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement