-
#include<stdio.h>
-
#include<TX/graphics.h>
-
#include<time.h>
-
// I need help!
-
struct Krug{
-
double _x;
-
double _y;
-
double _skox;
-
double _skoy;
-
double _granx1;
-
double _grany1;
-
double _granx2;
-
double _grany2;
-
int _rad;
-
void init(double x,double y,double skox,double skoy,int rad,double granx1,double grany1,double granx2,double grany2);
-
void draw();
-
void dvig();
-
};
-
struct Korobka{
-
double _granx1;
-
double _grany1;
-
double _granx2;
-
double _grany2;
-
int _kolvoprim;
-
Krug Circles[300];
-
void init(double granx1,double grany1,int granx2,int grany2,int kolvoprim);
-
void draw();
-
void start();
-
};
-
int main(){
-
txCreateWindow(1025,769);
-
txSetFillColor(txBLACK);
-
Korobka Yaschik;
-
Yaschik.init(100,100,801,601,5);
-
Yaschik.draw();
-
Yaschik.start();
-
return 0;
-
}
-
void Krug::init(double x,double y,double skox,double skoy,int rad,double granx1,double grany1,double granx2,double grany2){
-
_granx1=granx1;
-
_grany1=grany1;
-
_granx2=granx2;
-
_grany2=grany2;
-
_x=x;
-
_y=y;
-
_skox=skox;
-
_skoy=skoy;
-
_rad=rad;
-
}
-
void Korobka::init(double granx1,double grany1,int granx2,int grany2,int kolvoprim){
-
srand(time(0));
-
_granx1=granx1;
-
_grany1=grany1;
-
_granx2=granx2;
-
_grany2=grany2;
-
int rx=rand()%_granx2+_granx1;
-
int ry=rand()%_grany2+_grany1;
-
_kolvoprim=rand()%(kolvoprim+1);
-
for(int i = 0;i<_kolvoprim;i++){
-
Circles[i].init(rx,ry,rand()%10+1,rand()%10+1,rand()%10+5,_granx1,_grany1,_granx2,_grany2);
-
}
-
-
}
-
void Korobka::draw(){
-
txRectangle(_granx1,_grany1,_granx2,_grany2);
-
}
-
void Korobka::start(){
-
while(1){
-
for(int i = 0;i<_kolvoprim;i++){
-
txLock();
-
Circles[i].dvig();
-
txUnlock();
-
}
-
txSleep(40);
-
}
-
}
-
void Krug::draw(){
-
txCircle(_x,_y,_rad);
-
}
-
void Krug::dvig(){
-
txSetColor(txBLACK);
-
Krug::draw();
-
if((_x+_rad<=_granx1)or(_x+_rad>=_granx2)){
-
_skox=-_skox;
-
Krug::init(_x+=_skox,_y+=_skoy,_skox,_skoy,_rad,_granx1,_grany1,_granx2,_grany2);
-
}
-
if((_y+_rad<=_grany1)or(_y+_rad>=_grany2)){
-
_skoy=-_skoy;
-
Krug::init(_x+=_skox,_y+=_skoy,_skox,_skoy,_rad,_granx1,_grany1,_granx2,_grany2);
-
}
-
else{
-
Krug::init(_x+=_skox,_y+=_skoy,_skox,_skoy,_rad,_granx1,_grany1,_granx2,_grany2);
-
}
-
txSetColor(txWHITE);
-
Krug::draw();
-
}
-
|