Created
November 5, 2013 09:55
-
-
Save Codeplaza/7316552 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <graphics.h> | |
| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <conio.h> | |
| #include <dos.h> | |
| #include <iostream.h> | |
| #include <fstream.h> | |
| #include <string.h> | |
| void main(void) | |
| { | |
| int gdriver = DETECT, gmode, errorcode; | |
| void | |
| *body,*food,*tail1,*tail2,*tail3,*tail4,*head1,*head2,*head3,*head4; | |
| int x, y,X[5000],Y[5000],i=3, | |
| maxx,maxy,speed=100,bo=10,t[10],score=0,hscore=20; | |
| unsigned int size; | |
| char a='6',b,scor[4],hs[4]; | |
| int 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); | |
| /* initialize graphics and local variables */ | |
| initgraph(&gdriver, &gmode, "c:\tc\bgi"); | |
| /* read result of initialization */ | |
| errorcode = graphresult(); | |
| if (errorcode != grOk) /* an error occurred */ | |
| { | |
| printf("Graphics error: %s", grapherrormsg(errorcode)); | |
| printf("Press any key to halt:"); | |
| getch(); | |
| exit(1); /* terminate with an error code */ | |
| } | |
| maxx = getmaxx(); | |
| maxy = getmaxy(); | |
| y = 160; | |
| x = 80; | |
| for(int j=0; j<=3; j++) | |
| { | |
| X[i-j]=x-bo*(j+1); | |
| Y[i-j]=y; | |
| } | |
| //body | |
| 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); | |
| //tail1-right | |
| 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(); | |
| //tail2-left | |
| 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(); | |
| //tail3-up | |
| 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(); | |
| //tail4-down | |
| 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(); | |
| //head1-right | |
| setlinestyle(1,1,1); | |
| setcolor(2); | |
| fillellipse(10,10,10,5); | |
| setcolor(4); | |
| //eyes | |
| 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); | |
| //head2-left | |
| //eyes | |
| 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(); | |
| //head3-up | |
| //eyes | |
| 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); | |
| //head4-down | |
| //eyes | |
| 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(); | |
| //food | |
| 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(); | |
| /* repeat until a key is pressed */ | |
| 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); | |
| int maze=1; | |
| if(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,"Apurva"); | |
| 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 1"); | |
| delay(200); | |
| setcolor(14); | |
| outtextxy(maxx-140,340,"High Score "); | |
| outtextxy(maxx-50,340,hs); | |
| for(j=0; j<=1000; j++) | |
| { | |
| putpixel(random(maxx-150),random(maxy),6); | |
| delay(1); | |
| } | |
| while (a!='0') | |
| { | |
| // plot new image | |
| if(a=='6') | |
| putimage(x, y, head1, XOR_PUT); | |
| if(a=='4') | |
| putimage(x, y, head2, XOR_PUT); | |
| if(a=='8') | |
| putimage(x, y, head3, XOR_PUT); | |
| if(a=='5') | |
| putimage(x, y, head4, XOR_PUT); | |
| for(j=0; j<k; j++) | |
| { | |
| putimage(X[i-j], Y[i-j], body, XOR_PUT); | |
| } | |
| if((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); | |
| if((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); | |
| if((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); | |
| if((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); | |
| if(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; | |
| } | |
| if(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; | |
| } | |
| // erase old image | |
| if(a=='6') | |
| putimage(x, y, head1, XOR_PUT); | |
| if(a=='4') | |
| putimage(x, y, head2, XOR_PUT); | |
| if(a=='8') | |
| putimage(x, y, head3, XOR_PUT); | |
| if(a=='5') | |
| putimage(x, y, head4, XOR_PUT); | |
| for(j=0; j<k; j++) | |
| { | |
| putimage(X[i-j], Y[i-j], body, XOR_PUT); | |
| } | |
| if((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); | |
| if((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); | |
| if((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); | |
| if((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); | |
| if(f==0) | |
| { | |
| putimage(r1,r2,food,XOR_PUT); | |
| f=1; | |
| } | |
| z--; | |
| if((x>=r1 && y>=r2 && x<=r1+10 && y<=r2+10) || (x<=r1 && y<=r2 && | |
| x>=r1-10 && y>=r2-10) || z==0) | |
| { | |
| if(z!=0) | |
| { | |
| sound(800); | |
| delay(20); | |
| setcolor(0); | |
| score += 10; | |
| outtextxy(maxx-50,250,scor); | |
| itoa(score,scor,10); | |
| if(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 "); | |
| if(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); | |
| if(r1<50) | |
| goto repr1; | |
| repr2: | |
| r2=random(400); | |
| if(r2<50) | |
| goto repr2; | |
| f=0; | |
| } | |
| i++; | |
| X[i]=x; | |
| Y[i]=y; | |
| b=a; | |
| if(kbhit()) | |
| { | |
| rep: | |
| a=getche(); | |
| if((b=='6' && a=='4') || (b=='4' && a=='6')) | |
| a=b; | |
| if((b=='8' && a=='5') || (b=='5' && a=='8')) | |
| a=b; | |
| if(a!='6' && a!='4' && a!='8' && a!='0' && a!='5') | |
| a=b; | |
| } | |
| /* if(x>maxx-170) | |
| x=0; | |
| if(y>maxy) | |
| y=0;*/ | |
| if(a=='8') | |
| y -= bo; | |
| if(a=='5') | |
| y += bo; | |
| if(a=='4') | |
| x -= bo; | |
| if(a=='6') | |
| x += bo; | |
| for(j=i+1; j<i-k; j--) | |
| { | |
| if((Y[i]>=Y[j] && Y[i]<=Y[j]+10) || (Y[i]<=Y[j] && Y[i]>=X[j]-10)) | |
| { | |
| if((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 "); | |
| } | |
| if((X[i]>=X[j] && X[i]<=X[j]+10) || (X[i]<=X[j] && X[i]>=X[j]-10)) | |
| { | |
| if((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 "); | |
| } | |
| } | |
| /* for(j=i; j<i-k; j--) | |
| { | |
| if((y>=Y[j] && y<=Y[j]+10) || (y<=Y[j] && y>=Y[j]-10)) | |
| { | |
| if((x>=X[j] && x<=X[j]+10) || (x<=X[j] && x>=X[j]-10)) | |
| { | |
| a='5'; | |
| } | |
| } | |
| if((x>=X[j] && x<=X[j]+10) || (x<=X[j] && x>=X[j]-10)) | |
| { | |
| if((y>=Y[j] && y<=Y[j]+10) || (y<=Y[j] && y>=Y[j]-10)) | |
| { | |
| a='5'; | |
| } | |
| } | |
| if(j==0) | |
| break; | |
| } */ | |
| /* if(x<=0) | |
| x=maxx-170; | |
| if(y<=0) | |
| y=maxy;*/ | |
| if(maze==1) | |
| { | |
| if(x<=14 || x>=maxx-184 || y<=14 || y>=maxy-14) | |
| { | |
| a='0'; | |
| } | |
| } | |
| } | |
| if(score>hscore) | |
| { | |
| ofstream onfile("c:\tc\bin\rattle.txt"); | |
| onfile<<scor; | |
| onfile.close(); | |
| } | |
| setcolor(15); | |
| outtextxy(maxx-140,390," Gameover"); | |
| sound(100); | |
| delay(400); | |
| nosound(); | |
| getch(); | |
| /* clean up */ | |
| free(body); | |
| closegraph(); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What is your IDE. I copied and pasted your code in all my IDE which I have (Eclipse Juno, VS 2010, C-Free, Netbean 7.4) but all is error at line 1 library graphic is not found. Can you help me?