0% found this document useful (0 votes)
45 views9 pages

Snake Game Inc

This document contains code for a snake game written in C. It initializes graphics mode and variables like the screen dimensions. It loads images for the snake body and head in different directions. The main game loop handles movement based on key presses, displays the snake by putting images on the screen, and checks for eating food or collisions with the body to update the score. It displays instructions, score, and level on the screen as well.

Uploaded by

Ketan Pandey
Copyright
© Attribution Non-Commercial (BY-NC)
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)
45 views9 pages

Snake Game Inc

This document contains code for a snake game written in C. It initializes graphics mode and variables like the screen dimensions. It loads images for the snake body and head in different directions. The main game loop handles movement based on key presses, displays the snake by putting images on the screen, and checks for eating food or collisions with the body to update the score. It displays instructions, score, and level on the screen as well.

Uploaded by

Ketan Pandey
Copyright
© Attribution Non-Commercial (BY-NC)
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/ 9

c

c
c
c
c
c
c
c


 
  
  
  
 
 
  

  

  

  main( )
{
 gdriver = DETECT, gmode, errorcode;
 
*body,*food,*tail1,*tail2,*tail3,*tail4,*head1,*head2,*head3,*head4;
 x, y,X[5000],Y[5000],i=3,
maxx,maxy,speed=100,bo=10,t[10],score=0,hscore=20;
   size;

a='6',b,scor[4],hs[4];
 k=2,l,r1,r2,f=0,z=100,first=0,second=1;;
r1=300;
r2=350;
ifstream infile("c:\tc\bin\rattle.txt");
infile.getline(hs,4);
infile.close();
hscore = atoi(hs);

    
  

initgraph(&gdriver, &gmode, "C:\\TURBOC3\\BGI");

 
      
errorcode = graphresult();
 (errorcode != grOk)  





{
printf("Graphics error: %s", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); 
     



}
maxx = getmaxx();
maxy = getmaxy();
y = 160;
x = 80;

(  j=0; j<=3; j++)
{
X[i-j]=x-bo*(j+1);
Y[i-j]=y;
}

setfillstyle(1,2);
bar(10,10,20,20);

setcolor(0);
setlinestyle(0,1,3);
line(9,9,21,21);
line(9,21,21,9);
size = imagesize(10,10,20,20);
body = malloc(size);
getimage(10,10,20,20,body);
cleardevice();
setcolor(0);
 

t[0]=20; t[1]=10;
t[2]=10; t[3]=10;
t[4]=20; t[5]=15;
t[6]=10; t[7]=20;
t[8]=20; t[9]=21;
fillpoly(5, t);
size = imagesize(10,10,20,21);
tail1 = malloc(size);
getimage(10,10,20,21,tail1);
cleardevice();
 
t[0]=10; t[1]=10;
t[2]=20; t[3]=10;
t[4]=10; t[5]=15;
t[6]=20; t[7]=20;
t[8]=10; t[9]=21;
fillpoly(5, t);
size = imagesize(10,10,20,21);
tail2 = malloc(size);
getimage(10,10,20,21,tail2);
cleardevice();
 
t[0]=10; t[1]=20;
t[2]=10; t[3]=10;
t[4]=15; t[5]=20;
t[6]=20; t[7]=10;
t[8]=20; t[9]=21;
fillpoly(5, t);
size = imagesize(10,10,20,21);
tail3 = malloc(size);
getimage(10,10,20,21,tail3);
cleardevice();
  
t[0]=10; t[1]=10;
t[2]=10; t[3]=21;
t[4]=15; t[5]=10;
t[6]=20; t[7]=21;
t[8]=20; t[9]=10;
fillpoly(5, t);
size = imagesize(10,10,20,21);
tail4 = malloc(size);
getimage(10,10,20,21,tail4);
cleardevice();

  

setlinestyle(1,1,1);
setcolor(2);
fillellipse(10,10,10,5);
setcolor(4);

fillellipse(15,7,1,1);
fillellipse(15,13,1,1);
size = imagesize(10,5,20,15);
head1 = malloc(size);
getimage(10,5,20,15,head1);
  

fillellipse(5,7,1,1);
fillellipse(5,13,1,1);
size = imagesize(0,5,10,15);
head2 = malloc(size);
getimage(0,5,10,15,head2);
cleardevice();
  

setcolor(2);
fillellipse(12,12,5,10);
setcolor(4);
fillellipse(9,6,1,1);
fillellipse(15,6,1,1);
size = imagesize(7,2,18,12);
head3 = malloc(size);
getimage(7,2,18,12,head3);
   

fillellipse(9,17,1,1);
fillellipse(15,17,1,1);
size = imagesize(7,12,18,22);
head4 = malloc(size);
getimage(7,12,18,22,head4);
cleardevice();

setcolor(15);
setfillstyle(1,15);
fillellipse(10,10,3,5);
size = imagesize(5,3,15,17);
food = malloc(size);
getimage(5,3,15,17,food);
cleardevice();

    ! 

maxx=getmaxx();
maxy=getmaxy();

setlinestyle(0,1,3);
setcolor(9);
rectangle(0,0,maxx,maxy);
setlinestyle(0,1,2);
line(maxx-150,0,maxx-150,maxy);
setcolor(8);
setfillstyle(1,8);
bar(maxx-147,3,maxx-3,63);
setcolor(12);
 maze=1;
(maze==1)
{
setfillstyle(1,6);
bar(4,4,maxx-154,14);
bar(4,4,14,maxy-4);
bar(4,maxy-4,maxx-154,maxy-14);
bar(maxx-154-10,4,maxx-154,maxy-4);
}
settextstyle(0,0,1);
delay(300);
outtextxy(maxx-125,30,"RATTLE SNAKE");
delay(300);
setcolor(11);
setlinestyle(0,1,2);
rectangle(maxx-145,65,maxx-5,205);
outtextxy(maxx-128,70,"INSTRUCTIONS");
delay(200);
setcolor(6);
outtextxy(maxx-140,90,"Commands
Key");
delay(300);
setcolor(8);
outtextxy(maxx-140,110," Move Up
8");
delay(50);
outtextxy(maxx-140,130," Move Down
5");
delay(50);
outtextxy(maxx-140,150," Move Right
6");
delay(50);
outtextxy(maxx-140,170," Move Left
4");
delay(50);
outtextxy(maxx-140,190," Exit
0");
delay(200);
setcolor(12);
setlinestyle(0,1,2);
rectangle(maxx-145,210,maxx-5,350);
setcolor(1);
outtextxy(maxx-130,220,"Player's Name");
setcolor(15);
outtextxy(maxx-100,230,"Yellow");
setcolor(4);
delay(200);
itoa(score,scor,10);
outtextxy(maxx-140,250,"Score");
outtextxy(maxx-50,250,scor);
delay(200);
setcolor(10);

outtextxy(maxx-140,280,"Level");
delay(200);
setcolor(13);
outtextxy(maxx-140,310,"Maze
delay(200);
setcolor(14);
outtextxy(maxx-140,340,"High Score
outtextxy(maxx-50,340,hs);

1");
");


(j=0; j<=1000; j++)
{
putpixel(random(maxx-150),random(maxy),6);
delay(1);
}
  (a!='0')
{
   
(a=='6')
putimage(x, y,
(a=='4')
putimage(x, y,
(a=='8')
putimage(x, y,
(a=='5')
putimage(x, y,

head1, XOR_PUT);
head2, XOR_PUT);
head3, XOR_PUT);
head4, XOR_PUT);


(j=0; j<k; j++)
{
putimage(X[i-j], Y[i-j], body, XOR_PUT);
}
((X[i-j-1]-X[i-j])<0 && (Y[i-j-1]-Y[i-j])==0)
putimage(X[i-j], Y[i-j], tail1, XOR_PUT);
((X[i-j-1]-X[i-j])>0 && (Y[i-j-1]-Y[i-j])==0)
putimage(X[i-j], Y[i-j], tail2, XOR_PUT);
((X[i-j-1]-X[i-j])==0 && (Y[i-j-1]-Y[i-j])<0)
putimage(X[i-j], Y[i-j], tail3, XOR_PUT);
((X[i-j-1]-X[i-j])==0 && (Y[i-j-1]-Y[i-j])>0)
putimage(X[i-j], Y[i-j], tail4, XOR_PUT);
delay(speed);
(second==1)
{
setcolor(15);
outtextxy(maxx-140,360,"Press Any Key...");
getch();
setcolor(0);
outtextxy(maxx-140,360,"Press Any Key...");
a='6';
second=2;

}
(first==1)
{
setcolor(15);
outtextxy(maxx-140,360,"Congratulations
sound(100);
delay(300);
nosound();
getch();
setcolor(0);
outtextxy(maxx-140,360,"Congratulations
second++;
first=2;

");

");

}

  
(a=='6')
putimage(x, y,
(a=='4')
putimage(x, y,
(a=='8')
putimage(x, y,
(a=='5')
putimage(x, y,

head1, XOR_PUT);
head2, XOR_PUT);
head3, XOR_PUT);
head4, XOR_PUT);


(j=0; j<k; j++)
{
putimage(X[i-j], Y[i-j], body, XOR_PUT);
}
((X[i-j-1]-X[i-j])<0 && (Y[i-j-1]-Y[i-j])==0)
putimage(X[i-j], Y[i-j], tail1, XOR_PUT);
((X[i-j-1]-X[i-j])>0 && (Y[i-j-1]-Y[i-j])==0)
putimage(X[i-j], Y[i-j], tail2, XOR_PUT);
((X[i-j-1]-X[i-j])==0 && (Y[i-j-1]-Y[i-j])<0)
putimage(X[i-j], Y[i-j], tail3, XOR_PUT);
((X[i-j-1]-X[i-j])==0 && (Y[i-j-1]-Y[i-j])>0)
putimage(X[i-j], Y[i-j], tail4, XOR_PUT);
(f==0)
{
putimage(r1,r2,food,XOR_PUT);
f=1;
}
z--;
((x>=r1 && y>=r2 && x<=r1+10 && y<=r2+10) || (x<=r1 && y<=r2 &&
x>=r1-10 && y>=r2-10) || z==0)

{
(z!=0)
{
sound(800);
delay(20);
setcolor(0);
score += 10;
outtextxy(maxx-50,250,scor);
itoa(score,scor,10);
(score>hscore)
{
strcpy(hs,scor);
setfillstyle(1,1);
bar(maxx-140,337,maxx-20,348);
setcolor(14);
outtextxy(maxx-50,340,hs);
outtextxy(maxx-140,340,"High Score
(first==0)
{
first=1;
}
}
setcolor(4);
outtextxy(maxx-50,250,scor);
k++;
nosound();
}
z=100;
putimage(r1,r2,food,XOR_PUT);
repr1:
r1=random(450);
(r1<50)
 repr1;
repr2:
r2=random(400);
(r2<50)
 repr2;

");

f=0;
}
i++;
X[i]=x;
Y[i]=y;
b=a;
(kbhit())
{
rep:
a=getche();
((b=='6' && a=='4') || (b=='4' && a=='6'))
a=b;
((b=='8' && a=='5') || (b=='5' && a=='8'))
a=b;

(a!='6' && a!='4' && a!='8' && a!='0' && a!='5')


a=b;
}
 "# ##$%&

#'%(

 " #&

'%(
(a=='8')
y -= bo;
(a=='5')
y += bo;
(a=='4')
x -= bo;
(a=='6')
x += bo;

(j=i+1; j<i-k; j--)
{
((Y[i]>=Y[j] && Y[i]<=Y[j]+10) || (Y[i]<=Y[j] && Y[i]>=X[j]-10))
{
((X[i]>=X[j] && X[i]<=X[j]+10) || (X[i]<=X[j] && X[i]>=X[j]10))
{
a='0';
}
outtextxy(maxx-140,360,"C ");
}
((X[i]>=X[j] && X[i]<=X[j]+10) || (X[i]<=X[j] && X[i]>=X[j]-10))
{
((Y[i]>=Y[j] && Y[i]<=Y[j]+10) || (Y[i]<=Y[j] && Y[i]>=X[j]10))
{
a='0';
}
outtextxy(maxx-140,360,"C

");

}
}

")' () !()&
*

""'+,)-..'+,)-/%&00"'+,)-..'+,)-%&&

*


""#'1,)-..#'1,)-/%&00"#'1,)-..#'1,)-%&&


*




'232(


4

4


""#'1,)-..#'1,)-/%&00"#'1,)-..#'1,)-%&&

*


""'+,)-..'+,)-/%&00"'+,)-..'+,)-%&&


*



'232(


4

4

")''%&



 !(
4






"#'%&
#' ##$%(
"'%&
' #(
(maze==1)
{
(x<=14 || x>=maxx-184 || y<=14 || y>=maxy-14)
{
a='0';
}
}

}
(score>hscore)
{
ofstream onfile("c:\tc\bin\rattle.txt");
onfile<<scor;
onfile.close();
}
setcolor(15);
outtextxy(maxx-140,390,"
sound(100);
delay(400);
nosound();
getch();
  
free(body);
closegraph();
}

Gameover");

You might also like