📄 snake.txt
字号:
=====game_def.c==========================================
#include "ctype.h" /*包含文件*/
#include "process.h"
#include "stdlib.h"
#include "stdio.h"
#include "dos.h"
#include "conio.h"
#include "graphics.h"
#include "dir.h"
#define DOWN 80 /* 定义常用键 */
#define UP 72
#define LEFT 75
#define RIGHT 77
#define ESC 1
#define ENTER 28
DRAW_3D(int x0,int y0,int x1,int y1,int width)/*画一个三维按扭,经X0,Y0为
按扭左上角坐标,X1,Y1为右下角坐标,WIDTH为按扭边框宽*/
{
setcolor(8);
rectangle(x0,y0,x1,y1);
setfillstyle(SOLID_FILL,8);
floodfill(x1-1,y1-1,8);
setcolor(7);
line(x1,y1,x1-width,y1-width);
line(x1,y0,x1-width,y0+width);
line(x0,y1,x0+width,y1-width);
line(x0,y0,x0+width,y0+width);
setfillstyle(1,3);
bar(x0+width,y0+width,x1-width,y1-width);
}
====================================================================
======================GAME.C===================================
#include "game_def.c"
union REGS regs;
int init();
int read();
int get_key();
void quit_game();
void end_game();
main()
{
int graphdriver=VGA,mode=VGAHI;
int min_x,max_x,min_y,max_y;
int new_minx,new_maxx,new_miny,new_maxy;
int sma_minx,sma_maxx,sma_miny,sma_maxy;
int curr_x=100,curr_y=100;
int font_x,font_y,mid_x,mid_y;
int cir_num_x[3],cir_num_y[3];
int key;
int conec_x,conec_y;
int score=0;
int freq;
randomize();
registerbgidriver(EGAVGA_driver);
registerbgifont(TRIPLEX_FONT);
initgraph(&graphdriver,&mode,"C:\\turboc2");
cleardevice();
min_x=0;
max_x=getmaxx();
min_y=0;
max_y=getmaxy();
system("g_mouse.com");
init(10,670,10,470);
setfillstyle(SOLID_FILL,BLUE);
setcolor(RED);
setbkcolor(CYAN);
cleardevice();
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
settextjustify(LEFT_TEXT,BOTTOM_TEXT);
outtextxy(max_x-200+10,min_y+50,"GAME INFO");
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
outtextxy(max_x-200+2,min_y+80,"key right TURN RIGHT");
outtextxy(max_x-200+2,min_y+100,"key left TURN LEFT");
outtextxy(max_x-200+2,min_y+120,"key up TURN UP");
outtextxy(max_x-200+2,min_y+140,"key down TURN DOWN");
outtextxy(max_x-200+2,min_y+160,"key ESC EXIT");
outtextxy(max_x-200+2,min_y+190,"Your score:");
setcolor(BLUE);
setviewport(max_x-200+100,min_y+170,max_x-200+180,min_y+200,1);
rectangle(0,0,80,30);
gotoxy(69,12);printf("%d",score);
setviewport(min_x,min_y,max_x,max_y,1);
settextstyle(DEFAULT_FONT,HORIZ_DIR,2);
setcolor(RED);
outtextxy(max_x-200+10,min_y+250,"AUTHOR INFO");
settextstyle(DEFAULT_FONT,HORIZ_DIR,1);
outtextxy(max_x-200+2,min_y+280,"Author:Wangkuo");
outtextxy(max_x-200+2,min_y+300,"Add:YueYang,HuNan,China.");
outtextxy(max_x-200+2,min_y+320,"Postal Code:414005");
outtextxy(max_x-200+2,min_y+340,"Email:blode@peoplemail.com.cn");
outtextxy(max_x-200+2,min_y+360,"OICQ:23923886");
outtextxy(max_x-200+70,min_y+400,"2001.9.20");
new_minx=min_x+10;
new_maxx=max_x-200-10;
new_miny=min_y+10;
new_maxy=max_y-10;
sma_minx=0;
sma_maxx=419;
sma_miny=0;
sma_maxy=459;
while(1){
score=0;
setviewport(new_minx+7,new_miny,new_maxx-7,new_maxy,0);
clearviewport();
setcolor(YELLOW);
rectangle(0+7,0,sma_maxx-7,sma_maxy);
setfillstyle(SOLID_FILL,BLUE);
bar(1+7,1,sma_maxx-1-7,sma_maxy-1);
setcolor(RED);
setfillstyle(SOLID_FILL,RED);
settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
outtextxy(100,200,"press any key to begin!");
getch();
moveto(21*10-5,46*10-8);
curr_x=getx();
curr_y=gety();
circle(21*10-5,46*10-8,5);
cir_num_x[0]=getx();
cir_num_y[0]=gety();
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
circle(curr_x,curr_y,5);
cir_num_x[1]=getx();
cir_num_y[1]=gety();
mid_x=getx();
mid_y=gety();
moveto(curr_x+11,curr_y);
cir_num_x[2]=getx();
cir_num_y[2]=gety();
curr_x=getx();
curr_y=gety();
circle(curr_x,curr_y,5);
setfillstyle(SOLID_FILL,BLUE);
bar(100,100-20,400,250);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
setcolor(RED);
circle(conec_x,conec_y,5);
break;}
while((curr_x>sma_minx+8&&curr_x<sma_maxx-8)&&(curr_y>sma_miny+10&&curr_y<sm
a_maxy)&&(bioskey(1)==0))
{
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
setcolor(RED);
circle(conec_x,conec_y,5);
break;
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
mid_x=getx();
mid_y=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
font_x=getx();
font_y=gety();
setcolor(RED);
sound(100);
delay(4500-score*65);
nosound();
}
while((curr_x>sma_minx+8&&curr_x<sma_maxx-8)&&(curr_y>sma_miny+10&&curr_y<=s
ma_maxy))
{
key=get_key();
if(key==LEFT)
{
if((font_x==mid_x)&&(font_y<mid_y))
{
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x,curr_y+11);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x,curr_y-11);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
sound(100);delay(4500-score*65);nosound();
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
goto TURNLEFT;
}
if((font_x==mid_x)&&(font_y>mid_y))
{
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x,curr_y-11);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x,curr_y+11);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
sound(100);delay(4500-score*65);nosound();
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
goto TURNLEFT;
}
if(font_x<mid_x) goto TURNLEFT;
if(font_x>mid_x)
{moveto(curr_x-22,curr_y);
while((curr_x>sma_minx+8&&curr_x<sma_maxx-8)&&(curr_y>sma_miny+10&&curr_y<sm
a_maxy)&&(bioskey(1)==0))
{
TURNLEFT:
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
mid_x=getx();
mid_y=gety();
circle(curr_x,curr_y,5);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
font_x=getx();
font_y=gety();
circle(curr_x,curr_y,5);
sound(100);delay(4500-score*65);nosound();
}
}
}
if(key==RIGHT)
{
if((font_x==mid_x)&&(font_y<mid_y))
{
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x,curr_y+11);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x,curr_y-11);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
sound(100);delay(4500-score*65);nosound();
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
goto TURNRIGHT;
}
if((font_x==mid_x)&&(font_y>mid_y))
{
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x,curr_y-11);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x,curr_y+11);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
sound(100);delay(4500-score*65);nosound();
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
goto TURNRIGHT;
}
if(font_x>mid_x) goto TURNRIGHT;
if(font_x<mid_x)
{
moveto(curr_x+22,curr_y);
while((curr_x>sma_minx+8&&curr_x<sma_maxx-8)&&(curr_y>sma_miny+10&&curr_y<sm
a_maxy)&&(bioskey(1)==0))
{
TURNRIGHT:
if((curr_x>conec_x-9&&curr_x<conec_x+9)&&(curr_y>conec_y-9&&curr_y<conec_y+9
))
{setcolor(BLUE);
circle(conec_x,conec_y,5);sound(700);delay(500);nosound();score++;gotoxy(69,
12);printf("%d",score*10);
while(1){
conec_x=random(415);
conec_y=random(465);
if((conec_x%5==0)&&(conec_y%5==0)&&(conec_x>15&&conec_x<400)&&(conec_y>15&&c
onec_y<450))
{ setcolor(RED);
circle(conec_x,conec_y,5);
break;}
}}
setcolor(BLUE);
circle(cir_num_x[0],cir_num_y[0],5);
circle(cir_num_x[1],cir_num_y[1],5);
circle(cir_num_x[2],cir_num_y[2],5);
setcolor(RED);
moveto(curr_x-11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[0]=getx();
cir_num_y[0]=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[1]=getx();
cir_num_y[1]=gety();
mid_x=getx();
mid_y=gety();
circle(curr_x,curr_y,5);
moveto(curr_x+11,curr_y);
curr_x=getx();
curr_y=gety();
cir_num_x[2]=getx();
cir_num_y[2]=gety();
circle(curr_x,curr_y,5);
font_x=getx();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -