snakeexp source code
DESCRIPTION
It is an game made is cpp for turbo c compiler. Contains source code and includes details about developer for further questionsTRANSCRIPT
#includex=head->x+5;
Update();
setcolor(sclr);
outtextxy(head->x,head->y,sbody);
delay(dvar);
setcolor(0);
outtextxy(tail->x,tail->y,sbody);
if(CollideS()=='y'|| Collide()=='y'){GameOver();}
if (Eat()=='y'){Score();CleanFood();MakeFood();}
while (kbhit())
{
char ch=getch();
if(ch=='q') {SaveGame();Draw();}
if(ch==0) ch=getch();
if(ch==72) MoveUp();
if(ch==80) MoveDown();
}
}
}
/************************************************************************/FOR MOVING SNAKE UPWARDS*************************************************************************/
void MoveUp(void)
{
for(;;)
{
setcolor(2);
outtextxy(360,22,ScoreVar);
if(head->yy = head->y -5;
Update();
setcolor(sclr);
outtextxy(head->x,head->y,sbody);
delay(dvar);
setcolor(0);
outtextxy(tail->x,tail->y,sbody);
if (Eat()=='y') {Score();CleanFood();MakeFood(); }
if(CollideS()=='y'|| Collide()=='y'){GameOver();}
if (kbhit())
{
char ch=getch();
if(ch=='q') {SaveGame();Draw();}
if(ch==0) ch=getch();
if(ch==75) MoveLeft();
if(ch==77) MoveRight();
}
}
}
/************************************************************************/FOR MOVING SNAKE DOWNWARDS.*************************************************************************/
void MoveDown(void)
{
for(;;)
{
setcolor(2);
outtextxy(360,22,ScoreVar);
if(head->y>=452){GameOver();}
head->y = head->y +5;
Update();
setcolor(sclr);
outtextxy(head->x,head->y,sbody);
delay(dvar);
setcolor(0);
outtextxy(tail->x,tail->y,sbody);
if (Eat()=='y') {Score();CleanFood();MakeFood();}
if(CollideS()=='y'|| Collide()=='y'){GameOver();}
if (kbhit())
{
char ch=getch();
if(ch=='q') {SaveGame();Draw();}
if(ch==0) ch=getch();
if(ch==75) MoveLeft();
if(ch==77) MoveRight();
}
}
}
/************************************************************************/FOR MOVING SNAKE LEFTWARDS.*************************************************************************/
void MoveLeft(void)
{
for(;;)
{
setcolor(2);
outtextxy(360,22,ScoreVar);
if(head->xx = head->x -5;
Update();
setcolor(sclr);
outtextxy(head->x,head->y,sbody);
setcolor(0);
outtextxy(tail->x,tail->y,sbody);
if(CollideS()=='y'|| Collide()=='y'){GameOver();}
if (Eat()=='y') {Score();CleanFood();MakeFood();}
delay(dvar);
if (kbhit())
{
char ch=getch();
if(ch=='q') {SaveGame();Draw();}
if(ch==0) ch=getch();
if(ch==72) MoveUp();
if(ch==80) MoveDown();
}
}
}
/************************************************************************/ FOR MAKING FOOD FOR SNAKE.*************************************************************************/
void MakeFood(void)
{
randomize();
fclr=rand()%15;
while(fclr==0)
{
randomize();
fclr=rand()%15;
}
foodx=rand()%500,foody=rand()%400;
if(foodx=615) foodx=150;
if(foodx=308) foodx=150;
if(foody=455) foody=200;
setcolor(fclr);
circle(foodx,foody,2);
setfillstyle(SOLID_FILL,fclr);
floodfill(foodx,foody,fclr);
}/************************************************************************/FOR PROGRAMMING NEW LOCATIONS TO SNAKE BODY.*************************************************************************/
void Update(void)
{
Snake *sort=tail;
for(;;)
{
sort->x=sort->prv->x;
sort->y=sort->prv->y;
sort=sort->prv;
if(sort==head) break;
}
setcolor(0);
outtextxy(tail->x,tail->y,sbody);
}
/************************************************************************/FOR ADDING A NODE TO THE SNAKEBODY.*************************************************************************/
void AddNode(int a,int b)
{
temp=new Snake;
temp->x=a;
temp->y=b;
temp->prv=tail;
tail->nxt=temp;
tail=temp;
tail->nxt=NULL;
}
/************************************************************************/TO REMOVE THE FOOD OF THE SNAKE FROM THE SCREEN.*************************************************************************/
void CleanFood(void)
{
setcolor(0);
circle(foodx,foody,2);
setfillstyle(SOLID_FILL,0);
floodfill(foodx,foody,0);
setcolor(2);
}
/************************************************************************/FOR CHECKING IF SNAKE COLLIDES WITH ITSELF.*************************************************************************/
char CollideS(void)
{
Snake *temp=head->nxt->nxt;
while(temp->nxt!=NULL)
{
if (temp->y==head->y)
{
if (temp->x==head->x)
return 'y';
}
temp=temp->nxt;
}
return 'n';
}
/************************************************************************/FOR PLAYING A SOUND WHEN SNAKE EATS FOOD.*************************************************************************/
void EatSound(void)
{
for (int i=0;ix>=foodx-6 && head->xy>=foody-6 && head->yx,tail->y);
AddNode(tail->x,tail->y);
AddNode(tail->x,tail->y);
AddNode(tail->x,tail->y);
AddNode(tail->x,tail->y);
return 'y';
}
else
return 'n';
}
/************************************************************************/FOR MAKING THE INTRO SCREEN.*************************************************************************/
void IntroScr(void)
{
cleardevice();
int b,i,j;
setbkcolor(0);
randomize();
setfillstyle(11,1);
for( i = 0 ; i=310 && head->xy