#include #include //printf/getch itp. #include //kbhit() #include //funkcje graficzne BGI #include //Sleep(xx) #include using namespace std; class figura { protected: double x,y,a; public: figura(); ~figura(); virtual void rysuj(int kolor); void przesun(int dx, int dy); }; figura::figura() { x=rand()%640; y=rand()%480; a=rand()%200+20; } void figura::rysuj(int kolor) { setcolor(kolor); } void figura::przesun(int dx, int dy) { rysuj(BLACK); x+=dx; y+=dy; rysuj(LIGHTGREEN); } figura::~figura() { rysuj(BLACK); } class kwadrat: public figura { public: void rysuj(int kolor); }; void kwadrat::rysuj(int kolor) { setcolor(kolor); rectangle(x-0.5*a,y-0.5*a,x+0.5*a,y+0.5*a); } class kolo: public figura { public: void rysuj(int kolor); }; void kolo::rysuj(int kolor) { setcolor(kolor); circle(x,y,a); } int main() { int GraphDriver = DETECT; int GraphMode; int ErrorCode; initgraph(&GraphDriver, &GraphMode,""); ErrorCode = graphresult(); if(ErrorCode != grOk) { printf("Blad trybu graficznego: %sn", grapherrormsg(ErrorCode) ); exit(1); } //Tutaj kod związany z rysowaniem //****************************************************************************************************************** srand(time(NULL)); figura *a[20]; int i,x,p,h,k; char z,b; for(i=0; i<20; i++) { a[i]=NULL; } do { system("CLS"); cout<<"R-RysujnZ-zmazujnP-przesunnQ-Wyjscie"<>z; switch(z) { case 'r': system("CLS"); cout<<"Ktory element chcesz narysowac"<>p; cout<<"K-KwadratnO-Okrag"<>k; switch(k) { case 'o': if(a[p]==NULL) { cout<<"Jakiego koloru ma byc okrag?"<>x; a[p]=new kolo; a[p]->rysuj(x); } else { system("CLS"); cout<<"Pole juz zajete"<>x; a[p]=new kwadrat; a[p]->rysuj(x); } else { system("CLS"); cout<<"Pole juz zajete"<>p; if(a[p]!=NULL) { a[p]->rysuj(BLACK); delete a[p]; a[p]=NULL; } else { cout<<"Pole jest juz puste"<>h; cout<<"e - Wyjscie z trybu przesuwania"<przesun(0,-5); break; case's': a[h]->przesun(0,5); break; case 'a': a[h]->przesun(-5,0); break; case 'd': a[h]->przesun(5,0); break; } } } while(b!='e'); } else { cout<<"Pole jest puste"<