Sign up for FREE daily Updates.

Play Snake Game in C

Leave a Comment Follow me on twitter

Hello Friends..!!
I have just Found a C Program to Play All Time Favorite
Game "THE SNAKE GAME"..

This is a game where The player controls a long, thin creature, resembling a snake, which roams around on a bordered plane, picking up food (Or some other item), trying to avoid hitting its own tail and wall.

Description: Use Arrow keys to move snake faster. you have to eat food and your tail becomes longer and point count, avoid hitting its own tail and wall.

Just follow the simple steps and start Playing:-

Step 1.
First Copy the Below Code :


#include<stdlib.h>
#include<ctype.h>
#include<conio.h>
#include<stdio.h>
#include<time.h>
#include<dos.h>

#define ESC 27
#define UPARR 72
#define LEFTARR 75
#define DOWNARR 80
#define RIGHTARR 77
#define SAVE 60
#define LOAD 61

main()
{
void starting(void);
void make_xy(char **,char **);
void getrand(char *,char *,char *,char *,char *,int,char);
char getkey(char,char);
void savegame(char *,char *,int,char);
int loadgame(char *,char *,char *);
void win_message(void);

char *x,*y,pos_x,pos_y,num,out=0,old_ch=0,ch=0,new_ch,new_x,new_y,old_num=0;
int i,length=6;

starting();
make_xy(&x,&y);
getrand(&pos_x,&pos_y,&num,x,y,length,ch);

while(!out){
if((new_ch=getkey(old_ch,ch))==ESC)
out=2;
if(out)
break;
if(new_ch==SAVE)
savegame(x,y,length,old_ch);
else if(new_ch==LOAD){
length=loadgame(x,y,&ch);
getrand(&pos_x,&pos_y,&num,x,y,length,ch);
}
else
ch=new_ch;
new_x=x[0];
new_y=y[0];
if(ch==UPARR)
new_y=y[0]-1;
else if(ch==LEFTARR)
new_x=x[0]-1;
else if(ch==DOWNARR)
new_y=y[0]+1;
else if(ch==RIGHTARR)
new_x=x[0]+1;
old_ch=ch;
if((new_x<2)|(new_y<2)|(new_x>79)|(new_y>22))
out=1; /* HIGHEST POSSIBLE SCORE ÷ (78*21-6)*5 = 8160 ÷ 10,000 */
for(i=1;i<length-!old_num;i++) /* NOT "length": TAIL-END MAY MOVE AWAY! */
if((new_x==x[i])&(new_y==y[i])){
out=1;
break;
}
if((pos_x==new_x)&(pos_y==new_y)){
old_num+=num;
/* x=(char *)realloc(x,(score+6)*sizeof(char));
y=(char *)realloc(y,(score+6)*sizeof(char)); */
/* if((x==0)|(y==0)) */ /* PROBLEM IS NOT HERE */
/* x=x;*//* SOMEHOW realloc ISN'T COPYING PROPERLY */
getrand(&pos_x,&pos_y,&num,x,y,length,ch);
}
if(!old_num){
gotoxy(x[length-1],y[length-1]);
putchar(' ');
}
else{
length++;
if(length==1638){
win_message();
return 0;
}
gotoxy(67,25);
printf("Score = %5d",length-6);
old_num--;
x[i+1]=x[i];
y[i+1]=y[i];
}
for(i=length-1;i>0;i--){
x[i]=x[i-1];
y[i]=y[i-1];
if(i==1){
gotoxy(x[i],y[i]);
putchar('Û');
}
}
x[0]=new_x;
y[0]=new_y;
gotoxy(x[0],y[0]);
printf(" \b"); /* USE THE FUNCTION _setcursortype() */
if(out)
break;
delay(99);
}
if(out==1){
gotoxy(1,24);
printf("The snake collided with the wall or with itself!\n"
"GAME OVER!!\t\t(Press 'q' to terminate...)");
gotoxy(x[0],y[0]);
while(toupper(getch())!='Q');
}
clrscr();
printf("Hope you enjoyed the game\n\n\t\tBye!\n");
return 0;
}

/*-------------------------------------------------------------------------*/

void starting()
{
char i;

clrscr(); /* FIRST TO DRAW A BOUNDARY for THE GAME */
putchar('É');
for(i=0;i<78;i++)
putchar('Í');
putchar('»');
gotoxy(1,23);
putchar('È');
for(i=0;i<78;i++)
putchar('Í');
putchar('¼');
window(1,2,1,23);
for(i=0;i<21;i++)
cprintf("º");
window(80,2,80,23);
for(i=0;i<21;i++)
cprintf("º"); /* THE BOUNDARY IS DRAWN */
window(1,1,80,25);
gotoxy(38,12);
printf("ÛÛÛÛÛ "); /* THE "SNAKE" IS PUT for THE FIRST TIME */
gotoxy(1,24);
printf("Welcome to the game of SNAKE!\n(Press any arrow key to start now,"
" Escape to leave at any time...)"); /* WELCOME MESSAGE */
gotoxy(43,12);
while(!kbhit());
gotoxy(30,24);
delline();delline(); /* REMOVING MESSAGE */
cprintf("\n( EAT THE NUMBER !! ) Score = 0");
gotoxy(43,12); /* GO TO THE HEAD OF THE SNAKE */
}

void make_xy(char **px,char **py)
{
char i;

*px=(char *)malloc(1638*sizeof(char)); /*EARLIER IT WAS 6, NOT 1638; BUT*/
*py=(char *)malloc(1638*sizeof(char)); /*realloc IS NOT COPYING PROPERLY*/
for(i=0;i<6;i++){
(*px)[i]=43-i;
(*py)[i]=12;
} /* THE TWO ARRAYS for COORDINATES OF THE SNAKE ARE SIMULATED */
}

void getrand(char *px,char *py,char *pn,char *x,char *y,int length,char ch)
{
int allowed=0,i; /* i AND length MUST BE int */

while(!allowed){
allowed=1;
srand((unsigned)time(0));
*px=rand()%78+2; /* GENERATING RANDOM POSITIONAL COORDINATES for */
srand((unsigned)time(0));
*py=rand()%21+2; /* PUTTING A RANDOM NUMBER */
if(ch==UPARR){
if((*px==x[0])&(*py==y[0]-1))
allowed=0;
}
else if(ch==DOWNARR){
if((*px==x[0])&(*py==y[0]+1))
allowed=0;
}
else if(ch==LEFTARR){
if((*px==x[0]-1)&(*py==y[0]))
allowed=0;
}
else if((ch==RIGHTARR)&(*px==x[0]+1)&(*py==y[0]))
allowed=0;
for(i=0;(i<length)&&allowed;i++)
if((*px==x[i])&(*py==y[i]))
allowed=0;
} /* THE RANDOM NUMBER GENERATED SHOULD NOT BE PUT ON SNAKE'S BODY */
srand((unsigned)time(0));
*pn=rand()%9+1; /* THE NUMBER */
gotoxy(*px,*py);
putchar(*pn+48);
gotoxy(x[0],y[0]);
}

char getkey(char old_ch,char ch)
{
char i;

if(kbhit())
for(i=0;i<5;i++){ /* if i too low, takes too many keystrokes */
while((ch=getch())==0);
if(ch==27){
/* out=2;
i=5;
break;*/return ch;
}
if((ch!=LOAD)&(ch!=SAVE)&(ch!=UPARR)&(ch!=DOWNARR)&
(ch!=LEFTARR)&(ch!=RIGHTARR))
continue;
if((ch!=old_ch)|(!kbhit()))
break;
}
else
for(i=0;(i<12)&(!kbhit());i++)
delay(100);
return ch;
}

void savegame(char *px,char *py,int length,char ch)
{
FILE *fp;
int i;

rename("snake.sav","snake.bak");
fp=fopen("snake.sav","wb");
fprintf(fp,"%d %c",length,ch);
for(i=0;i<length;i++)
fprintf(fp,"%c%c",px[i],py[i]);
fclose(fp);
}

int loadgame(char *px,char *py,char *pch)
{
FILE *fp;
int length,i;

fp=fopen("snake.sav","rb");
if(!fp){
clrscr();
puts("ERROR: no saved game found in current directory!!!\n\n\t\t"
"Exiting...\n");
sleep(3);
exit(1);
}
window(2,2,79,22);
clrscr();
/* fscanf(fp,"%d %c ",&length,pch);*/
fscanf(fp,"%d %c",&length,pch);
for(i=0;i<length;i++){
/* fscanf(fp,"%d %d ",&px[length],&py[length]);*/
fscanf(fp,"%c%c",&px[i],&py[i]);
gotoxy(px[i]-1,py[i]-1);
putchar('Û');
}
window(1,1,80,25);
gotoxy(30,24);
delline();delline(); /* REMOVING MESSAGE */
cprintf("\n( EAT THE NUMBER !! ) Score = %5d",length-6);
gotoxy(px[0],py[0]);
printf(" \b");
fclose(fp);
return length;
}

void win_message()
{
window(1,1,80,25);
gotoxy(1,24);
delline();delline();
textcolor(14);
cprintf("CONGRATULATION!! YOU HAVE COMPLETED THE GAME!!\r\n"
"(Press any key to terminate...)");
clrscr();
textcolor(7);
}



Step 2.
Now Open Notepad..and Paste the Above Code in Notepad..

Step 3.
Now save the file as anyname.c as Save Type : All Type..
Now Paste the anyname.c file in BIN folder (Present in TC folder. )..

          • You Must have Turbo C/C++ to have TC folder


Step 4.
Now Open the anyname.c file using Turbo C/C++...At lastCompile It (Alt+f9) and just Run(Ctrl+f9).!!

That's all..Now you are ready to play all time favorite game "THE SNAKE GAME"..!!

Here is Some Screen Shots of Game:








You may also Like My previous Article which teach you

HOW TO PLAY MUSIC USING C PROGRAM..!!


Thanks.. :)
Hope you Like This..!!

Please give your precious Time to Share Knowledge.. :)


◄◄READ MORE►►

Microsoft Unveils a New Look

Leave a Comment Follow me on twitter
In advance of one of the most significant waves of product launches in Microsoft’s history, today we are unveiling a new logo for the company.

It’s been 25 years since Microsoft updated the Microsoft logo and now is the perfect time for a change.

This is an incredibly exciting year for Microsoft as they prepare to release new versions of nearly all of our products.
From Windows 8 to Windows Phone 8 to Xbox services to the next version of Office...

You will see a common look and feel across these products providing a familiar and seamless experience on PCs, phones, tablets and TVs.

This wave of new releases is not only a reimagining of our most popular products, but also represents a new era for Microsoft..
so their's logo should evolve to visually accentuate this new beginning..!

The Microsoft brand is about much more than logos or product names..
Microsoft are lucky to play a role in the lives of more than a billion people every day..
The ways people experience their products are their most important “brand impressions”.

That’s why the new Microsoft logo takes its inspiration from their product design principles while drawing upon the heritage of our brand values, fonts and colors.




The logo has two components:
the logotype and the symbol. For the logotype..

Microsoft are using the Segoe font which is the same font Microsoft use in thier products as well as their marketing communications..

The symbol is important in a world of digital motion (as demonstrated in the video above.) 
The symbol’s squares of color are intended to express the company’s diverse portfolio of products.

                    

Starting today, you’ll see the new Microsoft logo being used prominently..
It will be used on Microsoft.com – the 10th most visited website in the world..

It is in three of Microsoft retail stores today (Boston, Seattle’s University Village and Bellevue, Wash.) and will shine brightly in all stores over the next few months.

It will sign off all of television ads globally..

And it will support products across various forms of marketing..

Fully implementing a change like this takes time, so there may be other instances where you will see the old logo being used for some time.

We’re excited about the new logo, but more importantly about this new era in which Microsoft are reimagining how their products can help people and businesses throughout the world realize their full potential.!

[via MICROSOFT]
◄◄READ MORE►►

How To Take Screenshot On Android Phone Without App

2 comments Follow me on twitter

Android Is A Operating System For Mobile Devices Such As Smart Phones..Which is currenlty Hits the Mobile Market and may be it is going far away in Mobiles..!!
So lets see the feature of this Android OS which Helps you to take Screen Shots on your Phone..!!


In This Tutorial we Will Learn How To Take Screen Shot On SAMSUNG & HTC Phones With Android(OS).
No Need To Install Any Application To Take Screen Shot.!!


For SAMSUNG Phones :

            • Press And Hold The Back Key On The Phone. 
            • Then Press The Home Key (Middle Key). 
It Is Possible On Almost All Samsung Android Phones. You Can Take Screen Shot While Playing Games On Your Smart Phone And While Watching Videos On Youtube. Screen Capture Will Save In MyFiles > ScreenCapture Folder.


For HTC Phones :

           •  First select a screen which you want to capture, it may be a game or some special chats, or anything! 
            • To take a screenshot just press the Power key+Home button simuntaneously and you will see a flash message as screenshot saved to camera shots on the screen, this verifies that you have successfully captured the screen.
That’s it your screenshot is now saved in camera shots album. 


◄◄READ MORE►►

Google I'm Feeling Lucky Tricks

18 comments Follow me on twitter

Some Google "I'm Feeling Lucky" tricks to Entertain you and your friends..!

Type Google trick code given below and just click on the "I'm Feeling Lucky" button..
If you have Google Instant enabled, it's on the right hand side of the suggested searches.


  • Google Gravity:
Enter ‘Google Gravity’ in the search bar. Hit "I'm feeling lucky".


  • Google Sphere:


Using this trick, all words on the Google page will start flying in the circular motion.

To View Google Sphere: Type in ‘Google Sphere‘ and click “I’m Feeling Lucky”.


  • Askew:
When you type Askew in the search box, the screen gets tilted through a small angle(not much).

To View Askew : Type in ‘Askew‘ and click “I’m Feeling Lucky”.


  • Pacman:

It was originally design as an animation or animated logo for the Pacman game’s 30th anniversary on May 22, 2010 by Google..if you still want play Pacman on Google homepage anytime then you can do that using this trick.

To View\Play Google Pacman: Type in ‘Google Pacman‘ and click “I’m Feeling Lucky”.


  • Epic Google :
This one gives a wider and bigger look of Google, but it doesn’t look exactly like how the real Google looks.

To View Google Epic: Type in ‘Epic Google‘ and click “I’m Feeling Lucky”.


  • Google Pirate :
Take a look on the Pirate version of the Google

To View Google Pirate : Type in ‘Google Pirate ‘ and click “I’m Feeling Lucky”.

◄◄READ MORE►►

How To Troll Someone’s Computer

2 comments Follow me on twitter
Troll your Friends Computer..
Just Follow the Simple Steps Below:

Step 1:
Print Screen of His Desktop

Step 2:
Rotate it 180 Degrees

Step 3:
Set it as Wallpaper

Step 4:
Right click on Desktop->view->unclick show desktop icons

Step 5:
Auto-hide Taskbar


Final Step:
Right Click on Desktop-> Screen Resolution-> then change Orientation to Landscape(Flipped)


So Now, His Mouse Pointer is Inverted.. So When He Moves his Mouse up,The Pointer Goes Down..!!       

◄◄READ MORE►►
Premium WordPress Themes