C语言可以写哪些小游戏?
C语言可以编手机游戏。你叫他去死不过我这有贪吃蛇的代码,你倒可以看看(用TC编译一定过(
#包括
#包括
#包括
#包括
#包括
#定义输入7181
#定义ESC 283
#定义UP 18432
#定义向下20480
#定义左19200
#定义权利19712
#ifdef __cplusplus
#define __CPPARGS.
#否则
#define __CPPARGS
#endif
void interrupt(* old handler)(_ _ CPPARGS);
void中断新处理程序(_ CPPARGS);
void SetTimer(void interrupt(* IntProc)(_ _ CPPARGS));
void KillTiMer(void);
void init gra(void);
void First BLock(void);
void绘制地图(void);
void init snake(void);
void init food(void);
void Snake _ Toolv(void);
void Flag(int,int,int,int);
void GameOVer(void);
void Snake _ body mv(void);
void Snake _ body add(void);
void PRntScore(void);
void Timer(void);
void Win(void);
无效第二块(void);
虚食(void);
void Dsnkorfd(int,int,int);
void Delay(int);
结构蛇
{ int x;int y;int color } Snk[12];
结构食物
{ int x;int y;int color} Fd
int标志1=1,标志2=0,标志3=0,标志4=0,标志5=0,标志6=0,
checkx,checky,num,key=0,Times,Score,Hscore,Snkspeed,TimerCounter,TureorFalse
char Sco[2],时间[6];
void main()
{ Initgra();
SetTimer(新处理程序);
first BLock();
while(1)
{ DrawMap();
snake _ Toolv();
game over();
snake _ body mv();
snake _ body add();
PrntScore();
timer();
win();
if(键==ESC)
打破;
如果(键==回车(
{ clear device();
first BLock();
{}
第二个块();
food();
延迟(Snks速度);
{}
关闭图形();
killTiMer();
{}
void中断新处理程序(_ CPPARGS)
{
计时器
旧处理程序();
{}
void SetTimer(void interrupt(* IntProc)(_ _ CPPARGS))
{
old handler=getvect(0x1c);
disable();
setvect(0x1c,IntProc);
enable();
{}
void KillTimer()
{
disable();
setvect(0x1c,旧处理程序);
enable();
{}
void Initgra()
{int gd=DETECT,GM;
initgraph(gd,gm,' d : \ \ TC ');
{}
无效的第一个块()
{ setcolor(11);
setext style(0,0,4);
outextxy(100,220,"第一个块”;
循环3360键=BIOS键(0);
如果(键==回车(
{ clear device();
init snake();
init food();
分数=0;
hs core=1;
Snkspeed=10
num=2;
次数=0;
key=0;
turorfalse=1;
定时器计数器=0;
时间[0]=' 0 ';时间[1]=' 0 ';时间[2]=' : ';时间[3]=' 1 ';时间[4]=' 0 ';时间[5]=' \ 0 ';
{}
否则if(key==ESC)clear device();
否则转到循环;
{}
void DrawMap()
{line(10,10,470,10);
行(470,10,470,470);
行(470,470,10,470);
行(10,470,10,10);
行(480,20,620,20);
行(620,20,620,460);
行(620,460,480,460);
行(480,460,480,20);
{}
void Initsnake()
{随机化();
num=2;
Snk[0].x=random(440);
Snk[0].x=Snk[0].x-Snk[0].x50
Snk[0].y=random(440);
Snk[0].y=Snk[0].y-Snk[0].y50
Snk[0].color=4;
Snk[1].x=Snk[0].x;
Snk[1].y=Snk[0].y 20
Snk[1].color=4;
{}
void Initfood()
{随机化();
FD。x=random(440);
Fd。x=Fd。x-Fd。x30;
FD。y=random(440);
Fd。y=Fd。y-Fd。y 30
FD。color=random(14)1;
{}
void Snake _ Toolv()
{if(bioskey(1))
{ key=BIOS密钥(0);
开关(键(
{case UP:Flag(1,0,0,0);打破;
case DOWN:Flag(0,1,0,0);打破;
case LEFT:Flag(0,0,1,0);打破;
case RIGHT:Flag(0,0,0,1);打破;
默认值:break
{}
{}
if(标志1)
{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].颜色);
{}
if(标志2)
{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].颜色);
{}
if(标志3)
{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].颜色);
{}
if(标志4)
{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].颜色);
{}
{}
无效标志(int a,int b,int c,int d)
{ flag 1=a;标志2=b;标志3=c;标志4=d;{}
void GameOver()
{ int I;
if(Snk[0].x460||Snk[0].y460)
{ clear device();
setcolor(11);
setext style(0,0,4);
outextxy(160,220,"游戏结束”;
循环1:键=BIOS键(0);
如果(键==回车(
{ clear device();
first BLock();
{}
其他
if(键==ESC)
clear device();
其他
转到loop1
{}
for(I=3;i{if(Snk[0]).x==Snk[i].xSnk[0].y==Snk[i].y)
{ clear device();
setcolor(11);
setext style(0,0,4);
outextxy(160,220,"游戏结束”;
循环2:键=BIOS键(0);
如果(键==回车(
{ clear device();
first BLock();
{}
其他
if(键==ESC)
clear device();
否则转到循环2;
{}
{}
{}
void Snake_Bodymv()
{int i,s,t;
for(I=1;我{ Dnskorfd(checkx,checky,Snk[i]).颜色);
Dsnkorfd(Snk[i]).x,Snk[i].y,0);
s=Snk[i].x;
t=Snk[i].y;
Snk[i].x=checkx
Snk[i].y=checky
checkx=s;
checky=t;
{}
{}
食物无效()
{if(flag5)
{随机化();
FD。x=random(440);
Fd。x=Fd。x-Fd。x30;
FD。y=random(440);
Fd。y=Fd。y-Fd。y 30
FD。color=random(14)1;
标志5=0;
{}
Dsnkorfd(fd.x,Fd.y,Fd)。颜色);
{}
void Snake_Bodyadd()
{if(Snk[0]).x==Fd.xSnk[0].y==Fd.y)
{if(Snk[num-1]).xSnk[num-2].x)
{ num
Snk[num-1].x=Snk[num-2].x20
Snk[num-1].y=Snk[num-2].y;
Snk[num-1].color=Fd.color
{}
其他
if(Snk[num-1]).x { num
Snk[num-1].x=Snk[num-2].x-20;
Snk[num-1].y=Snk[num-2].y;
Snk[num-1].color=Fd.color
{}
其他
if(Snk[num-1]).ySnk[num-2].y)
{ num
Snk[num-1].x=Snk[num-2].x;
Snk[num-1].y=Snk[num-2].y 20
Snk[num-1].color=Fd.color
{}
其他
if(Snk[num-1]).y { num
Snk[num-1].x=Snk[num-2].x;
Snk[num-1].y=Snk[num-2].y-20;
Snk[num-1].color=Fd.color
{}
标志5=1;
分数;
{}
{}
void PrntScore()
{if(Hscore!=分数(
{ setcolor(11);
setext style(0,0,3);
outextxy(490,100,' SCORE ');
setcolor(2);
setfillstyle(1,0);
矩形(520,140,580,180);
漫滩(530,145,2);
Sco[0]=(char)(分值48);
SCO[1]=' \ 0 ';
Hscore=分数
setcolor(4);
setext style(0,0,3);
outextxy(540,150,Sco);
{}
{}
无效计时器()
{if(定时器计数器18)
{ Time[4]=(char)(Time[4]-1);
if(时间[4]“0”)
{ Time[4]=' 9 ';
Time[3]=(char)(Time[3]-1);
{}
if(时间[3]“0”)
{ Time[3]=' 5 ';
Time[1]=(char)(Time[1]-1);
{}
if(turorfalse)
{ setcolor(11);
setext style(0,0,3);
outextxy(490,240,' TIMER ');
setcolor(2);
setfillstyle(1,0);
矩形(490,280,610,320);
漫滩(530,300,2);
setcolor(11);
setext style(0,0,3);
outextxy(495,290,Time);
turorfalse=0;
{}
if(Time[1]=' 0 ' Time[3]=' 0 ' Time[4]=' 0 ')
{ setcolor(11);
setext style(0,0,4);
outextxy(160,220,"游戏结束”;
循环3360键=BIOS键(0);
如果(键==回车(
{ clear device();
first BLock();
{}
否则if(key==ESC)clear device();
否则转到循环;
{}
定时器计数器=0;
turorfalse=1;
{}
{}
void Win()
{if(分数==3)
时代;
if(Times==2)
{ clear device();
setcolor(11);
setext style(0,0,4);
outextxy(160,220,' You Win ');
循环3360键=BIOS键(0);
如果(键==回车(
{ clear device();
first BLock();
key=0;
{}
否则if(key==ESC)clear device();
否则转到循环;
{}
{}
无效第二个块()
{if(分数==3)
{ clear device();
setcolor(11);
setext style(0,0,4);
outextxy(100,220,"第二块”;
循环3360键=BIOS键(0);
如果(键==回车(
{ clear device();
init snake();
init food();
分数=0;
hs core=1;
snk速度=8;
num=2;
key=0;
{}
否则if(key==ESC)clear device();
否则转到循环;
{}
{}
void Dsnkorfd(int x,int y,int color)
{ setcolor(color);
setfillstyle(1,color);
圆(x,y,10);
漫填(x,y,颜色);
{}
无效延迟(整数倍(
{ int I;
for(I=1;I=次数;I)
延迟(15000);
}还有黑白棋,扫雷,俄罗斯方块等贪吃蛇,推方块等