c语言编写小游戏请提供俄罗斯方块,坦克大战之类的小游戏的程序的c

应该是做出方块函数 然后以 这个方块 为单位 绘制 俄罗斯方块的 积木图形 ,在制作游戏界面的时候 也以方块长度为单位长度绘制 二维数组 在判断加分时候按方块单位逐行扫描 判断大概思路应该是这样吧

c语言小游戏代码(c语言小游戏代码简单)_c语言小游戏代码(c语言小游戏代码简单)

编写游戏的软件-用c语言编写小游戏编出来的游戏用什么软件来实现?用c语言编写小游

编写完成后直接就可以运行啊

C语言游戏编程

c语言怎么编游戏

纯真童趣的《泡泡堂》,还有武林情仇,笑傲江湖的《剑侠情缘on

line》.它是e时代常谈的话题,是交互式娱乐的主力军,是一种

高层次的综合艺术,更是一个民族的文化,世界观的全新传播方式

.作为游戏玩家的我们,是不是想设计一个属于自己的游戏呢?

爱玩是人的天性,而C语言是我们计算机专业都要学习的一门基础

学科.一般来说,是比较枯燥的.那么,我们能不能通过编一些小

游戏来提高它的趣味性呢?这样学习程序设计,就不会是一件艰苦

,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣.这正是

我发贴的目的.

1, 总是从Hello,world开始

学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell

o,world!".让我们来看看这个最简单的C程序:

#incolude /*把输入输出函数的头文件包含进来*/

int main()

printf("Hello,

world!");/*在屏幕上输出字符串"Hello,world!"*/

return 0;/*退出main函数,并返回0*/

下面我们发现几个值得改进的地方,1,程序的运行结果一闪而过

.2,每执行这个程序一次都能看见上次运行留下的字符.3,我们

还希望屏幕输出一个笑脸来欢迎我们.(大家不要小看了这个笑脸

曾经有人发贴专门问呢)让我们来改进一下这个程序吧!

1,在return语句的前面加一句:getch ();,表示按任意键结

束.2,在printf语句前用clrscr函数清屏,要使用这个函数和get

ch函数,需要在程序开头再包含头文件conio.h.3,ASCII码也有

许多非常好玩的字符,比如ASCII码值为2的就是一个笑脸,我们可

以用printf("%c", 2)来输出一个笑脸.

现在我们把Hello,world程序改成一个更好看的Hello,world了.下

面让我们开始做游戏吧!

2, 心动的开始,一个运动中的笑脸

大家小时侯喜欢看动画片吗?哈哈,我猜你们都喜欢吧!下面就让

我们来做一个小动画吧.在屏幕上显示一个运动的小笑脸,而且当

它到达屏幕的边缘时会自动弹回来.

先在程序定义一个在屏幕中运动的点的结构:

struct move_point

int x, y;/*该点的位置,包括x坐标和y坐标*/

int xv, yv;/*该点在x轴,y轴的速度*/

运动的原理是,先擦去物体先前的轨迹,让物体按其速度移动一段

距离,再画出该物体.让我们看到以下代码:

gotoxy(man.x, man.y);/*把光标移到指定的坐标*/

printf(" ");/*输出一个空格,把先前的字符擦去*/

然后我们让物体按其速度运动:

man.x += man.xv;/*水平方向按x轴的速度运动*/

man.y += man.yv;/*垂直方向按y轴的速度运动*/

运动后还要判断物体是否出界,如果出了界,就令物体反弹,即让

它下一刻的速度等于现在的速度的相反数.最后打印出这个笑脸:

gotoxy(man.x, man.y);

printf("%c\b", 2); /*输出ASCII码值为2的"笑脸"字符*/

怎么样?是不是很有趣呢?不过这个笑脸一直是自己运动,能不能

让我们来控制它运动呢?答案是肯定的,让我们继续往下学吧!

3, 交互的实现——让我们来控制笑脸运动

这个程序的主要功能是接受按键,如果接收的是方向键,就让笑脸

顺着方向移动,如果接收的是ESC键就退出程序,其他按键则忽略

处理.接受按键我们用以下两条语句:

while (bioskey(1) == 0);/*等待按键*/

key = bioskey(0);/*把接收的按键的键盘码赋给变量key*/

然后用switch语句来判断按键以及执行相关操作,如下:

switch (key) /*对变量key的值进行判断*/

case UP:/*如果按的是向上键*/

… break; /*让物体向上运动,并退出switch*/

case DOWN: /*如果按的是向下键*/

… break; /*让物体向下运动,并退出switch*/

case LEFT: /*向左键*/

… break;;/*向左运动*/

case RIGHT: /*向右键*/

… break;/*向右运动*/

2 c语言怎么编游戏

default:

break;/*其他按键则忽略处理*/

怎么样,是不是有了玩游戏的感觉了?不过这个程序没有什么目的

,也没有什么判断胜负的条件.下面我们就利用这个能控制它移动

的笑脸来做一个更有趣的游戏吧!

4, 在迷宫中探索

小时侯,我常在一些小人书和杂志上看见一些迷宫的游戏,非常喜

欢玩,还常到一些书上找迷宫玩呢.好的,现在我们用C语言来编

个迷宫的游戏,重温一下童年的乐趣.

首先,我们定义一个二维数组map,用它来保存迷宫的地图,其中m

ap[x][y] == '#'表示在(x,y)坐标上的点是墙壁.DrawMap函数

在屏幕上输出迷宫的地图和一些欢迎信息.

在main函数里,我们定义了"小人"man的坐标和"目的地"des的

坐标.在游戏循环中,我们增加了一些用来判断胜负的语句:

if (man.x == des.x && man.y == des.y) /*如果人的坐标等于目

的地的坐标*/

gotoxy(35, 3);

printf("Ok! You win!"); /*输出胜利信息*/

在判断按键时,如果玩家按的是方向键,我们还要先判断前面是不

是有"墙壁",如果有的话,就不能往前移动了.好的,我们在判

断按键的switch语句的各个分支加上了判断语句,如下:

if (map[…][…] == '#') break;/*如果前面是墙壁,就不执行

下去*/

哇噻!真棒,我们做出了一个完整的游戏了.当然你还可以通过修

改二维数组map来修改迷宫的地图,让它更有挑战性.不过,我们

要设计一个更好玩的游戏——

5, 聪明的搬运工

大家一定玩过"搬运工"的游戏吧!这是在电脑和电子字典上较流

行的益智游戏,让我们动手做一个属于自己的"搬运工"吧!

程序依然用数组map来保存地图,数组元素如果为空格则表示什么

也没有,'b'表示箱子,'#'表示墙壁,'*'表示目的地,'i

'表示箱子在目的地.我们以后每推一下箱子,不但要改变屏幕的

显示,也要改变map相应元素的值.

游戏的主循环依然是接受按键.当接收一个方向键,需要判断小人

前面一格的状态,如果是空地或目的地,则人物可以直接移动;如

果是墙壁,则不可移动;如果是箱子或目的地上的箱子,则需要继

续判断箱子前面一格的状态:如果前一格是空地或目的地,则人推

箱子前进,否则不可移动.好的,我们在switch中增加了这些判断

语句.

程序还有一个重要的功能就是判断胜利.数组Des用来记录全部目

的地的坐标,我们每执行一步操作后,程序就要通过Des数组判断

这些目的地上是否都有箱子了.

真棒啊!我们可以做游戏了.而且是一个老少皆宜,趣味十足的游

戏呢!当然,我们可以通过修改map数组来制作不同的游戏地图,

我们还可以相互分享好的游戏地图呢.

尾声:

在C++等高级语言还没出来的时候,很多应用程序也是C语言开发的

.C语言在与硬件联系紧密的编程中,也占有重要地位.

其实我觉得学习编程,可以通过一些小游戏,实用的例子来学习.

象学习音乐的人,不是要等到把全部乐理学完后才演奏一个完整的

曲子.而是刚开始学时就有一些简单的曲子让你演奏,让你立刻就

有成就感,让你很快就能卖弄出来在别人面前表现自己了.通过编

游戏来学习编程,把学习变成游戏,不失为学习计算机的一种好方

好了,编游戏就这么简单,希望大家也尝试用C语言或其他的语言

来做几个自己喜欢的小游戏.你要说说你想做什么游戏啊java 开发方便些 。随便找本书看看,C可以编一些小游戏,当然,如果你有能力了,一样可以编大型程序。说一个具体的游戏…………。请高人指点???

你丫的以为指点你一下就能明白???那它妈的还去上大学干吗???C语言写程序?我怎么感觉像回到了99年呢,那时候我学计算机用386.写程序只能用C和BASIC.哈哈

写出来的第一个游戏是华容道,那时候看别人玩我写和游戏,好有成就感哦!不过现在想起来那个游戏确实是没啥可炫耀的那么好玩的C语言多看看买本书自己去学用C++编游戏要比用C语言好.

C++是面向对象程序,目前使用较广的为VC++用c不好编界面所以简单游戏都是黑色背景,我编了几个游戏,加我qq我给你发过去

要加分的aj 几 亿斤日反对广泛山豆根地方cklb风格个一克米分第个呵呵,才学C语言啊??慢慢来三,!这个要学得很精通才行的

c语言小游戏代码(c语言小游戏代码简单)_c语言小游戏代码(c语言小游戏代码简单)_02

给我提供个小游戏的C 语言代码

本原代码是基于C语言的原程序。是经典中的小游戏。-primitive code is based on the C language of the original procedure. Classic is a small game.

一个小游戏,用C语言编写的:俄罗斯方块.C原码及应用程序都在里面哦 -a small game using the C language : Russian cubes. The original C code and application procedures inside oh

十全十美游戏原程序,c语言-perfect game program, language c

上数据结构时,自己用C语言做的小游戏,做得不好,请大家原谅。-structure on the data they used C language to the small games, done well, please forgive me.

大家都耍过文曲星中的猜数字的游戏吧 !! 最近我在学习C语言。写了个菜鸟的C语言的猜数字的游戏程序的原代码-rings off the viewing of the game! ! I recently learning C language. Wrote a birdie C language viewing of the games original code procedures

这是我在大学二年级学习C语言课程时,作为“练笔”而编写的一个小程序(当时在我眼里可却是一个大程序!)其主要特点有:1、正真做到了全中文界面(不需要UCDOS操作系支持) 2、大量的图形特技(如图像的显隐技术、图像穿插技术、多任务仿真技术等) 3、纯C语言打造(不含任何C++知识) 4、实现了街机“俄罗斯方块”绝大部分功能(如动画、声音、速度变化) 5、用户可根据自据的习惯自由地调整“游戏操作键” 6、方法独特,全部语句和技术都是我本人原创,没有参考过任何相关代码 7、防“跟踪调试”技术,防“版权篡改”技术 8、……-

这个程序是模仿Windows中的扫雷小游戏制作的,该程序只是实现了扫雷游戏的主体部分,诸如计分、升级部分都没有做。这个程序可以作为初学者学习C语言绘图和游戏的实例。 该程序在Turbo C2.0 下编译通过 由于扫雷游戏是用鼠标操作的,而Turbo C中提供的鼠标驱动程序在Windows xp下不可用,所以我随源程序提供了一个鼠标驱动的头文件,须将将该头文件复制到Turbo C2.0 的安装目录下的“include”文件夹中方可编译或运行,也可自行修改原文件使之包含该投文件。 注:该鼠标驱动程序是我在网上找到的,其出处我已无法考证,如果侵犯了作者的权利还请作者与我联系。 由于在我的电脑上Turbo C图形环境下显示数字会有问题(估计是系统问题),所以程序中雷周围的数字1-8我用a-h代替,看不顺眼的可以自己修改原程序。-

c语言 猜拳游戏的原代码就是这个 已经测试成功了呀-language of the original game is the code has been tested successfully ah

俄罗斯方块对战版c语言原代码。希望大家能喜欢。是比较简单的一个代码,游戏开发高手请指教。-Tetris screen version of the original C language code. Hope you will like. It is a relatively simple code, game development experts please advise.

用linuX 下的C语言 运用CURSES编写的俄罗斯方块游戏,很好,这个是本人原创,值得参考-linuX use the C language CURSES prepared by the Russian box game, well, this is the original, worthy of reference展开全部

2L你给的什么呀,明明是加密算法调用我给你一个贪吃蛇的C# #define N 200/*定义全局常量*/

#define m 25

#include

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define Esc 0x011b

int i,j,key,k;

struct Food/*构造食物结构体*/

int x;

int y;

int yes;

}food;

struct Goods/*构造宝贝结构体*/

int x;

int y;

int yes;

}goods;

struct Block/*构造障碍物结构体*/

int x[m];

int y[m];

int yes;

}block;

struct Snake{/*构造蛇结构体*/

int x[N];

int y[N];

int node;

int direction;

int life;

}snake;

struct Game/*构建游戏级别参数体*/

int score;

int level;

int speed;

}game;

/*定义函数*/

void init(void);/*定义图形驱动*/

void close(void);/*定义关闭函数*/

void drawk(void);/*定义界面函数*/

void gameover(void);/*定义游戏结束函数*/

void gameplay(void);/*定义游戏主函数*/

void prscore(void);/*定义得分函数*/

void main(void){/*主函数体,调用以下四个函数*/

init();

setbkcolor(7);

drawk();

gameplay();

close();

void init(void){/*构建图形驱动函数*/

int gd=DETECT,gm;

initgraph(&gd,&gm,"");

cleardevice();

void drawk(void){/*构建游戏界面函数*/

/*setbkcolor(LIGHTGREEN);*/

char str3[50];

setfillstyle(SOLID_FILL,BLUE);/*条型边框,显示版本信息*/

bar3d(48,9,610,38,1,45);

setcolor(YELLOW);/*版本信息*/

sprintf(str3,"Version:5.01,Powerwing Studio");

outtextxy(330,20,str3);

setfillstyle(LTSLASH_FILL,YELLOW);/*设定墙边的填充形式*/

bar3d(48,48,58,462,0,0);/*设定墙边*/

bar3d(48,39,611,48,0,0);

bar3d(48,452,611,462,0,0);

bar3d(602,39,611,462,0,0);

void gameplay(void){/*构建游戏主函数*/

/*初始化游戏角色*/

randomize();/*随机数发生器*/

goods.yes=1;

block.yes=1;

food.yes=1;/*场景中需建立新的食物*/

snake.life=1;/*初始化蛇生命值*/

snake.direction=1;/*蛇起始的移动方向定义为向右*/

snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标初始化*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*蛇初始化节数,共两节只有蛇头*/

/*初始化障碍物的数组*/

block.x[0]=170;block.y[0]=270;/*level 1*/

block.x[1]=410;block.y[1]=310;

block.x[2]=300;block.y[2]=200;

block.x[3]=320;block.y[3]=420;

block.x[4]=250;block.y[4]=350;

block.x[5]=220;block.y[5]=320;/*level 2*/

block.x[6]=310;block.y[6]=410;

block.x[7]=400;block.y[7]=500;

block.x[8]=230;block.y[8]=230;

block.x[9]=280;block.y[9]=280;

block.x[10]=170;block.y[10]=280;/*level 3*/

block.x[11]=420;block.y[11]=310;

block.x[12]=310;block.y[12]=200;

block.x[13]=320;block.y[13]=400;

block.x[14]=250;block.y[14]=260;/*level 4*/

block.x[15]=220;block.y[15]=330;

block.x[16]=130;block.y[16]=410;

block.x[17]=310;block.y[17]=510;

block.x[18]=230;block.y[18]=340;

block.x[19]=280;block.y[19]=380;

block.x[20]=270;block.y[20]=170;/*level 5*/

block.x[21]=410;block.y[21]=450;

block.x[22]=190;block.y[22]=200;

block.x[23]=150;block.y[23]=320;

block.x[24]=270;block.y[24]=350;

block.x[25]=340;block.y[25]=320;

game.score=0;

game.speed=50000;

game.level=1;

prscore();/*得分初始化*/

while(1){/*判断为真可以按Esc退出循环结束游戏*/

while(!kbhit()){/*无按键按下时,蛇自己移动身体*/

if(game.level==1){/*画出障碍物*/

for(j=0;j<5;j++){

setcolor(5);/**/

rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);

block.yes=0;

if(game.level==2){/*画出障碍物*/

for(j=0;j<9;j++){

setcolor(5);/**/

rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);

block.yes=0;

if(game.level==3){/*画出障碍物*/

for(j=0;j<14;j++){

setcolor(5);/**/

rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);

block.yes=0;

if(game.level==4){/*画出障碍物*/

for(j=0;j<19;j++){

setcolor(5);/**/

rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);

block.yes=0;

if(game.level==5){/*画出障碍物*/

for(j=0;j<25;j++){

setcolor(5);/**/

rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10);

block.yes=0;

if(food.yes==1){/*需要画出新的食物*/

food.x=rand()%400+60;/*获得间隔60的随机数食物坐标值*/

food.y=rand()%350+60;

while(food.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;/*新的食物已经产生*/

if(goods.yes==1){/*需要画出新的宝物*/

goods.x=rand()%380+60;/*获得间隔60的随机数宝贝坐标值*/

goods.y=rand()%320+80;

while(goods.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/

goods.x++;

while(goods.y%10!=0)

goods.y++;

goods.yes=0;/*新的宝贝已经产生*/

if(goods.yes==0){/*新宝贝产生,应显示出来*/

setcolor(0);/*擦除*/

rectangle(goods.x,goods.y,goods.x+10,goods.y-10);

delay(50);/*延时*/

setcolor(YELLOW);

goods.x=goods.x+random(10)-random(20);/*随机数增量*/

goods.y=goods.y+random(10)-random(20);

while(goods.x%10!=0)/*判断变化后的坐标值是否满足被10整除,否,自动增加*/

goods.x++;

while(goods.y%10!=0)

goods.y++;

rectangle(goods.x,goods.y,goods.x+10,goods.y-10);/*重画出宝贝*/

if(goods.x<65||goods.x>585||goods.y<65|goods.y>445){/*判定宝贝是否越界*/

setcolor(0);/*擦除越界的宝贝*/

rectangle(goods.x,goods.y,goods.x+10,goods.y-10);

goods.yes=1;/*越界后重新生成宝贝*/

if(food.yes==0){/*新食物产生,应显示出来*/

setcolor(GREEN);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/

rectangle(food.x,food.y,food.x+10,food.y-10);

for(i=snake.node-1;i>0;i--){/*取得需重画的蛇的节数*/

snake.x[i]=snake.x[i-1];/*最后一节的坐标值等于倒数第二节的坐标值*/

snake.y[i]=snake.y[i-1];

switch(snake.direction){/*判断蛇头的移动方向*/

case 1:snake.x[0]+=10;break;/*向右*/

case 2:snake.x[0]-=10;break;/*向左*/

case 3:snake.y[0]-=10;break;/*向上*/

case 4:snake.y[0]+=10;break;/*向下*/

for(i=3;iif(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){/*即自身的任一节坐标值与蛇头坐标相等*/

for(i=1;isetcolor(0);

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

snake.life-=1;/*生命值减少一*/

snake.node-=5;

prscore();/*输出结果*/

if(snake.life==0){/*判断生命值是否为0*/

gameover();/*游戏结束*/

break;/*退出内循环*/

if(snake.x[0]<55||snake.x[0]>595||snake.y[0]<55||snake.y[0]>455){/*判断蛇是否与墙体碰撞*/

for(i=1;isetcolor(0);

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/

snake.x[1]=110;snake.y[1]=100;

snake.direction=1;/*蛇起始的移动方向定义为向右*/

snake.life-=1;/*生命值减少一*/

snake.node-=5;/*相应节数减少5节*/

prscore();

if(snake.life==0){

gameover();

break;

/*判断蛇与障碍物碰撞,食物是否与障碍物重叠*/

if(game.level==1){/*判断级别,并设定相应的障碍物数量,即数组个数*/

k=5;

else if(game.level==2){

k=9;

else if(game.level==3){

k=14;

else if(game.level==4){

k=19;

else if(game.level==5){

k=25;

for(j=0;jif(snake.x[0]==block.x[j]&&snake.y[0]==block.y[j]){

for(i=1;isetcolor(0);

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

if(food.x==block.x[j]&&block.y[j]==food.y){/*防止障碍物与食物重叠*/

setcolor(0);/*设定食物的颜色为背景色,即擦除*/

rectangle(food.x,food.y,food.x+10,food.y-10);

food.yes=1;/*食物重新生成*/

snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/

snake.x[1]=110;snake.y[1]=100;

snake.direction=1;/*蛇起始的移动方向定义为向右*/

snake.life-=1;

snake.node-=5;

prscore();

if(snake.life==0){

gameover();

break;

if(snake.x[0]==food.x&&snake.y[0]==food.y){/*判断蛇是否吃到食物*/

setcolor(0);/*设定食物的颜色为背景色,即擦除*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;/*新的一节放在不可见的位置*/

snake.y[snake.node]=-20;

snake.node++;/*蛇身增加一节*/

if(snake.node>2){/*当节数每增加5节生命值增加一*/

snake.life=1+fabs((snake.node-2)/5);

food.yes=1;/*场景需要增加食物*/

game.score+=20;/*加分*/

prscore();/*输出得分*/

if(snake.x[0]==goods.x&&snake.y[0]==goods.y){/*判定蛇是否得到宝贝*/

setcolor(0);/*设定宝贝的颜色为背景色,即擦除*/

rectangle(goods.x,goods.y,goods.x+10,goods.y-10);

goods.yes=1;/*场景需要增加新的宝贝*/

game.score+=100;/*得到宝贝后加100分*/

prscore();/*输出得分*/

if(game.score<500){/*设定游戏速度和难度级别*/

game.speed=50000;

game.level=1;}

else if(game.score>=500&&game.score<1000){

game.level=2;

game.speed=40000;}

else if(game.score>=1000&&game.score<1500){

game.level=3;

game.speed=30000;}

else if(game.score>=1500&&game.score<2000){

game.level=4;

game.speed=20000; }

else if(game.score>=5000){

game.level=5;

game.speed=10000;}

setcolor(4);/*画出移动的蛇*/

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/

for(i=0;irectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10);

delay(game.speed);

setcolor(0);/*用背景色擦去最后一节*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(! kbhit) */

if(snake.life==0)/*判断循环结束条件:蛇死或者检测到Esc按键*/

break;

key=bioskey(0);/*判断按键*/

if(key==Esc)

break;

/*判断蛇头接收到的用户按键响应的移动方向*/

else if(key==UP&&snake.direction!=4)

snake.direction=3;

else if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

void gameover(void){/*游戏结束处理*/

cleardevice();/*清屏*/

prscore();/*输出得分*/

setcolor(RED);/*打印出“Game Over”字样*/

settextstyle(0,0,4);

outtextxy(200,200,"Game Over!");

getch();

void prscore(void){/*定义分数输出函数*/

char str1[10];

char str2[10];

char str4[20];

setfillstyle(SOLID_FILL,BLUE);/*用于清除旧的显示信息*/

bar(49,10,320,37);

setcolor(WHITE);

settextstyle(0,0,1);

sprintf(str1,"score:%d",game.score);/*输出得分*/

outtextxy(55,20,str1);

sprintf(str2,"level:%d",game.level);/*输出级别*/

outtextxy(250,20,str2);

sprintf(str4,"life:%d",snake.life);/*输出级别*/

outtextxy(150,20,str4);

void close(void){/*定义关闭函数,退出图形模式*/

getch();

closegraph();

}展开全部

恩,基本是这样的!