Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабы / 2 / OLYA

.CPP
Скачиваний:
22
Добавлен:
16.04.2013
Размер:
1.73 Кб
Скачать
//‹ Ў  ђ®¬л Њ®абЁ­ , ᤥ« ­­лҐ ¤«п Ћ«Ё
//ЏҐаҐ¬ҐйҐ­ЁҐ ЄагЈ®ў
#include <graphics.h>
#include <STDLIB.h>
#include <conio.h>
#include <dos.h>
class Window;

class Ball {
protected:
	In(Window);
public:
	int x,y,radius,color,dx,dy;
	Ball(int,int,int,int,int,int);
	int moveto(Window);
	int show();
	int hide();
	~Ball() {};
	};

class Window {
public:
	int xl,xr,yt,yb;
	Window(int,int,int,int);
	int show();
	~Window();
	};

Ball::Ball(int nx, int ny, int rad, int col,int a,int b) {
x=nx;
y=ny;
radius=rad;
color=col;
dx=a;
dy=b;
};

int Ball::show() {
setcolor(color);
circle(x,y,radius);
return 1;
};

int Ball::hide() {
setcolor(getbkcolor());
circle(x,y,radius);
return 1;
};

int Ball::moveto(Window win) {
In(win);
x+=dx;
y+=dy;
return 1;
};

int Ball::In(Window win) {
if ((x+dx-radius-1)<win.xl || (x+dx+radius+1)>win.xr) dx=-dx;
if ((y+dy-radius-1)<win.yt || (y+dy+radius+1)>win.yb) dy=-dy;
return 1;
};

Window::Window(int x1,int y1, int x2, int y2) {
xl=x1;
yt=y1;
xr=x2;
yb=y2;
}

Window::~Window() {
};
int Window::show() {
setcolor(WHITE);
rectangle(xl,yt,xr,yb);
return 1;
};



void main() {
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "E:\\C3.1\\bgi");
int r,x1=10,y1=10,x2=400,y2=400;
int num=3;
Window w(x1,y1,x2,y2);
w.show();
randomize();
r=random(20)+5;
Ball **balls;
for (int i=0; i<num; i++) balls[i]=new Ball(random(x2-r-x1-2)+x1+r+1,random(y2-r-2-y1)+y1+r+1,r,15,random(5)+1,random(5)+1);
while (!kbhit()) {
	for (i=0; i<num; i++) balls[i]->show();
    delay(10);
	for (i=0; i<num; i++) balls[i]->hide();
	for (i=0; i<num; i++) balls[i]->moveto(w);
};
for (i=0; i<num; i++) delete balls[i];
};
Соседние файлы в папке 2