C语言可以写哪些小游戏?
的有关信息介绍如下:C语言可以编手机游戏. 你叫他去死 不过码燃我这有 贪吃蛇的代码,你陵察倒可以看看 (用TC 编译一定过) #include #include #include #include #include #define Enter 7181 #define ESC 283 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #define RIGHT 19712 #ifdef __cplusplus #define __CPPARGS ... #else #define __CPPARGS #endif void interrupt (*oldhandler)(__CPPARGS); void interrupt newhandler(__CPPARGS); void SetTimer(void interrupt (*IntProc)(__CPPARGS)); void KillTimer(void); void Initgra(void); void TheFirstBlock(void); void DrawMap(void); void Initsnake(void); void Initfood(void); void Snake_Headmv(void); void Flag(int,int,int,int); void GameOver(void); void Snake_Bodymv(void); void Snake_Bodyadd(void); void PrntScore(void); void Timer(void); void Win(void); void TheSecondBlock(void); void Food(void); void Dsnkorfd(int,int,int); void Delay(int); struct Snake {int x;int y;int color;}Snk[12]; struct Food {int x;int y;int color;}Fd; int flag1=1,flag2=0,flag3=0,flag4=0,flag5=0,flag6=0, checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse; char Sco[2],Time[6]; void main() { Initgra(); SetTimer(newhandler); TheFirstBlock(); while(1) {DrawMap(); Snake_Headmv(); GameOver(); Snake_Bodymv(); Snake_Bodyadd(); PrntScore(); Timer(); Win(); if(key==ESC) break; if(key==Enter) {cleardevice(); TheFirstBlock(); } TheSecondBlock(); Food(); Delay(Snkspeed); } closegraph(); KillTimer(); } void interrupt newhandler(__CPPARGS) { TimerCounter++; oldhandler(); } void SetTimer(void interrupt (*IntProc)(__CPPARGS)) { oldhandler=getvect(0x1c); disable(); setvect(0x1c,IntProc); enable(); } void KillTimer() { disable(); setvect(0x1c,oldhandler); enable(); } void Initgra() {int gd=DETECT,gm; initgraph(&gd,&gm,"d:\尺模茄\tc"); } void TheFirstBlock() {setcolor(11); settextstyle(0,0,4); outtextxy(100,220,"The First Block"); loop:key=bioskey(0); if(key==Enter) {cleardevice(); Initsnake(); Initfood(); Score=0; Hscore=1; Snkspeed=10; num=2; Times=0; key=0; TureorFalse=1; TimerCounter=0; Time[0]='0';Time[1]='0';Time[2]=':';Time[3]='1';Time[4]='0';Time[5]='\0'; } else if(key==ESC) cleardevice(); else goto loop; } void DrawMap() {line(10,10,470,10); line(470,10,470,470); line(470,470,10,470); line(10,470,10,10); line(480,20,620,20); line(620,20,620,460); line(620,460,480,460); line(480,460,480,20); } void Initsnake() {randomize(); num=2; Snk[0].x=random(440); Snk[0].x=Snk[0].x-Snk[0].x%20+50; Snk[0].y=random(440); Snk[0].y=Snk[0].y-Snk[0].y%20+50; Snk[0].color=4; Snk[1].x=Snk[0].x; Snk[1].y=Snk[0].y+20;Snk[1].color=4; } void Initfood() {randomize(); Fd.x=random(440); Fd.x=Fd.x-Fd.x%20+30; Fd.y=random(440); Fd.y=Fd.y-Fd.y%20+30; Fd.color=random(14)+1; } void Snake_Headmv() {if(bioskey(1)) {key=bioskey(0); switch(key) {case UP:Flag(1,0,0,0);break; case DOWN:Flag(0,1,0,0);break; case LEFT:Flag(0,0,1,0);break; case RIGHT:Flag(0,0,0,1);break; default:break; } } if(flag1) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag2) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].y+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag3) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x-=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } if(flag4) {checkx=Snk[0].x; checky=Snk[0].y; Dsnkorfd(Snk[0].x,Snk[0].y,0); Snk[0].x+=20; Dsnkorfd(Snk[0].x,Snk[0].y,Snk[0].color); } } void Flag(int a,int b,int c,int d) {flag1=a;flag2=b;flag3=c;flag4=d;} void GameOver() {int i; if(Snk[0].x460||Snk[0].y460) {cleardevice(); setcolor(11); settextstyle(0,0,4); outtextxy(160,220,"Game Over"); loop1:key=bioskey(0); if(key==Enter) {cleardevice(); TheFirstBlock(); } else if(key==ESC) cleardevice(); else goto loop1; } for(i=3;i