0% found this document useful (0 votes)
43 views6 pages

Walking Man in C

The document contains a C program that draws a scene with a hut, man with umbrella, falling rain, and ending with a rainbow. The program initializes graphics, draws the hut and ground, animates the man and rain, and finally displays a rainbow when a key is pressed.

Uploaded by

mylove6947
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views6 pages

Walking Man in C

The document contains a C program that draws a scene with a hut, man with umbrella, falling rain, and ending with a rainbow. The program initializes graphics, draws the hut and ground, animates the man and rain, and finally displays a rainbow when a key is pressed.

Uploaded by

mylove6947
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

// C program to implement

// the above approach

#include <conio.h>

#include <graphics.h>

#include <stdio.h>

#define ScreenWidth getmaxx()

#define ScreenHeight getmaxy()

#define GroundY ScreenHeight * 0.75

int ldisp = 0;

// Creating a hut

void hut()

setcolor(WHITE);

rectangle(150, 180, 250, 300);

rectangle(250, 180, 420, 300);

rectangle(180, 250, 220, 300);

line(200, 100, 150, 180);

line(200, 100, 250, 180);

line(200, 100, 370, 100);

line(370, 100, 420, 180);

setfillstyle(SOLID_FILL, BROWN);

floodfill(152, 182, WHITE);


floodfill(252, 182, WHITE);

setfillstyle(SLASH_FILL, BLUE);

floodfill(182, 252, WHITE);

setfillstyle(HATCH_FILL, GREEN);

floodfill(200, 105, WHITE);

floodfill(210, 105, WHITE);

// Drawing a Man with

// an umbrella

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);

// Creating the Rainfall

void Rain(int x)

int i, rx, ry;

for (i = 0; i < 400; i++)

rx = rand() % ScreenWidth;

ry = rand() % ScreenHeight;

if (ry < GroundY - 4)

if (ry < GroundY - 120 ||

(ry > GroundY - 120 &&

(rx < x - 20 ||

rx > x + 60)))
line(rx, ry,

rx + 0.5, ry + 4);

// Creating the rainbow

void rainbow()

int x, y, i;

circle(ScreenWidth - 100,

50, 30);

setfillstyle(SOLID_FILL,

YELLOW);

floodfill(ScreenWidth - 100,

50, WHITE);

ldisp = (ldisp + 2) % 20;

DrawManAndUmbrella(x, ldisp);

hut();

x = getmaxx() / 5;

y = getmaxy() / 5;

for (i = 30; i < 100; i++)


{

// for animation

delay(50);

setcolor(i / 10);

arc(x, y, 0, 180, i - 10);

getch();

// Driver code

void main()

int gd = DETECT, gm, x = 0;

initgraph(&gd, &gm,

"C:\\TurboC3\\BGI");

// executes till any key

// is pressed

while (!kbhit())

hut();

circle(ScreenWidth - 100,
50, 30);

setfillstyle(SOLID_FILL,

YELLOW);

floodfill(ScreenWidth - 100,

50, WHITE);

line(0, GroundY, ScreenWidth,

GroundY);

Rain(x);

ldisp = (ldisp + 2) % 20;

DrawManAndUmbrella(x, ldisp);

delay(20);

cleardevice();

x = (x + 2) % ScreenWidth;

// if the key is pressed the

// rain stops, rainbow appears

ldisp = (ldisp + 2) % 20;

DrawManAndUmbrella(x, ldisp);

rainbow();

getch();

You might also like