C语言贪吃蛇程序设计报告山东交通学院贪吃蛇游戏编程院系别信息工程系班级学号姓名指导

C语言Snake程序设计报告山东交通大学C语言课程设计Snake游戏编程系信息工程系班级名称讲师时间2011-03-28 2011-04-01课程设计任务书名Snake游戏编程系信息工程系专业课 学生姓名 学号 3月28日至4月01日 共1周 导师签到 设计内容及要求 贪吃蛇游戏是一款经典的小游戏。设计分为三个层次。围墙上出现一条蛇,墙上随机出现一种食物。按键盘上的四个光标键,控制蛇上下左右四个方向移动。当食物倒出时,食物就被吃掉了。蛇的身体同时长出一段,等级1换1,等级2换2,等级3换3,然后食物出现,等待蛇吃。如果蛇在移动时撞到墙或穿过 蛇头撞到你的身体 游戏结束 2 设计原始资料 C 语言编程与应用 3 设计完成后提交的文件和图表 网格数和毫米对照表 见主表文本。四个流程安排。第一天,选择一个话题,仔细分析。在第二天和第三天贪吃蛇c语言流程图,查找信息。使用你学到的知识。初步编程。第四天和第五天,写源代码进行调试。参考文献 1《C语言程序设计》谭浩强清华大学出版社2《C语言程序设计》张磊高等教育出版社3《C语言课程设计案例精炼》郭翠英中国水利水电出版社4《C语言程序设计教程》李丽娟人民出版社邮电出版社5《C语言程序设计的思想与实践》林华从冶金工业出版社6《C语言程序设计教程》张继文高等教育出版社评分评价表„„„„„„„„„„„„„„ „„„06两个题目要求07三个设计思路07四个数据结构设计和使用说明五个程序描述08六个程序流程图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„ 09 七个程序源代码和注释 11 八个运行结果„„23 九个课程设计总结 „25 十个参考文献 „„„„„„„„„„„„„„265 个总结 食物 いしんfang な 蛇ゲームはつのすばらしくて小さいゲームで 设计は3つの等级けます1の蛇はな塀の仲で塀の仲で无为ののつの食キーボードの4つのカーソルキーによってによって通っててて上,向下,左右和右の方向の方向のののにををネーソルキーを通じて通っ通っ通っててててててててててててててててててててててててててててててててててててててててての体の长さの1段つ同时に等级は1のために1分计算して等级は2のたに2分计算して等级は3たもも3分计算またていままががれれががにくるをっしししモバモバモバモバモバモバモバででであるあるあるあるあるあるあるののののネスネネネーーーヘヘヘヘてししいしーワいいいいな Snake プログラミングします6 第二题要求A用键盘的方向键控制蛇上下左右移动 B.游戏分为三个难度水平。 2分PYTHON是每快速吃一朵花得3分C游戏目标操纵屏幕上可爱的小蛇在黑框内不停吃花,蛇每吃一朵花身体变长难度也会增加相应增加。 D 游戏终止 终止条件 1. 蛇头撞墙。终止条件2.蛇身形成一个圆圈,即蛇头撞到自己的任何地方。蛇的运动由一个小矩形表示,代表蛇身体的一部分。身体的每个长度都增加了一个矩形块。蛇头由两个部分表示。移动的时候一定要从蛇的头开始,所以蛇不能反方向移动,也就是不能把蛇的尾巴改成蛇的头。蛇自己朝当前方向前进。当玩家按下有效方向键时,蛇头向指定方向移动一步,移动一个身体。因此,当按下有效方向键时,首先确定蛇头的位置,然后蛇身跟随。蛇头运动图形的实现是从蛇头的新位置开始绘制蛇。这时候因为没有青屏,原来蛇的位置和新蛇的位置是不同的一个单位,所以看起来社会多了一个身体,所以会画蛇的最后一段。用背景色覆盖食物的出现和消失也是画矩形块和覆盖矩形块 四数据结构设计及使用说明 1.游戏开始部分是图形模式运行的,所以第一步一定要初始化图形模式,然后有一个启动界面就像一本书有封面一样,我为游戏设置了一个标题屏幕。除了游戏标题画面,我还设置了欢迎画面标题画面。后来我也初始化了游戏的运行部分,包括游戏运行时绘制背景。游戏的一些重要变量初始化72运行部分是游戏的核心部分。这里包含的功能很多,也就是模块很多。首先,让我模拟一下贪吃蛇的游戏模式。一条蛇突然出现在某个世界。它很短,它的运动神经异常。这不是法律阻止他的多动症。在它的世界里,只有食物。它非常饥饿和贪吃。此外,食物不知何故从天而降。可惜没落到饿爷的嘴里

不管有毒与否,它不问食物的来源 它吃第一块食物会长得更长,上帝给了它第二块,所以它吃第二块,又长出来了,所以还有第三块……它的身子一直在拉长,不理会自己的过去。长身子的毛病一转身,吃不下去了。现在是直接开吧,让食物有一个绿色通道,可是它自己咬了一下午,才想起那是一条毒蛇,昏了过去。它没有中毒,或者在冲向食物时失控撞到了墙上。第一个周期的第一个周期出现了。 Step 3 蛇一直在移动 Step 3 检查蛇是撞到自己还是撞到墙 从第四步开始,游戏有两个分支 ABA 吃食物 如果蛇吃到食物,身体会长大,原来的食物会消失。 Step 6 让玩家输入控制指令,使蛇在下一个循环的第二步改变运动方向。步骤 7 在第二个循环的第一步中重复第一步。 Round Step B Step 4 Snake 触碰自身或墙壁结束游戏 3 End part 游戏结束时显示 GAMEOVER 5 程序说明 Snake 基本说明 长度 颜色 位置 8 对应数据和数据类型 虽然长度可以用坐标来表示贪吃蛇c语言流程图,计算量会很大,所以换算成更多的单位。每个固定长度的部分描述了坐标–整数颜色–整数位置–添加XY坐标来描述蛇的运动方向。蛇的生命对应数据和数据类型这些描述只有四个方向,上、下、左、右,可以设置四个对应的整数。人生只有两种情况。死亡或生命对应 0 或 1 食物、颜色、位置、对应数据和数据类型的基本描述。由于颜色设置为固定,不再讨论用XY坐标描述食物的存在。设置了相应的数据和数据类型,避免重复食物和绘制食物的功能。只有两个值 0 或 1 没有食物或有食物 其他元素 墙壁没有说什么,因为它作为背景存在于显示器上。实际的墙是四条直线的边界。它由坐标描述。需要的变量 键盘键入的键值用作全局变量。经常使用的循环变量是自定义填充模式。描述文本的字符数组。得分游戏的速度。蛇的速度。 function defineLEFT0x4b00defineRIGHT0x4d00defineDOWN0x5000defineUP0x4800defineESC0x011b 宏定义 键名 defineN200intikeyintlevel 游戏关卡 intcore0 score intgamespeed 游戏速度 intdirection 蛇移动方向 intlife 蛇寿命 0 活着 1 死蛇的结构 voidChoicelevlevoid 选择游戏关卡 voidInitvoid 游戏DRAW void 游戏区域 voidClosevoid 图形结束 玩游戏结束游戏特定进程 voidPrScorevoid 输出分数 主函数 voidmainvoid 12Init graphics driver Choicelevle 选择游戏级别 DRAW 游戏区域 GamePlay 玩游戏特定进程关闭图形结束图形驱动voidInitvoidintgdDETECTgminitgraphgdgm”turboc2″等级初始化图形系统cleardevice清除图形界面图形选择选择选择voidChoicelevlevoidsetcolorYELLOWsettextstyle06outtextxy150150″Snake”13setcolorGREENsettextstyle00021outtextxy202 “Choicelevlefrom”outtextxy200275″1SLUG2WORM3PYTHON”outtextxy220300″pleasechoice1or2or3″getchprintf”pleasechoicelevle”scanf”d”levelgames peed100000-5000级

图片[1]-C语言贪吃蛇程序设计报告山东交通学院贪吃蛇游戏编程院系别信息工程系班级学号姓名指导-老王博客

iflevel3level1cleardevice 清除图形界面 setcolorRED 设置字体颜色 settextstyle002 设置字体类型 outtextxy150200 “levelinputerror” 显示文字 getchlevel1voidDRAWvoidcleardevice 清除屏幕 14setcolor2setlinestyleSOLID_LINE0THICK_WIDTH 设置线型 rectangle5040610460 玩游戏具体流程 voidGamePlayvoidsetcolor5setlinestyleSOLID_LINE0THICK_yes1表示线型 设置随机数表示新食物需要出现0表示有食物snakelife0活着snakedirection1方向向右snakex[0]320snakey[0]240蛇头snakex[1]330snakey[1]240蛇第二段位置snakenode3段号PrScore输出分数while1 可以重复游戏并按 ESC 键结束而 kbhit 蛇移动它的身体而不按按钮 15iffoodyes1 新的食物需要出现 你可以让蛇吃食物xwhilefoody100foodyfoodyes0 屏幕上有食物 iffoodyes0 如果th 有食物e屏,会显示setcolorGREENrectanglefoodxfoodyfoodx10foody-10forisnakenode-1i0i–蛇的每一个环节都向前移动snakex[i]snakex[i-1]snakey[i]snakey[i-1]161234表示蛇头可以移入右、左、上、下四个方向通过这个控制开关snakedirectioncase1snakex[0]10breakcase2snakex[0]-10breakcase3snakey[0]-10breakcase4snakey[0]10breakfori3isnakenodei从snake的第四节判断它是否击中了自己因为蛇头是两节第三节不能转 ifsnakex[i]snakey[0]snakey[i]snakey[0]GameOver显示失败[0]595snakey[0]55snakey[0]455GameOversnakelife1ifsnakelife1如果蛇死了就跳出来内循环的重新开始 breakifsnakex[0]foodxsnakey[0]foody 吃完食物后 setcolor0 移除屏幕上的食物 rectanglefoodxfoodyfoodx10foody-10 使用当前线型和颜色画一个矩形 snakex[snakenode]-20snakey[snakenode ]-20 新的部分是先放在一个不可见的位置,下一个循环会占据上一节的位置。 foodiflevel1score118elseiflevel2score2elseiflevel3score3elsescorelevelifscore120levelgamespeedgamespe ed-5000PrScore output new score setcolor4 draw snake fori0isnakenodei19rectanglesnakex[i]snakey[i]snakex[i]10snakey[i]-10delaygamespeed control game speed setcolor0rectanglesnakex[snakenode-1]snakey[snakenode-1]snakex[snakenode-1]10snakey [snakenode-1]-10endwhile~kbhit 用黑色去掉最后一段snake ifsnakelife1 如果snake死了,跳出循环breakkeybioskey0 收到key ifkeyESC 按ESC键退出breakelseifkeyUPsnakedire

ction4判断是否往相反的方向移动snakedirection3elseifkeyRIGHTsnakedirection2snakedirection1else20ifkeyLEFTsnakedirection1snakedirection2elseifkeyDOWNsnakedirection3snakedirection4endwhile1游戏结束voidGameOvervoidcleardevice清屏PrScoresetcolorRED设置字体颜色settextstyle004设置字体类型outtextxy200200″GAMEOVER”显示文本getch输出成绩及游戏等级voidPrScorevoid21charstr1[20]设置字符型数组setfillstyleSOLID_FILLYELLOWbar501535035填充矩形框setcolor6设置文本颜色 settextstyle002 设置数组显示位置 sprintfstr1 “scoredleveld” scorelevel 显示数组内容 outtextxy5520str1 setcolorYELLOW 设置字体颜色 settextstyle002 设置字体类型 outtextxy250461 “EXITEC” 显示文本 voidClosevoidclosegraph22 界面 24 九门课程设计总结 课程设计是培养学生综合应用的重要环节通过所学发现、分析和解决实际问题,锻炼动手能力。随着科学技术的飞速发展,国际工作能力的具体培养和检验过程也在发生变化。如今,计算机应用可以说是生活中无处不在。因此,作为21世纪的大学,掌握程序开发技术非常重要。 C语言也是最常用、功能最强大的高级语言,所以做好C语言课程设计是非常有必要的。回顾这次课程设计,我们还是感慨万千。确实,自从我们拿到题目,完成了整个编程,从理论到实践,在整整一周的时间里,我们可以学到很多东西,同时,我们不仅可以巩固之前学过的知识,而且也学到了很多我们在书本上没有学到的知识。通过本次课程设计,我们可以了解到理论与实践相结合是非常重要的。只有理论知识是远远不够的。只有将所学的理论知识与实践相结合,从理论中得出结论,才能真正为社会服务,提高我们的实践能力和独立思考能力。设计过程中遇到的问题可以说是困难重重。毕竟第一次做,难免会遇到各种问题。同时,你也会在设计过程中发现自己的不足。知识不够深,把握不够坚定。比如结构体指针链表……经过本课程的设计,我们又重温了之前学过的知识。编程是一件非常枯燥乏味的事情,但为了完成作业拿学分的压力,也必须逼着坚持下去。按照老师说的模块化思想,分部编写,编程是一个高精度、标准化的东西。稍有不慎就会影响大局。小错误可能会导致整个程序无法运行,所以小心是非常重要的。一开始,编程真的感觉是一件很无聊的事情,但是当一个程序运行成功时,喜悦之情溢于言表。成就感是无与伦比的。经过几天的努力,我终于完成了这个程序。虽然程序还有很多错误和漏洞,但我还是很高兴的。无论如何,我的劳动成果是我自己努力的结果。同时,我也在学习C语言。通过练习作业证明我自己的进步。通过本次课程设计,我对C语言有了进一步的了解和理解。如果我想学好它,它必须被实践。通过不断的电脑操作,我可以更好地学习它。首先,我不擅长指法。我经常按错字母,我通过学习有所进步。我对C语言的一些标准库函数不熟悉。我不熟悉函数调用的正确使用。我对C语言不熟悉。我不明白电脑中经常出现的错误。我意识到在实践中学习要注重实际操作,不仅要学习C语言,还要学习其他语言和其他25种计算机知识。我会更注重实际操作,才能学好计算机郭翠英,中国水利水电工程出版社4《C语言程序设计教程》李丽娟人民邮电出版社5《C语言程序设计思想与实践》林华聪冶金工业出版社6《C语言程序设计教程》张继文高等教育出版社26

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论