C语言贪吃蛇设计理念

C语言贪吃蛇设计理念

ID:38666991

大小:96.14 KB

页数:5页

时间:2019-06-17

C语言贪吃蛇设计理念_第1页
C语言贪吃蛇设计理念_第2页
C语言贪吃蛇设计理念_第3页
C语言贪吃蛇设计理念_第4页
C语言贪吃蛇设计理念_第5页
资源描述:

《C语言贪吃蛇设计理念》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于C语言的“贪吃蛇”游戏的设计与实现摘3.功能描述:本游戏主要实现以下几种功能“贪吃蛇”游戏贪游游吃戏戏蛇显分的示数控更更制新新功功功能能能图1.游戏功能模块3.1.贪吃蛇的控制功能:通过各种条件的判断,实现对游戏蛇的左移、右移、下移、上移、自由移动,贪吃蛇的加长功能。3.2.游戏显示更新功能:当贪吃蛇左右移动、上下移动,以及身体加长时要清除先前的贪吃蛇图像,用新坐标重绘贪吃蛇。3.3.游戏分数更新功能:在游戏玩家进行游戏过程中,需要按照一定的游戏规则给游戏玩家计算游戏分数。比如,贪吃蛇每吃到一个事物就加十分。4.数据结构设计:4.1

2、食物Food结构体structFood{intx;/*食物的横坐标*/inty;/*食物的纵坐标*/intyes;/*判断是否要出现食物的变量*/}food;4.2贪吃蛇snake的结构体structSnake{intx[N];inty[N];intnode;/*蛇的节数*/intdirection;/*蛇移动方向*/intlife;/*蛇的生命,0活着,1死亡*/}snake;5.程序设计实现:5.1.主函数main()Main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。voidInit(void);/*图形驱动*

3、/{voidClose(void);/*图形结束*/Init();/*图形驱动*/voidDrawK(void);/*开始画面*/DrawK();/*开始画面*/voidGameOver(void);/*结束游戏*/GamePlay();/*玩游戏具体过程*/voidGamePlay(void);/*玩游戏具体过程*/Close();/*图形结束*/voidPrScore(void);/*输出成绩*/}voidmain(void)5.2.图形驱动init()Init()主要功能是初始化屏幕为图形模式函数。voidInit(void)in

4、itgraph(&gd,&gm,"c:\tc");{cleardevice();intgd=DETECT,gm;}5.3.开始画面,左上角坐标为(50,40),右下角坐标为(610,460)的围墙voidDrawK(void)rectangle(i,451,i+10,460);/*下边{*//*setbkcolor(LIGHTGREEN);*/}setcolor(11);for(i=40;i<=450;i+=10){setlinestyle(SOLID_LINE,0,THICK_WIDTH);rectangle(50,i,59,i+1

5、0);/*左边*//*设置线型*/rectangle(601,i,610,i+10);/*右边*/for(i=50;i<=600;i+=10)/*画围墙*/}{}rectangle(i,40,i+10,49);/*上边*/5.4.玩游戏具体过程主要实现游戏运行中的操作,以及分数更新等。voidGamePlay(void){{while(!kbhit())/*在没有按键的情况randomize();/*随机数发生器*/下,蛇自己移动身体*/food.yes=1;/*1表示需要出现新食物,0表{示已经存在食物*/if(food.yes==1

6、)/*需要出现新食物*/snake.life=0;/*活着*/{snake.direction=1;/*方向往右*/food.x=rand()%400+60;snake.x[0]=100;snake.y[0]=100;/*蛇头food.y=rand()%350+60;*/while(food.x%10!=0)/*食物随机出现snake.x[1]=110;snake.y[1]=100;后必须让食物能够在整格内,这样才可以让蛇snake.node=2;/*节数*/吃到*/PrScore();/*输出得分*/food.x++;while(1)

7、/*可以重复玩游戏,压ESC键结束while(food.y%10!=0)*/food.y++;food.yes=0;/*画面上有食物了*/GameOver();/*本次游戏结束*/}snake.life=1;/*蛇死*/if(food.yes==0)/*画面上有食物了就要显}示*/if(snake.life==1)/*以上两种判断以后,如{果蛇死就跳出内循环,重新开始*/setcolor(GREEN);break;rectangle(food.x,food.y,food.x+10,food.if(snake.x[0]==food.x&&

8、snake.y[0]==food.y-10);y)/*吃到食物以后*/}{for(i=snake.node-1;i>0;i--)/*setcolor(0);/*把画面上的食物蛇的每个环节往前移动,也就是贪吃

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。