(完整word版)贪吃蛇暑期实训总结报告
贪吃蛇游戏_实习报告

课程设计报告贪吃蛇游戏设计专业信息工程系学生姓名王洪松班级信息类101班学号100810518时间2011-03-28—2011-04-01课程设计任务书题目贪吃蛇系(部) 信息工程系专业信息类班级2010级1班学生姓名王洪松学号10081051803 月28 日至04 月01 日共 1 周指导教师(签字)系主任(签字)年月日贪吃蛇游戏设计摘要:贪吃蛇是一款经典的休闲游戏,操作小蛇不停的朝食物的方向前进,直到吃掉了食物。
每吃一个食物,小蛇都会长长一节,随之而来的难度加大;当小蛇的头撞到墙时或者小蛇的头与身体相撞时,小蛇就会死亡;当然,小蛇的速度越快,每一个食物的分数就越高。
进程安排3月28日:规划程序需要调用的各个函数,根据要求要实现的内容 3月29日:图形驱动函数 3月30日:开始画面函数3月31日:控制玩游戏过程的函数4月1日: 图形结束函数组装程序,及其调试020406080100第一季度第三季度东部西部北部开发环境概述Visual C++是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。
它提供了MFC 类库,使用户可以方便的开发自己想实现的功能。
Visual C++6.0的主要特点:(1)自动化和宏功能。
(2)可以灵活地定制工具栏和菜单。
(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。
(4)支持Internet 连接。
(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。
(6)在工作区内可以包含多个并列的工程文件。
(7)可以在对话框中使用WizardBar 将程序同可视化元素联系起来。
(8)Find in File 命令支持两个独立的输出窗格,可以保存上一次搜索的结果。
这些新特性可以更好地利用Visual C++开发工具进行Windows 应用程序开发。
目录1、概述1.1、用C类环境设计程序的方法 (1)1.2、简要说明., (1)2、设计要求 (1)3、系统分析与模块设计 (2)3.1、算法设计3.2、数据结构3.3、模块设计3.4、模块枝干图4、程序流程图4.1、图形驱动 (3)4.2、开始画面 (4)4.3、显示食物 (5)4.4、蛇向前移动 (6)4.5、判蛇死 (7)4.6、吃到食物后处理 (8)4.7、判蛇反向移动 (9)4.8、游戏结束 (10)4.9、图形结束 (10)5、程序设计及源代码……………………………………………………10-176、运行结果分析…………………………………………………………18-207、实习心得 (21)贪吃蛇游戏的设计1 .概述1.1、用TC设计程序的方法首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。
北邮计算机实习贪吃蛇游戏编写报告

北邮计算机实习贪吃蛇游戏编写报告计算机实习报告姓名:班级:学号:⼩班序号:指导⽼师:题⽬:贪吃蛇⼩游戏邮箱:贪吃蛇⼩游戏实验报告⼀.功能说明1.1总体功能说明该软件主要实现的是贪吃蛇的基本功能,达到简单的娱乐效果。
⾸先,完成的是贪吃蛇的移动和转弯,通过上下左右四个按键来实现蛇的移动和转弯。
其次还能实现蛇的吃⾷过程,游戏过程中会在游戏区域内随即产⽣⼀个⾷物,玩家通过控制蛇的移动使蛇的头部通过⾷物,则完成进⾷过程,⾷物消失,蛇的⾝体增长⼀截,并在此随机产⽣新的⾷物。
最后还可以完成蛇的死亡过程,即游戏结束的控制过程,如果蛇的头部碰到了墙壁或是⾃⼰的⾝体就会死亡,游戏结束。
此外还在游戏中加了⾳效,使得玩家玩游戏的过程中能够更加放松。
具有操作简单,易于控制,易学易玩的特点。
1.2⽤户界⾯本图为游戏的主界⾯,其中外⾯的⼀圈紫⾊“■”为边界,边界内连成⼀串的“■”是蛇的⾝体,“●”形状的图标即为⾷物。
该界⾯⽤于玩家与计算机的交流,使玩家能够通过图形界⾯来控制蛇的⾏为,进⽽实现游戏过程。
1.3使⽤⽅法分别使⽤“↑↓←→”四个按键来实现对蛇的上下左右的控制,随着蛇的长度的增加,虽然蛇移动的速度没有变化,但是由于空间⼤⼩有限,⽽蛇的长度在逐渐增加,故使得游戏的难度组建增⼤。
⼆.程序设计说明2.1 总体设计框架int main(){ 播放声⾳定义数组记录蛇的横纵坐标定义变量记录蛇的长度定义变量记录⾷物⽬标的位置定义变量判定游戏是否结束init(snakeLocation_x,snakeLocation_y,snakeLength); createObject(object_x,object_y); //初始化while(select为真){ switch(choice){case KEY_UP:do {将蛇的末尾擦除后⼀节赋值给前⼀节判断游戏是否结束蛇头转向转弯后的位置}case KEY_DOWN:{将蛇的末尾擦除后⼀节赋值给前⼀节判断游戏是否结束蛇头转向转弯后的位置}case KEY_RIGHT:{将蛇的末尾擦除后⼀节赋值给前⼀节判断游戏是否结束蛇头转向转弯后的位置}case KEY_LEFT:{将蛇的末尾擦除后⼀节赋值给前⼀节判断游戏是否结束蛇头转向转弯后的位置}case KEY_ESC :程序将会停⽌}}}2.2 关键算法描述算法1:voidinit(int* snakeLocation_x,int* snakeLocation_y,int&snakeLength)该算法的功能是⽤来进⾏初始化实现,实现游戏边界的设计、贪吃蛇⾝体的初始化、贪吃蛇⾝体长度的初始化、在⽆输⼊的情况下蛇的移动。
贪吃蛇实训报告致谢

在完成这次贪吃蛇实训的过程中,我深感荣幸能够得到众多师长的悉心指导、同窗的鼎力相助以及家人朋友的关爱与支持。
在此,我谨向所有关心、帮助和鼓励我的人表示衷心的感谢。
首先,我要感谢我的指导教师XXX老师。
在实训过程中,XXX老师以其严谨的治学态度、深厚的专业知识,为我提供了宝贵的指导和建议。
在遇到困难时,XXX老师总是耐心解答我的疑惑,使我受益匪浅。
XXX老师的教诲,不仅让我掌握了贪吃蛇游戏的编程技巧,更让我学会了如何面对困难,坚持不懈。
其次,我要感谢我的同学们。
在实训期间,我们共同学习、共同进步,互相鼓励、互相支持。
特别是在编程过程中,大家积极交流心得,共同解决难题,使我感受到了团队的力量。
在此,我要特别感谢我的室友XXX同学,他在编程过程中给予了我许多帮助,使我在短时间内掌握了贪吃蛇游戏的设计与实现。
此外,我要感谢我的家人和朋友。
在实训期间,他们给予了我无微不至的关怀和支持。
家人们的鼓励使我始终保持积极向上的心态,朋友们在生活上的关心让我在实训中感受到了温暖。
在此,我要向他们表示衷心的感谢。
以下是我对各位的详细致谢:1. 感谢XXX老师,您的悉心教导让我在贪吃蛇实训中取得了丰硕的成果。
在实训过程中,您不仅传授了我编程技巧,更教会了我如何面对困难,勇往直前。
您的教诲将成为我人生道路上的宝贵财富。
2. 感谢我的室友XXX同学,你的帮助让我在编程过程中少走了许多弯路。
在遇到问题时,你总是耐心解答,让我受益匪浅。
感谢你陪伴我度过了这段难忘的实训时光。
3. 感谢我的同学们,我们一起学习、一起进步,共同成长。
在实训过程中,我们互相鼓励、互相支持,共同度过了一个又一个难关。
感谢你们陪伴我度过了这段美好的时光。
4. 感谢我的家人,你们始终关心我的学习和生活,给予了我无尽的关爱和支持。
感谢你们为我创造了一个良好的成长环境。
5. 感谢我的朋友们,你们在生活上给予了我许多帮助,让我在实训期间感受到了温暖。
感谢你们陪伴我度过了这段难忘的时光。
贪吃蛇游戏_实习报告

课程设计报告贪吃蛇游戏设计专业学生姓名班级学号指导教师完成日期盐城工学院本科生课程设计报告(2008)贪吃蛇游戏设计摘要:本设计主要围绕贪吃蛇游戏展开。
众所周知,贪吃蛇游戏一直以来是比较流行的。
传统的贪吃蛇游戏功能比较少,对蛇的控制仅限于向左转和向右转,而现在的贪吃蛇游戏已经发展的相当好;具有更多的功能和友好的界面。
例如,最近流行的免费的3D版的贪吃蛇游戏,界面相当的美观,有很强的立体效果,真实感更强,食物也为立体的且颜色绚丽。
在3D 版贪吃蛇游戏里面,墙壁是真实的墙壁,障碍物比较多,如树、土丘等。
此外,其功能更多更强,可以选择难度。
不过,总而言之,3D版与传统的贪吃蛇游戏有共性,即娱乐性与益智性。
这些也是贪吃蛇游戏的优点。
本人因水平有限,只能设计简单的贪吃蛇游戏。
不过,在功能上,比传统贪吃蛇游戏更丰富。
蛇可以反向运动,操作起来,显得更为灵活。
界面的颜色选用绿色,不易使眼睛疲劳。
关键词:3D版;传统;灵活;贪吃蛇游戏设计目录1、概述1.1、用TC设计程序的方法1.2、简要说明2、设计要求3、系统分析与模块设计3.1、算法设计3.2、数据结构3.3、模块设计3.4、模块枝干图4、程序流程图4.1、图形驱动4.2、开始画面4.3、显示食物4.4、蛇向前移动4.5、判蛇死4.6、吃到食物后处理4.7、判蛇反向移动4.8、游戏结束4.9、图形结束5、程序设计及关键源代码6、运行结果分析7、实习心得盐城工学院本科生课程设计报告(2008)贪吃蛇游戏的设计1 .概述1.1、用TC设计程序的方法首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。
模块的数量不宜太多,也不宜太少,要使每个模块都能比较简单的转换成流程图。
模块设计完成后,就该给每个模块绘制流程图了。
流程图要简单,容易理解,多用中文。
不宜写过长的代码,增加理解难度。
流程图与模块枝干图均可用绘图软件绘制,可适当加些背景色,用以区分。
贪吃蛇暑期实训总结报告

贪吃蛇暑期实训总结报告实训报告实训题⽬:贪吃蛇游戏程序设计院系:计算机科学与⼯程学院专业:⽹络⼯程班级:⽹络⼯程131学号:090213128姓名:指导教师:肖微实训地点:九章楼N6-101开课时间:2013 ⾄2014学年第 2 学期常熟理⼯学院计算机科学与⼯程学院制学⽣姓名周豪实训报告成绩评语:指导教师(签名)年⽉⽇说明:指导教师评分后,实训报告交院办公室保存。
⽬录1实训的⽬的和任务 (5)实训的⽬的: (5)实训的任务: (6)2.开发环境(软件开发环境和硬件开发环境) (6)3.界⾯设计 (6)3.1设计思路 (6)3.2实现原理 (7)4.算法设计 (9)5.程序流程 (30)6.总结 (31)1实训的⽬的和任务实训的⽬的:1.巩固和加深对C语⾔课程基本知识的理解和掌握2.掌握C语⾔编程和程序调试的基本技能3.利⽤C语⾔进⾏基本的程序设计4.掌握书写程序设计说明⽂档的能⼒5.提⾼运⽤C语⾔解决实际问题的能⼒6. 进⼀步理解和运⽤结构化程设计的思想和⽅法7.独⽴完成⼀个游戏的设计应⽤实训的任务:1.分析实训题⽬要求2.了解实训要求内容3.掌握实训要求代码4.编写程序代码,调试程序使其能正确运⾏5.设计完成的软件要便于操作和使⽤6.完成课程设计报告,并进⾏答辩2.开发环境(软件开发环境和硬件开发环境)1、⼀台能正常运⾏的计算机电脑2、Windows XP3、Microsoft Visual Studio20104、Microsoft Word20103.界⾯设计3.1设计思路:⼤家在运⾏这个游戏的时候,开始界⾯能够出现⼀只蛇,这样的图案⽐较符合游戏的内容。
⾸先是蛇图形的绘画,我们可以运⽤搜狗输⼊法轻松的绘出蛇的⼤致图像,但是值得⼤家注意的是搜狗直接⽣成的图形,在⾥⾯出现了“\”的符号,是Visual Studio不能识别的字符,应该改成“\\”,否则程序不能运⾏。
除此之外,⼀个简单的游戏介绍也是必不可少的,使⽤QQ拼⾳输⼊法中的符号⼯具栏,再加上⾃⼰制定的游戏规则,可以⽣成各种我们需要的游戏简介画⾯。
C语言贪吃蛇实验报告

C语言程序设计实训报告姓名专业班级指导教师2011 年7月14日目录一.实训目的和要求....................................................................... 1二.实训任务内容........................................................................... 1三.详细设计说明........................................................................... 1四.软件使用说明........................................................................... 3五.实训心得与体会....................................................................... 3六.参考文献................................................................................... 5七.部分程序清单(带有详细的注释)....................................... 6八.程序结果............................................................................... 10一.实训目的和要求1.实训目的本实训是软件技术专业重要的实践性环节之一,是在学生学习完《C语言程序设计》课程后进行的一次全面的综合练习。
本实训的目的和任务:(1). 巩固和加深学生对C语言课程的基本知识的理解和掌握(2). 掌握C语言编程和程序调试的基本技能(3). 利用C语言进行基本的软件设计(4). 掌握书写程序设计说明文档的能力(5). 提高运用C语言解决实际问题的能力2.实训要求(1). 分析实训题目的要求(2). 写出详细设计说明(3). 编写程序代码,调试程序使其能正确运行(4). 设计完成的软件要便于操作和使用(5). 设计完成后提交实训报告二.实训任务内容设计贪吃蛇游戏玩家通过键盘控制蛇在地图上寻找食物,蛇吃下食物,可以加分,碰到四壁游戏结束。
贪吃蛇实习报告范文

一、实习背景随着计算机技术的不断发展,编程技能已经成为现代社会人才必备的能力之一。
为了提高自己的编程能力,我在某科技公司进行了为期一个月的贪吃蛇游戏开发实习。
通过这次实习,我对贪吃蛇游戏有了更深入的了解,并掌握了相关编程技能。
二、实习目的1. 学习和掌握贪吃蛇游戏的基本原理和开发流程;2. 提高自己的编程能力,特别是C语言编程能力;3. 熟悉游戏开发工具和开发环境;4. 培养团队合作和沟通能力。
三、实习内容1. 游戏设计在实习过程中,我首先对贪吃蛇游戏进行了详细的设计。
游戏分为以下几部分:(1)游戏界面:包括标题界面、游戏界面、游戏结束界面等;(2)游戏规则:蛇在游戏区域内吃食物,蛇身会逐渐变长,蛇头撞到墙壁或自身则游戏结束;(3)游戏控制:通过键盘上的四个方向键控制蛇的移动方向;(4)游戏得分:蛇每吃一个食物,得分增加10分;(5)游戏难度:随着游戏进行,食物出现速度逐渐加快。
2. 程序开发在游戏设计完成后,我开始进行程序开发。
主要使用了C语言进行编程,以下是程序的主要模块:(1)初始化游戏环境:设置游戏窗口、绘制游戏界面等;(2)生成食物:在游戏区域内随机生成食物,确保食物不与蛇身重叠;(3)蛇的移动:根据用户输入的方向键,控制蛇的移动方向;(4)检测碰撞:检测蛇头是否撞到墙壁或自身,如果碰撞则游戏结束;(5)更新分数:根据蛇吃食物的次数,更新游戏分数;(6)游戏结束:当蛇头撞到墙壁或自身时,显示游戏结束界面。
3. 调试与优化在程序开发过程中,我遇到了一些问题,如蛇的移动速度不均匀、食物生成位置不合理等。
针对这些问题,我进行了以下优化:(1)调整蛇的移动速度,使其更加均匀;(2)优化食物生成算法,确保食物生成位置合理;(3)调整游戏界面,使界面更加美观。
四、实习成果通过一个月的实习,我成功完成了贪吃蛇游戏开发,并取得以下成果:1. 掌握了贪吃蛇游戏的基本原理和开发流程;2. 提高了C语言编程能力,特别是结构体、函数、数组等知识的应用;3. 熟悉了游戏开发工具和开发环境;4. 培养了团队合作和沟通能力。
贪吃蛇实习报告总结

贪吃蛇实习报告总结本次实习的主要内容是设计和实现一个贪吃蛇游戏。
通过本次实习,我深刻地理解了程序设计的基本原理和编程技巧,同时也锻炼了自己的解决问题和团队合作的能力。
在本次实习中,我负责实现了贪吃蛇游戏的主要功能,包括游戏逻辑、界面显示和键盘控制。
在实现过程中,我采用了面向对象的设计方法,将游戏中的各种元素抽象成类,并采用继承和多态等机制来实现游戏的各种功能。
同时,我还使用了计算机图形学的基本知识,实现了游戏界面的绘制和更新。
在团队合作方面,我和其他同学一起完成了游戏的设计和实现工作。
我们通过定期会议和在线讨论等方式,交流了彼此的想法和进展,并及时解决了遇到的问题。
在分工合作的过程中,我学会了如何合理地分配任务和协调工作,同时也提高了自己的沟通能力和团队合作精神。
在解决问题的过程中,我遇到了许多挑战。
例如,在实现游戏逻辑时,我需要处理许多复杂的状态和情况,如蛇的移动、食物的生成和得分等。
为了解决这些问题,我通过阅读相关文献和参考其他游戏的实现方式,不断摸索和尝试,最终找到了合适的解决方案。
通过本次实习,我不仅学会了如何设计和实现一个游戏,更重要的是学会了如何面对复杂的问题和挑战。
在实现游戏的过程中,我不断遇到各种困难和障碍,但是通过自己的努力和团队合作,我最终克服了这些困难,成功地完成了实习任务。
这种解决问题的能力和团队合作精神将对我未来的学习和工作产生积极的影响。
总结起来,本次实习是一次非常有意义的学习和实践过程。
通过设计和实现一个贪吃蛇游戏,我不仅掌握了程序设计的基本原理和编程技巧,还锻炼了自己的解决问题和团队合作的能力。
我相信这次实习经历将对我未来的学习和工作产生积极的影响。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训报告实训题目:贪吃蛇游戏程序设计院系:计算机科学与工程学院专业:网络工程班级:网络工程131学号:090213128姓名:指导教师:肖微实训地点:九章楼N6-101开课时间:2013 至2014学年第 2 学期常熟理工学院计算机科学与工程学院制学生姓名周豪实训报告成绩评语:指导教师(签名)年月日说明:指导教师评分后,实训报告交院办公室保存。
目录1实训的目的和任务 (5)实训的目的: (5)实训的任务: (6)2.开发环境(软件开发环境和硬件开发环境) (6)3.界面设计 (6)3.1设计思路 (6)3.2实现原理 (7)4.算法设计 (9)5.程序流程 (30)6.总结 (31)1实训的目的和任务实训的目的:1.巩固和加深对C语言课程基本知识的理解和掌握2.掌握C语言编程和程序调试的基本技能3.利用C语言进行基本的程序设计4.掌握书写程序设计说明文档的能力5.提高运用C语言解决实际问题的能力6. 进一步理解和运用结构化程设计的思想和方法7.独立完成一个游戏的设计应用实训的任务:1.分析实训题目要求2.了解实训要求内容3.掌握实训要求代码4.编写程序代码,调试程序使其能正确运行5.设计完成的软件要便于操作和使用6.完成课程设计报告,并进行答辩2.开发环境(软件开发环境和硬件开发环境)1、一台能正常运行的计算机电脑2、Windows XP3、Microsoft Visual Studio20104、Microsoft Word20103.界面设计3.1设计思路:大家在运行这个游戏的时候,开始界面能够出现一只蛇,这样的图案比较符合游戏的内容。
首先是蛇图形的绘画,我们可以运用搜狗输入法轻松的绘出蛇的大致图像,但是值得大家注意的是搜狗直接生成的图形,在里面出现了“\”的符号,是Visual Studio不能识别的字符,应该改成“\\”,否则程序不能运行。
除此之外,一个简单的游戏介绍也是必不可少的,使用QQ拼音输入法中的符号工具栏,再加上自己制定的游戏规则,可以生成各种我们需要的游戏简介画面。
3.2实现原理:printf("---------------------------欢迎进入贪吃蛇游戏----------------------");std::cout<<" /^\\/^\\" << endl;std::cout<<" _|0_| 0|" <<endl;std::cout<<"\/ /~ \_/ \\"<<endl;std::cout<<"\____|__________/ \\"<<endl;std::cout<<" \_______ \\"<<endl;std::cout<<" `\\ \\ \\"<<endl;std::cout<<" | | \\"<<endl;std::cout<<" / / \\"<<endl; std::cout<<" / / \\"<<endl; std::cout<<" / / \\ \\"<<endl; std::cout<<" / / \\ \\"<<endl; std::cout<<" / / _----_ \\ \\"<<endl; std::cout<<" / / _-~ ~-_ | |"<<endl; std::cout<<" ( ( _-~ _--_ ~-_ _/ |"<<endl; std::cout<<" \ ~-____-~ _-~ ~-_ ~-_-~ /"<<endl; std::cout<<" ~-_ _-~ ~-_ _-~"<<endl; std::cout<<" ~--______-~ ~-___-~"<<endl; 通过“std::cout”(向终端屏幕输出)可以将找到的蛇图形显示在屏幕上。
显示结果printf(" ---------------------游戏简介--------------------- \n");printf(" ╔════════════════════════╗\n"); printf(" ║通过上下左右四个方向键可以控制贪吃蛇║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║每吃掉一个虫子得分就会增加100分║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║当吃的虫子多余5个时虫子的速度会增加哦║\n"); printf(" ╠════════════════════════╣\n"); printf(" ║游戏开始之前需要自己选择一下等级哦,还请量力而为║\n"); printf(" ╚════════════════════════╝\n"); printf(" 请输入您要挑战的游戏等级,1——5级,速度逐渐减慢,切记!\n"); printf(" 对了忘了说了,按回车键游戏才能开始\n"); printf(" 现在输入要选的等级吧");显示结果先在Word中设计好需要显示的内容,然后利用printf()将其输出显示在屏幕上。
不过在使用std::cout时一定要注意,std是标准库的命名空间名,cout,endl都在其中。
头文件如果是#include<iostream>下面就要这样写,或者加上using namespace std;头文件如果是#include<iostream.h>下面不用4.算法设计#include<stdio.h>#include "stdafx.h"#include <Windows.h>#include "iostream"#include"conio.h"#include<time.h>#include <stdlib.h>#define uint unsigned int上面的许多文件名都是第一次见到,但是在此编程中却是必不可少的,缺一个程序都没法顺利执行。
enum{ARROW_UP=72,ARROW_DOWN=80,ARROW_LEFT=75,ARROW_R};枚举类型,分别标出上下左右四个方向键所对应的数值,这些数值都是固定的。
typedef enum{ORIENTATION_UP,ORIENTATION_DOWN,ORIENTATION_LEFT,ORI ENTATION_RIGHT}Orientation;struct PT{int x;//横坐标int y;//纵坐标};结构体定义一个坐标。
struct Body{PT now;Body *last;Body *next;};结构体定义蛇的一节身体,为创建链表做准备。
{Orientation dir;Body *head;Body *tail;uint bodylong;};HANDLE hStdout=GetStdHandle(STD_OUTPUT_HANDLE); using namespace std;const int X=10;const int Y=5;/*pianyiliang*/const int WIDTH=60;const int HEIGHT=25;const char BRICK='H';const char snk='O';int cnt=0;int delaytime;int k;int score=0;PT foodpt;Snake snake;定义一些即将使用的全局变量,根据以前学到的知识,当全局变量在某一函数中被使用的时候,即使不返回函数值,全局变量也会改变。
因为这部分定义的结构体比较多,所以特别容易弄混,在使用的时候,花费好长时间才熟练的掌握。
void hidecursor(){CONSOLE_CURSOR_INFO cursor_info;cursor_info.bVisible =false;cursor_info.dwSize =30;SetConsoleCursorInfo(hStdout,&cursor_info);}以上代码的运行,可以隐藏运行结果界面的光标,这是我们学习c语言以来,第一次碰到类似的代码,有趣的是,其中的cursor_info.dwSize =30;改变数字不影响运行结果,起初我以为这行代码是多余的,但是将它删除之后,程序运行便出现了错误,后来我上网查了一下才知道,这行代码的作用是改变光标的大小,因为光标被隐藏,所以改变数字不会影响最终结果,然而值得注意的是,这行代码一定不能够省略。
void paintsnake(){//贪吃蛇图形}void prepare(){//游戏简介}void print_char(int x ,int y ,char ch){COORD c;c.X=x;c.Y=y;SetConsoleCursorPosition(hStdout,c);putchar(ch);}上面代码中COORD表示的是坐标,“X”和“Y”分别表示的是横坐标和纵坐标,规定好这两个后就可以很好的确定所打印的代码的位置。
通过改变x,y,以及ch就可以实现在任意位置打印任意字符的功能。
void draw_wall(){for(int i=0;i<HEIGHT;i++)for(int j=0;j<WIDTH;j++){if((i==0)||(i==HEIGHT-1)||(j==0)||(j==WIDTH-1))/*坐标从0开始的所以高和宽都要减1*/print_char(X+j,Y+i,BRICK);//通过改变全局变量BEICK可以改变墙的砖块形状}}}在这里,老师教我们通过循环可以在规定的范围内画出一道围墙,原来我自己的想法是通过printf和“\n”来画出自己所需要的墙,但是这种方法比较繁琐。