Simple Snake game

#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);
   }

Leave a Reply