ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:18.19KB ,
资源ID:25297430      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25297430.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言贪吃蛇程序设计说明书.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言贪吃蛇程序设计说明书.docx

1、C语言贪吃蛇程序设计说明书C语言贪吃蛇程序设计说明书题 目:贪吃蛇游戏 学 校: 系 别: 专 业 班 级: 姓 名: 学 号: 指导老师: 日 期: 一、设计题目: 贪吃蛇是一款经典的休闲游戏,一条蛇在密闭的围墙内,随机出现一个食物,通过控制方向键操作小蛇不停的朝着食物前进,直到吃掉食物。每吃一个食物,小蛇都会长长一截,随之难度增大;当小蛇头撞到墙或自己时,小蛇死亡。 二、功能设计: 本游戏要求实现以下几个功能: (1) 用上、下、左、右键控制游戏区蛇的运动方向,使之吃食而使身体变长; (2) 用户可以调节蛇的运行速度来选择不同的难度; (3) 游戏分多个难度级别; (4) 用户可自选颜色;

2、 (5) 记录成绩前五名的游戏玩家; (6) 增加背景音乐; (7) 提高障碍物和游戏级别。 三、程序模块图: 贪吃蛇游戏 初画控设帮始图制置助模模模模化 块 块 块 块 墙蛇食移食死变成等音体 身 物 动 物 亡 长 绩 级 效 2 四、算法流程图: 开 始 初始化界面和蛇身 放置食物 获取按键 开始运动 碰到边界 是 否 否 蛇吃到食 是 蛇长大 蛇死亡 是 继续 否 结束 3 五、函数原型与功能 1.主函数:void main() 启动程序,触动其他函数。 2.初始化:void init () 设置背景框大小、蛇体初始值,随机产生食物。 3.随机产生食物:void setfoodcrd(

3、) 设置食物生成坐标,0表示食物被吃。 4.画食物:void showfood() 用矩形框来画食物 5.画蛇:void showsnake() 根据蛇的坐标和节数,循环用矩形框来画蛇。 6.蛇移动:void snakemove() 根据按键,重设坐标 7.改变蛇的方向:void changeskdir() 响应用户的运动方向 8.判断蛇是否死亡:void judgeslod 判断蛇是否碰到自己或墙。 9.判断蛇是否吃到食物:void judgefood() 判断是否吃到食物,吃食后变0,蛇增长一节。 10.结束游戏:void gameover() 结束话语,并执行下一步。 六、基本代码 #i

4、nclude #include #include #pragma comment(lib,Winmm.lib) #include MyTimer.h #define SIZEMAX 100 /*蛇最大长度*/ #define SPEED 100 /*初始速度*/ #define len 20 /*蛇宽度*/ #define lm 10 /*蛇每次移动距离*/ #define initlen 600 /*初始化窗口正方形的长度*/ #define Min_snakelen 2 /*蛇的最小长度*/ typedef struct int x,y; DIR; int snakelen=Min_sna

5、kelen; /*蛇的长度*/ 4 int isfood=1; /*食物状态*/ int isover=0; /*游戏状态*/ int ispause=1; /*暂停状态*/ int ismusic=1; /*音乐播放状态*/ char dir; /*记录蛇运动的方向*/ char c=d; DIR snake500,food; /*定义蛇节点和食物的类型*/ int speed=SPEED; void drawmap() /*画地图函数*/ IMAGE img; char str10; loadimage(&img,贪吃蛇.jpg); /*游戏界面*/ putimage(0,0,&img);

6、 loadimage(&img,7.jpg); /*侧栏提示*/ putimage(600,0,&img); sprintf(str,%d,snakelen); setfont(30,0,宋体); setbkmode(TRANSPARENT); outtextxy(620,10,操作说明:); setfont(20,0,宋体); outtextxy(615,50,awsd控制方向键); outtextxy(615,80,p键暂停); outtextxy(615,110,o键继续); outtextxy(615,200,esc键退出); outtextxy(615,140,l键暂停音乐); ou

7、ttextxy(615,170,k键继续播放); outtextxy(730,250,str); outtextxy(620,250,蛇当前长度); void init() /*初始化蛇函数*/ int i; IMAGE img; snake0.x=9*len+lm; snake0.y=4*len+lm; loadimage(&img,1.jpg); putimage(snake0.x-lm,snake0.y-lm,&img); for(i=1;isnakelen;i+) snakei.x=len*(9-i)+lm; snakei.y=len*4+lm; 5 loadimage(&img, 2

8、.jpg); putimage(snakei.x-lm,snakei.y-lm, &img); void showsnake() /*画蛇函数*/ int i; IMAGE img; loadimage(&img, 1.jpg); putimage(snake0.x-lm,snake0.y-lm , &img); loadimage(&img, 2.jpg); for(i=1;i=0;i-) snakei+1.x=snakei.x; snakei+1.y=snakei.y; snake0.x=mx; snake0.y=my; showsnake(); int ceshiover() /*检测游

9、戏结束函数*/ int i; if(snake0.x30*len-lm|snake0.y30*len-lm) return 1; for(i=1;isnakelen;i+) 6 if(snake0.x=snakei.x&snake0.y=snakei.y) return 1; return 0; int foodinsnake() /*检测食物是否在蛇上函数*/ for(int i=0;isnakelen;i+) if(food.x=snakei.x&food.y=snakei.y) return 1; else return 0; void showfood() /*画食物函数*/ IMAG

10、E img; do food.x=(rand()%30)*len+lm; food.y=(rand()%30)*len+lm; while(foodinsnake(); loadimage(&img, 3.jpg); putimage(food.x-lm,food.y-lm , &img); isfood=0; void kmusic() if(ismusic=0) mciSendString(pause mymusic,NULL,0,NULL); if(ismusic=1) mciSendString(resume mymusic,NULL,0,NULL); void playbkmusic

11、() /*播放背景音乐函数*/ mciSendString(open 超级玛丽.mp3 alias mymusic, NULL, 0, NULL); mciSendString(play mymusic repeat, NULL, 0, NULL); void playgame() /*玩游戏函数*/ c=d; /蛇开始向右移动 isover=0; 7 snakelen=Min_snakelen; dir=d; IMAGE img; MyTimer t; /定义精确延时对象 int T=200; / 延长时间 drawmap(); /画游戏地图 init(); /画小蛇初始位置 while(!

12、isover) if(ispause) snakemove(); FlushBatchDraw(); /批量绘图 EndBatchDraw(); /结束批量绘图 if(snake0.x=food.x&snake0.y=food.y) snakelen+; isfood=1; if(isfood) showfood(); if(snakelen260&m.x250&m.y260&m.x250&m.y320) mciSendString(close mymusic, NULL, 0, NULL); /关闭音乐 playbkmusic(); cleardevice(); playgame(); 10 break; default: break; if(isover=1) break; void main() initgraph(initlen+160,initlen); HWND hWnd=GetHWnd(); SetWindowText(hWnd,贪吃蛇游戏-郭栋); gamebegin(); gameover(); getch(); closegraph(); 11

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1