欢迎来到天天文库
浏览记录
ID:37952315
大小:51.50 KB
页数:7页
时间:2019-06-03
《c语言贪吃蛇课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言课程设计报告C语言课程设计报告贪吃蛇专业学生姓名班级学号完成日期C语言课程设计报告一、游戏规则需求1、在打开程序后,出现选择界面,里面包含难度选择,其中难度选择能够使程序出现相应的游戏难度。2、开始游戏后,WASD键控制贪吃蛇的移动方向。3、当贪吃蛇向一个方向移动时,不能立刻向反方向移动。4、贪吃蛇撞到的自己的身体或者撞到墙时,游戏结束,并输出“GAMEOVER!”。5、贪吃蛇吃到一个食物后,出现白色闪烁一次,身体随之增加一个单位长度。二、所需数据结构分析1、所需函数模块voidbegin();//登陆界面voidstart
2、();//鼠标移动事件voidinit();//初始化游戏voidsetfoodcrd();//设置食物要出现的坐标voidshowfood();//在相应的坐标画出食物voidsnakemove();//移动蛇,实际就是改变蛇各节的坐标voidjudgeslod();//判断蛇是否撞墙或者撞到自己voidjudgesef();//判断蛇是否吃到食物了voidshowsnake();//在屏幕上画出蛇voidchangeskdir();//接受用户输入,改变蛇的前进方向voidgameover();//游戏结束2、蛇及食物数据结构
3、typedefstruct//定义一个结构体表示坐标{intx;inty;}COOR;structFOOD//定义结构体,来存储食物的相关信息{COORcrd;//食物出现的坐标intflag;//食物的状态,1表示食物还没被吃,0表示食物被吃了C语言课程设计报告}food;structSNAKE//定义结构体,来存储蛇的相关信息{COORcrd[SIZEMAX];//保存蛇的每个结数的坐标,最多有100节intnode;//保存蛇当前节数DIRdir;//当前蛇行进的方向}snake;3、游戏流程图开始图形界面初始化进入游戏难度
4、选择界面进入游戏界面各类消息判断并作相应的处理关闭游戏,结束从键盘读入操作信息蛇是否存活三、所需核心算法分析1.主函数C语言课程设计报告voidmain()//主函数{initgraph(640,640);loadimage(&img[0],"denglu3.jpg");//导入图片loadimage(&img[1],"a1.jpg");loadimage(&img[2],"a2.jpg");loadimage(&img[3],"b1.jpg");loadimage(&img[4],"b2.jpg");loadimage(&img
5、[5],"c1.jpg");loadimage(&img[6],"c2.jpg");loadimage(&img[7],"beijing.jpg");begin();//登陆界面init();//初始化游戏while(1){while(!kbhit()){if(!food.flag){setfoodcrd();}showfood();judgeslod();judgesef();snakemove();Sleep(speed);}changeskdir();}C语言课程设计报告}2.图形初始化voidinit()//初始化游戏{p
6、utimage(0,0,&img[7]);setbkcolor(RGB(124,107,7));food.flag=0;snake.crd[0].x=80+SNAKELEN;snake.crd[0].y=155;snake.crd[1].x=80;snake.crd[1].y=155;snake.node=2;snake.dir=right;}3.读入操作信息的处理voidsnakemove(){inti;for(i=snake.node;i>0;i--){snake.crd[i].x=snake.crd[i-1].x;snake
7、.crd[i].y=snake.crd[i-1].y;}switch(snake.dir){caseup:snake.crd[0].y-=SNAKELEN;break;casedown:snake.crd[0].y+=SNAKELEN;break;caseleft:snake.crd[0].x-=SNAKELEN;break;caseright:snake.crd[0].x+=SNAKELEN;C语言课程设计报告}showsnake();}四、关键函数介绍1.贪吃蛇链表用链表的节点表示蛇,移动的时候增加一个头节点隐藏一个尾节点,吃
8、食物只需增加一个头节点。2.Putimage()函数用数组读入图片信息,loadimage()函数载入图片,然后用putimage函数显示图片,实现图形界面。3.GetMouseMsg()函数鼠标经过响应,改变按钮的状态,美化图形界面。4.mkLB
此文档下载收益归作者所有