#include #include #include #include #include #define ScreenWdith getmaxx() #define ScreenHeight getmaxy() #define GroundY ScreenHeight*0.75 int ldisp=0; void DrawManAndUmbrella(int x,int ldisp) { circle(x,GroundY-90,10); line(x,GroundY-80,x,GroundY-30); line(x,GroundY-70,x+10,GroundY-60); line(x,GroundY-65,x+10,GroundY-55); line(x+10,GroundY-60,x+20,GroundY-70); line(x+10,GroundY-55,x+20,GroundY-70); line(x,GroundY-30,x+ldisp,GroundY); line(x,GroundY-30,x-ldisp,GroundY); pieslice(x+20,GroundY-120,0,180,40); line(x+20,GroundY-120,x+20,GroundY-70); } void Rain(int x) { int i,rx,ry; for(int i=0;i<400;i++) { rx = rand() % ScreenWdith; ry = rand() % ScreenHeight; if(ry GroundY-120 && (rx < x-20 || rx > x+60))) line(rx,ry,rx+0.5,ry+4); } } } int main(){ int gd=DETECT, gm; int x=0; initgraph(&gd, &gm,NULL); while(!kbhit()) { line(0,GroundY,ScreenWdith,GroundY); Rain(x); ldisp = (ldisp+2)%20; DrawManAndUmbrella(x,ldisp); delay(25); cleardevice(); x=(x+2)%ScreenWdith; } getch(); }