- 1、本文档共17页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪吃蛇游戏的实现_毕业论文
《面向对象程序设计》
课程设计
设计名称 贪吃蛇游戏的实现
姓 名 蒋 欢
指导教师 张 静
班 级 15级信息管理与信息系统
2016年06月18日
目 录
第一章 引言 1
1.1研究背景 1
1.1.1背景内容 1
1.2研究方案 1
第二章 概述 1
2.1程序流程图 1
第三章 设计的具体实现 2
3.1 InitInstance函数 2
3.2UpdataGame函数 3
3.3 main函数 3
3.4 Csnake函数 3
3.5 getSymbol函数 4
3.6 isDead函数 4
第四章 调试及解决方法 4
第五章 测试结果 5
第六章 设计新的体会 7
致 谢 8
参考文献 8
附 录 9
第一章 引言
1.1研究背景
贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着我,它的制作方法对于以前的我而言都是很神秘的[ ]。我希望通过自己的所学知识把它剖析开来,真真正正的了解它的本质和精髓。虽然我的编程能力不是很强,但是我有信心,在这次学习中我将从实践和实际的项目中提高自己的编程能力,因此我选定了这个题目。
1.1.1背景内容
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束[ ]。
1.2研究方案
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小@表示蛇的一节身体,身体每长一节,增加一个@。移动时必须从蛇头开始,如果不按任何键,蛇自行在当前方向右前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,在界面中央有个静止不动的食物,用户通过键盘来控制蛇的走向,当蛇吃到食物时,分数增加十分,界面开始更新,蛇的身体增加一节,食物的位置变化一次,当蛇碰到界面时,游戏自动结束,显示用户最后的分数。
第二章 概述
2.1程序流程图
图1所示:
图1 程序流程图
第三章 设计的具体实现
3.1 InitInstance函数
函数原型:void Csnake::InitInstance()。
功能:初始化游戏界面,初始化蛇身,将方向上下左右分别用4个键表示。
参数:无。
返回值:无。
工作方式:根据命令,调用相应函数,建立内存链表,将蛇身坐标压入队列,并将蛇身作为一个数组。
要求:完成初始化,界面中给出蛇的相关信息
3.2UpdataGame函数
函数原型:bool Csnake::UpdataGame()。
功能:获取用户按键信息,产生食物,并随机产生食物的相关坐标,判断在蛇没有死亡的
状态下是否碰到食物,如果碰到则加10分,蛇身增长一节,返回值定为true,如果蛇在移动过程中,撞到墙壁或身体交叉(蛇头撞到自己的身体),返回值定为false,并且输出用户之前所得的分数。
参数:蛇的横坐标r,蛇的列坐标l,记录用户成绩score,获取用户按键信息chioce。 返回值:true或者是false。
工作方式:获取用户输入按键信息,并且根据用户输入按键信息作为关键字,进行判断。
要求:自动使蛇开始运动,并且及时获取用户的按键信息,随时判断是否在移动过程中碰到墙壁或者身体交叉,给出结束信息。
3.3 main函数
函数原型:int main()
功能:程序的入口点,总控函数。
参数:没有死亡的信息noDead。
返回值:0。
工作要求:依次调用初始化界面的成员函数,更新游戏界面的成员函数,显示游戏界面的 成员函数。
要求:调用程序信息。
3.4 Csnake函数
函数原型:Csnake(int n)功能:初始化游戏界面大小。
参数:int n。
返回值:无。
3.5 getSymbol函数
函数原型:char getSymbol(const Cmp c)const。
功能:获取指定坐标点上的字符。
参数: Cmp c。
返回值:snakeMap[c.lSign][c.rSign]。
3.6 isDead函数
函数原型:bool isDead(const Cmp cmp)。 功能:判断是否死亡。 参数:Cmp cmp。
返回值:getSymbol(cmp)==@ || cmp.rSign == row-1
您可能关注的文档
最近下载
- 物理化学(下)(湖南科技大学)智慧树知到期末考试答案2024年.docx
- 部编版八年级道德与法治上册第十课《建设美好祖国 关心国家发展》课件.ppt
- 关于母子公司之间风险隔离、防范利益冲突 与输送及关联交.pdf
- _循环肿瘤细胞检测在胃肠道肿瘤诊疗中的应用中国专家共识(2023版).pdf
- 2024年5月18日阿克苏地直遴选面试真题及答案解析(上午卷).doc VIP
- XXXX《个人与团队管理》机考答案.pdf VIP
- 2023-2024年四年级上册科学(湘教版) 期末模拟试卷(一)(含解析).doc VIP
- 滚花螺栓标准(2016版)-STD3938.pdf
- LEICAX2数码相机说明书图文.pdf
- 一本正经玩科学.pptx VIP
文档评论(0)