1. Welcome to PHCorner Forums. Take a moment to Sign up and gain unlimited access and extra privileges that guests are not entitled to, such as:

    All that and more! Registration is quick, simple and absolutely free. Join our community today!

Snake Game in C

Discussion in 'Coding, Programming' started by Jeanh, Nov 20, 2015.

  1. Snake Game in C

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

    check();
    end();
    win();
    int m[500],n[500],con=20;
    clock_t start,stop;
    void main(void)
    {

    int gd=DETECT,gm,ch,maxx,maxy,x=13,y=14,p,q,spd=100;

    initgraph(&gd,&gm,"..\bgi");

    setcolor(WHITE);
    settextstyle(3,0,6);
    outtextxy(200,2," SNAKE 2 ");
    settextstyle(6,0,2);
    outtextxy(20,80," Use Arrow Keys To Direct The Snake ");
    outtextxy(20,140," Avoid The Head Of Snake Not To Hit Any Part Of Snake
    ");
    outtextxy(20,160," Pick The Beats Untill You Win The Game ");
    outtextxy(20,200," Press 'Esc' Anytime To Exit ");
    outtextxy(20,220," Press Any Key To Continue ");
    ch=getch();
    if(ch==27) exit(0);
    cleardevice();
    maxx=getmaxx();
    maxy=getmaxy();

    randomize();

    p=random(maxx);
    int temp=p%13;
    p=p-temp;
    q=random(maxy);
    temp=q%14;
    q=q-temp;



    start=clock();
    int a=0,i=0,j,t;
    while(1)
    {

    setcolor(WHITE);
    setfillstyle(SOLID_FILL,con+5);
    circle(p,q,5);
    floodfill(p,q,WHITE);

    if( kbhit() )
    {
    ch=getch(); if(ch==0) ch=getch();
    if(ch==72&& a!=2) a=1;
    if(ch==80&& a!=1) a=2;
    if(ch==75&& a!=4) a=3;
    if(ch==77&& a!=3) a=4;
    }
    else
    {
    if(ch==27
    ) break;
    }

    if(i<20){
    m=x;
    n=y;
    i++;
    }

    if(i>=20)

    {
    for(j=con;j>=0;j--){
    m[1+j]=m[j];
    n[1+j]=n[j];
    }
    m[0]=x;
    n[0]=y;

    setcolor(WHITE);
    setfillstyle(SOLID_FILL,con);
    circle(m[0],n[0],8);
    floodfill(m[0],n[0],WHITE);

    setcolor(WHITE);
    for(j=1;j<con;j++){
    setfillstyle(SOLID_FILL,con+j%3);
    circle(m[j],n[j],5);
    floodfill(m[j],n[j],WHITE);
    }
    delay(spd);

    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    circle(m[0],n[0],8);
    floodfill(m[0],n[0],BLACK);

    setcolor(BLACK);
    setfillstyle(SOLID_FILL,BLACK);
    circle(m[j],n[j],5);
    floodfill(m[j],n[j],BLACK);

    }
    stop=clock();
    t=(stop-start)/CLK_TCK;
    printf(" TIME %d sec ",t);
    printf("SCORE %d
    ",con-5);
    check();

    if(x==p&&y==q) { con=con+5; if(spd>=5) spd=spd-5; else spd=5;
    if(con>490) win();
    p=random(maxx); temp=p%13; p=p-temp;
    q=random(maxy); temp=q%14; q=q-temp;
    }
    if(a==1) y = y-14; if(y<0) { temp=maxy%14;y=maxy-temp;}
    if(a==2) y = y+14; if(y>maxy) y=0;
    if(a==3) x = x-13; if(x<0) { temp=maxx%13;x=maxx-temp;}
    if(a==4) x = x+13; if(x>maxx) x=0;
    if(a==0){ y = y+14 ; x=x+13; }
    }

    }


    check(){
    int a;
    for(a=1;a<con;a++)

    if(m[0]==m[a] && n[0]==n[a]) end();
    else continue;

    }
    end()

    {

    int j,i;
    setcolor(WHITE);
    for(i=0;i<5;i++){
    delay(500);
    cleardevice();
    delay(500);
    for(j=0;j<=con;j++){
    setfillstyle(SOLID_FILL,RED);
    circle(m[j],n[j],5);
    floodfill(m[j],n[j],WHITE);
    }

    }

    settextstyle(3,0,4);
    outtextxy(150,150," GAME OVER ");
    getch();
    getch();
    exit(0);
    }

    win()
    {
    int j,i;
    setcolor(WHITE);
    for(i=0;i<5;i++){
    for(j=0;j<=con;j++){
    setfillstyle(SOLID_FILL,con);
    circle(m[j],n[j],5);
    floodfill(m[j],n[j],WHITE);
    }
    delay(500);
    cleardevice();
    delay(500);
    }
    settextstyle(3,0,4);
    outtextxy(210,320," YOU WIN ");
    getch();
    exit(0);
    }
     
  2. hahaha thanks. ang hirap
     
  3. hahaha..kaya mo yan
     
  4. queencee

    queencee Forum Expert Established

    Thanks for sharing this:)
     
  5. Thanks for sharing
     
Tags / Keywords: