``````#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>
void serp(int level, int Ax, int Ay, int Bx, int By)
{
int poly[4]={Ax,Ay,Bx,By};

setfillstyle(SOLID_FILL,YELLOW);

if (level>0)
{

serp(level-1, Ax,Ay ,(2*Ax+Bx)/3,(2*Ay+By)/3);
serp(level-1,(2*Ax+Bx)/3,(2*Ay+By)/3,(Ax+Bx)/2+sqrt(3)*(Ay-By)/6,(Ay+By)/2+sqrt(3)*(Bx-Ax)/6);
serp(level-1,(Ax+Bx)/2+sqrt(3)*(Ay-By)/6,(Ay+By)/2+sqrt(3)*(Bx-Ax)/6,(Ax+2*Bx)/3,(Ay+2*By)/3);
serp(level-1,(Ax+2*Bx)/3,(Ay+2*By)/3,Bx,By);
}
else fillpoly(2,poly);
}

int main(void)
{
int graphdriver=DETECT, graphmode;
initgraph(&graphdriver, &graphmode, "");

int i, N=8, Bx=0, By=235, Ax=635, Ay=235;

for (i=0; i<N; i++)
{

serp(0,Ax,Ay,Bx,By);

serp(1,Ax,Ay,Bx,By);
serp(2,Ax,Ay,Bx,By);
serp(3,Ax,Ay,Bx,By);
serp(4,Ax,Ay,Bx,By);
serp(5,Ax,Ay,Bx,By);
serp(6,Ax,Ay,Bx,By);
serp(7,Ax,Ay,Bx,By);

delay(1000);
cleardevice();
}

getch();
closegraph();
return 0;
}``````

what i could like to know is how do i fill each object with different colours?

I don't test it yet :)..Try it..

``````setfillstyle(SOLID_FILL,level);
// or
fillpoly(level,poly);``````