- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言程序贪吃蛇课程设计报告
高级语言程序设计
课程设计报告
Experiment Designing reporter
课程名称 : 高级语言程序设计
英文名称 : C Program Experiment Designing
专 业 : 自动化 111
学 号 : XXX
姓 名 : XXX
指导教师 : XXX
日 期: 2012 年 6月 17日至 2011 年6 月 20 日
山东工商学院信电学院
一 : 课程设计内容
程序功能介绍
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。void DrawK(void)
{
setcolor(11);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
for(i=200;i=500;i+=10)
rectangle(i,200,i+10,209);
}
然后要找到:改变蛇初始长度、颜色、初始位置的模块,改变苹果出现位置的模块,让蛇见墙死的模块,让蛇吃苹果加长的模块……….
并且进行分类,这样下次再想实现某个目标时,可以一目了然的进行改编。
对于找到的模块如何进行改编呢?怎么才能知道某个数值或函数代表什么呢?
我们有两个方法:
1.)看名字,比如snakecolor(),很明显他的意思是蛇的颜色。2.)控制变量猜想,比如设置墙的时候for(i=200;i=500;i+=10); rectangle(i,300,i+10,309); 中的200,500,300,209 代表什么呢? 我们可以猜想:它很像是坐标上的(x,y)的格式,是不是呢?可可以先让其他数值不变,只让309改变,改变后发现上面的墙变粗了,由此可见这个数字控制的是一堵墙的最下面一行的坐标。
关于该程序的 相关分析思路答题模板 :
1 . 贪吃蛇程序流程图 如下 :
二.贪吃蛇程序的改编 :
经过小组成员的认真研究 我们对其进行了 如下改编
第一步 加墙
void DrawK(void)
{
/*setbkcolor(MAGENTA);*/
setcolor(5); // 可以改变颜色
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
横向上的墙:
for(i=100;i=600;i+=10)// 本行代表行坐标上:100代表墙的初始位置,i=600代表墙的结尾。
{
rectangle(i,60,i+10,69); //本行代表纵坐标上:60代表墙的最上面一行的位置,69代表墙最下面一行的位置。69-60=9,9代表墙块的厚度
}
纵向上的墙:
for(i=100;i=400;i+=10)//本行代表纵坐标上:100代表墙的初始位置,i=400代表墙的结尾
{
rectangle(100,i,109,i+10); //本行代表纵坐标上:100代表墙的最左边面一行的位置,69代表墙最右面一行的位置。69-60=9,9代表墙块的宽度
}
我们认为本模块最重要的是for语句控制的坐标代表的意思。只要明白了坐标的意思,就可以实现对游戏的改编。
第二步 就是进行对新加入的墙蛇是否撞上死亡
让蛇撞墙死
if(snake.x[0]190snake.x[0] 510snake.y[0]=200 snake.y[0]=215) /*其中,对x,y范围的控制,实际是对蛇撞击的死亡区域的限制。*/
{
GameOver();/*本次游戏结束*/
snake.life=1; /*蛇死*/
}
相应的新添加的墙。
for(i=200;i=500;i+=10)/*画围墙*/
{
rectangle(i,200,i+10,209); /*指定位置*/
第三步食物的定点出现
if(food.yes==1)/*需要出现新食物*/
这里说明一下:rand() 产生0-65535的数,在limit
您可能关注的文档
最近下载
- 《雨污水管网施工方案》.docx VIP
- T╱CFA 020202072 - 2019 熔模铸造用工业硅溶胶标准.pdf VIP
- 九阳料理机食谱大全(彩图)电子版.doc VIP
- 第47届世界技能大赛江苏省选拔赛飞机维修项目技术工作文件7.9.docx VIP
- 雨污水管网施工应急预案.docx VIP
- 华为营销体系IPMS详解第一部分 讲师版glz.pptx VIP
- 欧科PT300变频器说明书.pdf
- 省属集团有限责任公司工资总额管理办法附各种用表.doc VIP
- 苏教版小学科学三年级上册《13 吹气球》(第一课时)课件、视频、作业设计.pptx VIP
- 第八单元(复习课件)一年级语文上册单元速记巧练(统编版).pptx VIP
原创力文档


文档评论(0)