need of code of game snak

talk2mohdsaif's Avatar, Join Date: Mar 2009
Go4Expert Member
i have need of code of a such game snak in c/c++.
every time it allocate a block of memory and it will go on increasing after eating a point...
can anyone give me sutch code....
0
sizlinggaurav's Avatar, Join Date: Aug 2010
Newbie Member
Code:
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#define  T 2000
int n=0,px,py;
main()
{
    int gd=DETECT,gm,i,j;
    clrscr();
    gotoxy(25,4);
    printf("DON'T TUCH THE BORDER");
    gotoxy(25,6);
    printf("Press < p > for pause");
    gotoxy(17,8);
    printf("IN MIDDLE OF GAME, PRESS < Esc > TO EXIT");
    x:
    gotoxy(26,10);
    printf("press < s > to start ");
    gotoxy(26,12);
    printf(" Use SMALL case only");
    gotoxy(34,10);
    if(getch()=='s')
      initgraph(&gd,&gm,"c:\tc\bgi");
    else {
	  clrscr();
	  goto x;
	 }
    line(0,0,0,479);
    line(0,0,639,0);
    line(639,0,639,479);
    line(0,479,639,479);
    pause();
    print();
    right(100,100);
}
 right(int x,int y)
  {
     char ch,fu='r';
     int i,j;
     for(i=x;i<=652;i++){
	for(j=y;j<=y+10;j++){
	   putpixel(i,j,4);
	   putpixel(i-10,j,16);
	   }
	delay(T-n);
	check(i,j-1);
	if(kbhit()){
	   ch=getch();
	if(ch=='p')
	   pause();
	else
	   choice(i,j-1,ch,fu);
	}
     }
  }
   left(int x,int y)
  {
     char ch,fu='l';
     int i,j;
     for(i=x;i>-12;i--){
	for(j=y;j<=y+10;j++){
	   putpixel(i,j,4);
	   putpixel(i+10,j,16);
	   }
	delay(T-n);
	check(i,j-1);
	if(kbhit()){
	   ch=getch();
        if(ch=='p')
	   pause();
	else
	   choice(i,j-1,ch,fu);
	}
     }
  }
   down(int x,int y)
  {
     char ch,fu='d';
     int i,j;
     for(j=y;j<=492;j++){
	for(i=x;i<=x+10;i++){
	   putpixel(i,j,4);
	   putpixel(i,j-10,16);
	}
	delay(T-n);
	check(i-1,j);
	if(kbhit()){
	   ch=getch();
        if(ch=='p')
	   pause();
	else
	   choice(i-1,j,ch,fu);
	}
     }
  }
   up(int x,int y)
  {
     char ch,fu='u';
     int i,j;
     for(j=y;j>=-12;j--){
	for(i=x;i<=x+10;i++){
	   putpixel(i,j,4);
	   putpixel(i,j+10,16);
	}
	delay(T-n);
	check(i-1,j);
	if(kbhit()){
	   ch=getch();
        if(ch=='p')
	   pause();
	else
	   choice(i-1,j,ch,fu);
	}
     }
  }
  choice(int i,int j,char ch,char fu)
   {
	if(fu=='r'){
	  if(ch=='K'){
	     j-=10;
	     i-=10;
	     left(i,j);
	  }
	else if(ch=='P'){
	     i-=10;
	     down(i,j);
	}
	else if(ch=='H'){
	      j-=10;
	      i-=10;
	      up(i,j);
	}
	else if(ch==27)
		esc();
	else {
	      j-=10;
	      right(i,j);
	     }
   }
 else if(fu=='l'){
	  if(ch=='M'){
	     j-=10;
	     /*i+=-10;   no comments here free me*/
	     right(i,j);
	  }
	else if(ch=='P')
	     down(i,j);
	else if(ch=='H'){
	      j-=10;
	      up(i,j);
	}
	else if(ch==27)
		esc();
	else {
	      j-=10;
	      left(i,j);
	     }
   }
  else if(fu=='d'){
	  if(ch=='H'){
	     j-=10;
	     i-=10;
	     up(i,j);
	  }
	else if(ch=='K'){
	     i-=10;
	     j-=10;
	     left(i,j);
	}
	else if(ch=='M'){
	      j-=10;
	      right(i,j);
	}
	else if(ch==27)
		esc();
	else {
	      i-=10;
	      down(i,j);
	     }
   }
  else if(fu=='u'){
	  if(ch=='P'){
	     j+=10;
	     i-=10;
	     down(i,j);
	  }
	else if(ch=='M')
	     right(i,j);
	else if(ch=='K'){
	      i-=10;
	      left(i,j);
	}
	else if(ch==27)
	       esc();
	else {
	      i-=10;
	      up(i,j);
	     }
   }
  }

check(int i,int j)
{
if (n>T-1750) {
gotoxy(7,5);
printf("U r Great U got Good Score, If possible Please Develop this game");
	gotoxy(24,7);
	printf("Press ENTER Key To Continue");
	getchar();
	esc();
	}
     if(i<3 || i>637 || j<3 || j>477){
       outtextxy(240,240,"YOU HAVE TOUUCHED THE BORDER");
       outtextxy(280,280,"GAME OVER");
       outtextxy(240,370,"Better Luck Next Time");
       outtextxy(200,310,"<press ENTER Key to continue>");
       getchar();
       esc();
     }
     else if(tuch(i,j)){
	    rub();
	    bell();
	    n+=10;
	    stage();
	    print();
     }
   }
 int  tuch(int i,int j)
    {
	 int x=px,y=py,t,s,flag=0;
	 for(t=x;t<=x+15;t++){
		for(s=y;s<=y+15;s++)
		   if(j==s && i==t)
		     flag=1;
	 }
	 return(flag);
    }
    rub()
     {
	 setcolor(16);
	 outtextxy(px,py,"±");
	 setcolor(15);
     }
    bell()
     {
	int i;
	for(i=1;i<=5;i++){
	    sound(200*i);
	    delay(10000);
	    nosound();
	}
     }
     stage()
      {
	 gotoxy(60,5);
	 printf("U got %d points",n);
	 sleep(1);
	 gotoxy(60,5);
	 printf("                  ");
      }
      print()
       {
	px=random(636);
	py=random(460);
	if(px<10)
	px+=10;
	if(py<10)
	py+=10;
	outtextxy(px,py,"±");
       }
  pause()
   {
      outtextxy(200,470,"< Press Any Key To Continue >");
      getch();
      setcolor(16);
      outtextxy(200,470,"< Press Any Key To Continue >");
      setcolor(15);
   }
  esc()
   {
       gotoxy(20,18);
       printf("           THANK YOU               ");
       gotoxy(20,20);
       printf("  < Press any key to continue >      ");
       getch();
       closegraph();
       exit(0);
   }

Last edited by shabbir; 16Aug2010 at 10:52.. Reason: Code blocks