贪吃蛇实训报告

合集下载

贪吃蛇实训报告致谢

贪吃蛇实训报告致谢

在完成这次贪吃蛇实训的过程中,我深感荣幸能够得到众多师长的悉心指导、同窗的鼎力相助以及家人朋友的关爱与支持。

在此,我谨向所有关心、帮助和鼓励我的人表示衷心的感谢。

首先,我要感谢我的指导教师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设计程序的方法首先应了解设计要求,然后按照功能设计模块,每个模块完成特定的功能,要使模块间的耦合性小,内聚性高;设计模块是相当重要的一个环节。

模块的数量不宜太多,也不宜太少,要使每个模块都能比较简单的转换成流程图。

模块设计完成后,就该给每个模块绘制流程图了。

流程图要简单,容易理解,多用中文。

不宜写过长的代码,增加理解难度。

流程图与模块枝干图均可用绘图软件绘制,可适当加些背景色,用以区分。

贪吃蛇实训报告

贪吃蛇实训报告

郑州轻工业学院实训报告实训名称:贪吃蛇指导教师:姓名:学号:班级:提交日期:一.实验目的通过开发一款贪吃蛇游戏程序,熟练掌握C#编程语言、和面向对象程序设计方法,独立完成一个游戏程序的开发。

二.实验题目本次实训的题目为贪吃蛇。

通过使用C#编程语言来实现。

三.功能描述1.游戏的基本功能描述1)游戏场地是一片矩形区域的空地构成,蛇可以在这片定义的区域中自由移动。

2)定义一个Block来构成石块,蛇头,蛇身以及豆。

蛇由蛇头和蛇身组成。

3)当游戏开始之后,定义的区域中出现一颗豆和一条蛇,并且蛇不停地移动,蛇移动的方向与蛇头的方向一致。

4)通过space或者暂停键可以使游戏停止,蛇停止移动,分数停止积分。

5)当蛇移动时,玩家可以使用“↑”、“↓”、“←”和“→”四个方向键改变蛇的移动方向。

6)当蛇头与豆的位置重合时,豆被蛇吃掉,同时在草坪中再生成一颗新的豆,蛇身增加一节。

7)当蛇头碰到石块时,蛇死亡,游戏结束。

8)当蛇头咬到蛇身时,则蛇死亡,游戏结束。

9)当蛇头碰到草坪四周时,蛇立即毙命,游戏结束。

10)游戏分为不同的级别,第一关游戏速度为200,当蛇吃五个豆子就可以过关,级别显示为2,速度增加100变为300.第二关为吃够10个豆子,速度增加50,以后以此类推。

11)游戏菜单中设有游戏帮助,玩家可以通过点击帮助了解游戏的玩法。

12)对于不是第一次玩的玩家可以改变蛇的运动速度,来增加难度。

在菜单中设有加速和减速两个键,单击可以改变速度。

13)游戏菜单中还有时间显示。

14)当游戏暂停时,可以通过“继续”键使游戏继续进行。

四.需求分析本游戏用户可以自己练习和娱乐。

本游戏需要满足以下几点要求:(1)利用方向键“↑、↓、←、→”来改变蛇的运行方向。

(2)空格键暂停游戏,并在随机的地方产生食物。

(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。

可行性分析:贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。

关于贪吃蛇的实训报告

关于贪吃蛇的实训报告

一、实训目的本次实训旨在通过C语言编程实现贪吃蛇游戏,巩固和加深对C语言程序设计的基本知识的理解和掌握,提高编程和程序调试的基本技能,并锻炼独立自主设计程序和编辑代码的能力。

通过设计贪吃蛇游戏,进一步理解和运用结构化程序设计的思想和方法,初步掌握开发一个小型实用系统的基本方法,学会调试一个较长程序的基本方法,以及掌握书写程序设计开发文档的能力。

二、实训内容1. 游戏规则贪吃蛇游戏的基本规则如下:- 蛇在游戏区域中上下左右移动,通过键盘方向键控制。

- 每次蛇头撞到食物,蛇身增长一节,同时计10分。

- 若蛇头撞到墙壁或自身,游戏结束。

- 游戏区域大小、蛇的初始长度、食物的生成方式等参数可调整。

2. 程序设计(1)数据结构- Food结构体:用于存储食物的位置信息,包括横坐标x、纵坐标y和是否生成食物的标志yes。

```cstruct Food {int x;int y;int yes;};```- Snake结构体:用于存储蛇的位置信息、长度、移动方向和生命状态。

```cstruct Snake {int x[N];int y[N];int node;int direction;int life;};```(2)功能模块- 初始化函数:初始化游戏区域、蛇的位置、长度、方向和生命状态,以及食物的位置信息。

- 键盘输入处理函数:获取键盘输入,控制蛇的移动方向。

- 食物生成函数:根据设定规则生成食物。

- 蛇移动函数:根据蛇的移动方向和速度,更新蛇的位置信息。

- 游戏判断函数:判断蛇是否吃到食物、撞到墙壁或自身,以及游戏是否结束。

- 界面绘制函数:绘制游戏区域、蛇和食物。

三、程序实现以下为部分关键代码示例:```c// 初始化函数void init() {// 初始化游戏区域、蛇的位置、长度、方向和生命状态,以及食物的位置信息}// 键盘输入处理函数void keyInput() {// 获取键盘输入,控制蛇的移动方向}// 食物生成函数void generateFood() {// 根据设定规则生成食物}// 蛇移动函数void moveSnake() {// 根据蛇的移动方向和速度,更新蛇的位置信息}// 游戏判断函数void judgeGame() {// 判断蛇是否吃到食物、撞到墙壁或自身,以及游戏是否结束}// 界面绘制函数void draw() {// 绘制游戏区域、蛇和食物}```四、实训心得与体会1. 编程能力提升:通过本次实训,我对C语言编程和程序设计有了更深入的理解,编程能力得到了显著提升。

贪吃蛇实习报告范文

贪吃蛇实习报告范文

一、实习背景随着计算机技术的不断发展,编程技能已经成为现代社会人才必备的能力之一。

为了提高自己的编程能力,我在某科技公司进行了为期一个月的贪吃蛇游戏开发实习。

通过这次实习,我对贪吃蛇游戏有了更深入的了解,并掌握了相关编程技能。

二、实习目的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. 培养了团队合作和沟通能力。

贪吃蛇实习报告总结

贪吃蛇实习报告总结

贪吃蛇实习报告总结本次实习的主要内容是设计和实现一个贪吃蛇游戏。

通过本次实习,我深刻地理解了程序设计的基本原理和编程技巧,同时也锻炼了自己的解决问题和团队合作的能力。

在本次实习中,我负责实现了贪吃蛇游戏的主要功能,包括游戏逻辑、界面显示和键盘控制。

在实现过程中,我采用了面向对象的设计方法,将游戏中的各种元素抽象成类,并采用继承和多态等机制来实现游戏的各种功能。

同时,我还使用了计算机图形学的基本知识,实现了游戏界面的绘制和更新。

在团队合作方面,我和其他同学一起完成了游戏的设计和实现工作。

我们通过定期会议和在线讨论等方式,交流了彼此的想法和进展,并及时解决了遇到的问题。

在分工合作的过程中,我学会了如何合理地分配任务和协调工作,同时也提高了自己的沟通能力和团队合作精神。

在解决问题的过程中,我遇到了许多挑战。

例如,在实现游戏逻辑时,我需要处理许多复杂的状态和情况,如蛇的移动、食物的生成和得分等。

为了解决这些问题,我通过阅读相关文献和参考其他游戏的实现方式,不断摸索和尝试,最终找到了合适的解决方案。

通过本次实习,我不仅学会了如何设计和实现一个游戏,更重要的是学会了如何面对复杂的问题和挑战。

在实现游戏的过程中,我不断遇到各种困难和障碍,但是通过自己的努力和团队合作,我最终克服了这些困难,成功地完成了实习任务。

这种解决问题的能力和团队合作精神将对我未来的学习和工作产生积极的影响。

总结起来,本次实习是一次非常有意义的学习和实践过程。

通过设计和实现一个贪吃蛇游戏,我不仅掌握了程序设计的基本原理和编程技巧,还锻炼了自己的解决问题和团队合作的能力。

我相信这次实习经历将对我未来的学习和工作产生积极的影响。

贪吃蛇的实训报告

贪吃蛇的实训报告

一、实训目的本次实训旨在通过设计并实现贪吃蛇游戏,巩固和加深学生对C语言程序设计的基本知识,提高学生的编程能力和实际动手操作能力。

通过实训,使学生能够熟练掌握C语言编程技巧,理解程序设计的基本思想和流程,同时培养学生的团队协作和问题解决能力。

二、实训内容1. 游戏规则贪吃蛇是一款经典的电脑游戏,玩家通过键盘控制蛇在游戏区域中移动,吃掉随机出现的食物。

蛇在吃掉食物后,长度会增加,得分增加。

如果蛇头撞到墙壁或自己的身体,游戏结束。

2. 游戏界面游戏界面由一个矩形区域组成,代表游戏区域。

蛇用一系列方块表示,食物用不同的颜色表示。

游戏开始时,蛇的长度为3,随机生成食物。

游戏过程中,蛇会根据玩家的输入移动。

3. 游戏逻辑(1)初始化:设置游戏区域大小、蛇的初始位置和方向、食物的初始位置等。

(2)游戏循环:不断检测玩家输入,更新蛇的位置,判断蛇是否吃到食物、撞到墙壁或自己的身体。

(3)游戏结束:当蛇撞到墙壁或自己的身体时,游戏结束。

4. 程序设计(1)数据结构:定义蛇、食物和游戏区域的数据结构。

(2)函数设计:设计初始化函数、移动函数、判断是否吃到食物函数、判断是否撞到墙壁或自己的身体函数等。

(3)主函数:调用相关函数,实现游戏循环。

三、实训过程1. 设计阶段首先,根据游戏规则和界面设计,确定游戏的数据结构和函数。

然后,编写程序代码,实现游戏的基本功能。

2. 编码阶段根据设计阶段的设计,使用C语言编写程序代码。

在编写过程中,注意代码的可读性和可维护性。

3. 调试阶段在编写代码过程中,不断调试程序,修复出现的错误。

调试过程中,注意观察程序运行情况,分析问题原因,并找出解决方案。

4. 测试阶段完成程序编写后,进行测试,确保程序能够正常运行。

测试过程中,注意观察游戏效果,确保游戏规则和界面设计符合预期。

四、实训成果通过本次实训,成功设计并实现了贪吃蛇游戏。

游戏运行稳定,功能完整,达到了实训目的。

五、实训心得1. 理解程序设计的基本思想和流程,掌握C语言编程技巧。

贪吃蛇项目个人总结

贪吃蛇项目个人总结

贪吃蛇项目个人总结
贪吃蛇项目是一个经典的游戏项目,对于个人的学习和编程能力提升有很大的帮助。

在我完成这个项目的过程中,我收获了许多经验和教训,下面是我的个人总结:
1. 学习了基本的游戏开发原理和技术。

贪吃蛇项目涉及到很多游戏开发的基本概念,
如游戏循环、碰撞检测、事件处理等。

通过实践这个项目,我深入了解了这些原理和
技术,并将它们应用到了实际项目中。

2. 锻炼了问题解决的能力。

在项目的开发过程中,我遇到了很多问题,比如游戏速度
控制、界面设计等。

通过分析问题、查找资料、尝试不同的解决方案,我逐渐学会了
如何解决这些问题,锻炼了自己的问题解决能力。

3. 加深了对面向对象编程的理解。

贪吃蛇项目中,我使用了面向对象的编程方式进行
开发,将蛇、食物、游戏界面等抽象为对象,通过它们之间的交互来实现游戏逻辑。

这样的开发方式使得代码结构清晰、易于维护,并且更符合现实世界的模型。

4. 体验了开发一个完整项目的过程。

在贪吃蛇项目中,我从项目的需求分析、设计到
最终的实现和测试,全程参与了整个项目的开发过程。

通过这个过程,我学会了如何
规划和组织一个项目,如何分配时间和资源,以及如何与团队成员合作。

综上所述,贪吃蛇项目对于个人的学习和成长有着很大的帮助。

通过这个项目,我不
仅学会了游戏开发的基本原理和技术,还提高了问题解决能力和面向对象编程的理解。

希望在未来的学习和工作中能够继续运用这些经验和技巧,不断提升自己的能力。

贪吃蛇实训报告个人总结

贪吃蛇实训报告个人总结

一、实训背景随着计算机科学技术的不断发展,C语言作为一种基础编程语言,在各个领域都有着广泛的应用。

为了巩固和加深对C语言课程的基本知识的理解和掌握,提高运用C语言解决实际问题的能力,我们进行了贪吃蛇实训。

二、实训目的1. 巩固和加深对C语言课程的基本知识的理解和掌握;2. 掌握C语言编程和程序调试的基本技能;3. 利用C语言进行基本的软件设计;4. 提高独立自主设计程序、编写代码的能力;5. 学会调试一个较长程序的基本方法;6. 掌握书写程序设计说明文档的能力。

三、实训内容1. 游戏规则:通过键盘方向键控制蛇的移动,吃掉随机出现的食物,蛇的长度会随之增加。

当蛇撞到墙壁或自己的身体时,游戏结束。

2. 程序设计:使用C语言进行贪吃蛇游戏的设计与实现,包括以下几个模块:(1)初始化模块:初始化游戏界面、蛇的位置、食物的位置等。

(2)绘图模块:使用图形库函数绘制蛇、食物、墙壁等元素。

(3)控制模块:根据键盘输入,控制蛇的移动方向。

(4)碰撞检测模块:判断蛇是否撞到墙壁或自己的身体。

(5)游戏逻辑模块:更新蛇的位置、食物的位置、蛇的长度等。

四、实训过程1. 理解游戏规则,明确程序设计思路。

2. 分析C语言基础知识,为编程做准备。

3. 编写程序代码,实现游戏的基本功能。

4. 调试程序,解决出现的问题。

5. 优化程序,提高程序运行效率。

6. 编写程序设计说明文档,总结实训经验。

五、实训心得与体会1. 通过本次实训,我对C语言的基本知识有了更深入的理解,掌握了C语言编程和程序调试的基本技能。

2. 在实训过程中,我学会了如何运用C语言进行基本的软件设计,提高了独立自主设计程序、编写代码的能力。

3. 通过调试程序,我学会了如何解决程序中出现的问题,提高了程序调试能力。

4. 编写程序设计说明文档,让我更加注重程序设计的规范性和可读性。

5. 本次实训让我认识到,编程不仅仅是编写代码,还需要考虑程序的结构、逻辑和可维护性。

贪吃蛇代码实训心得报告

贪吃蛇代码实训心得报告

一、实训背景随着计算机技术的飞速发展,编程已经成为一项非常重要的技能。

为了提高自己的编程能力,我参加了贪吃蛇代码实训。

通过这次实训,我对贪吃蛇游戏的编程有了更深入的了解,同时也锻炼了自己的编程思维和动手能力。

二、实训目标1. 熟悉C语言的基本语法和编程规范。

2. 掌握贪吃蛇游戏的设计与实现。

3. 培养团队协作和沟通能力。

三、实训内容1. 游戏设计:确定游戏规则、界面设计、功能模块划分等。

2. 代码编写:使用C语言实现游戏逻辑、图形界面、用户交互等。

3. 调试与优化:找出并修复代码中的错误,提高游戏性能。

四、实训过程1. 游戏设计在游戏设计阶段,我们首先明确了游戏规则:玩家通过键盘控制蛇的移动,吃掉食物使蛇变长,同时避免撞到墙壁和自己的身体。

游戏界面设计简洁,以蓝色背景和白色蛇身为主,食物用红色表示。

2. 代码编写在代码编写过程中,我们采用了模块化设计,将游戏分为以下几个模块:(1)主函数:初始化游戏环境,创建窗口,设置定时器等。

(2)蛇的移动:根据键盘输入控制蛇的移动方向,更新蛇的位置。

(3)食物的生成:随机生成食物位置,并在蛇吃到食物时更新食物位置。

(4)游戏结束判断:判断蛇是否撞到墙壁或自己的身体,如果发生碰撞则游戏结束。

(5)图形界面:使用图形库绘制蛇、食物和游戏界面。

3. 调试与优化在调试过程中,我们遇到了许多问题,如蛇的移动方向相反、食物生成位置不合理等。

通过查阅资料和团队合作,我们逐一解决了这些问题。

在优化方面,我们主要关注了以下两点:(1)提高游戏性能:通过减少不必要的计算和绘制,提高游戏运行速度。

(2)优化用户体验:调整游戏难度,使游戏更具挑战性。

五、实训收获1. 编程能力得到提升:通过编写贪吃蛇游戏,我熟悉了C语言的基本语法和编程规范,提高了自己的编程能力。

2. 编程思维得到锻炼:在游戏设计过程中,我学会了如何分析问题、设计算法和实现代码。

3. 团队协作能力得到提高:在实训过程中,我与团队成员共同解决问题,学会了沟通和协作。

贪吃蛇实验报告

贪吃蛇实验报告

贪吃蛇实验报告1. 引言贪吃蛇是一种经典的游戏,通过控制蛇的移动方向,吃掉食物来增长身体长度。

在本实验中,我们将实现一个贪吃蛇游戏,并对不同算法进行比较,以探讨最优的游戏策略。

2. 实验目的本实验的目的有以下几点:1.实现一个基于命令行的贪吃蛇游戏。

2.探讨不同的贪吃蛇算法,并比较其效果优劣。

3.分析贪吃蛇游戏的设计思路和实现细节。

3. 实验方法3.1 游戏实现使用Python编程语言,利用面向对象的思想实现贪吃蛇游戏。

游戏主要包括蛇的移动、食物随机生成、蛇身体增长等基本功能。

3.2 算法比较我们将比较以下两种贪吃蛇算法:1.贪心算法:每一步都选择离食物最近的方向。

2.最短路径算法:使用最短路径算法计算出到达食物的最短路径,并选择下一步的移动方向。

4. 实验结果在实际运行贪吃蛇游戏时,我们进行了以下几个实验:4.1 实验一:贪心算法在贪心算法中,蛇会选择离食物最近的方向进行移动。

我们对贪心算法进行了100次实验,并记录了每次游戏的得分。

结果显示,在100次实验中,贪心算法的平均得分为200。

4.2 实验二:最短路径算法最短路径算法使用最短路径计算来选择下一步的移动方向。

我们同样进行了100次实验,并记录了每次游戏的得分。

结果显示,在100次实验中,最短路径算法的平均得分为350。

5. 结论通过对贪心算法和最短路径算法的比较,我们可以得出以下结论:1.最短路径算法相对于贪心算法更加优越,其平均得分更高。

2.由于最短路径算法的计算复杂度较高,可能导致游戏运行速度变慢。

在进一步研究中,可以尝试更复杂的贪吃蛇算法,并优化算法的实现,以提高游戏的表现和用户体验。

6. 参考文献1.Python官方文档2.《算法导论》以上是本次贪吃蛇实验的报告,通过实验我们得出了最短路径算法在贪吃蛇游戏中的优越性,并提出了进一步研究的方向。

贪吃蛇实验报告实验心得(3篇)

贪吃蛇实验报告实验心得(3篇)

第1篇一、实验背景随着科技的不断发展,计算机编程已成为现代教育的重要组成部分。

贪吃蛇游戏作为一款经典的编程学习项目,不仅能够帮助学生掌握编程基础,还能提高学生的逻辑思维能力和编程实践能力。

本次实验,我选择了使用C语言编写贪吃蛇游戏,通过实验过程,我收获颇丰。

二、实验目的1. 熟悉C语言编程环境,掌握基本的语法和编程技巧。

2. 学习并应用数组和结构体等数据结构,提高编程能力。

3. 理解并实现贪吃蛇游戏的算法,提高逻辑思维能力。

4. 掌握游戏开发的基本流程,提高编程实践能力。

三、实验过程1. 需求分析:在实验开始前,我首先对贪吃蛇游戏进行了需求分析,明确了游戏的基本规则和功能。

游戏规则包括:蛇的移动、食物的生成、蛇的吃食、蛇的生长、游戏结束等。

2. 设计思路:根据需求分析,我制定了以下设计思路:- 使用二维数组表示游戏界面,数组中的每个元素代表一个格子,蛇、食物、墙壁等都在数组中用特定的值表示。

- 使用结构体表示蛇的各个部分,包括蛇头的位置、方向、长度等。

- 通过键盘输入控制蛇的移动方向。

- 使用循环和条件语句实现蛇的移动、食物的生成、蛇的吃食、蛇的生长等功能。

- 判断游戏结束的条件,如蛇头撞墙、撞到自己等。

3. 编程实现:在确定了设计思路后,我开始编写代码。

首先,我定义了二维数组表示游戏界面,并初始化蛇和食物的位置。

然后,编写了蛇的移动、食物的生成、蛇的吃食、蛇的生长等功能。

最后,编写了游戏结束的判断条件。

4. 调试与优化:在编程过程中,我遇到了一些问题,如数组越界、蛇头移动方向错误等。

通过查阅资料和调试,我逐步解决了这些问题。

在实验过程中,我还对代码进行了优化,提高了程序的运行效率。

四、实验心得1. 编程基础的重要性:通过本次实验,我深刻体会到编程基础的重要性。

只有掌握了基本的语法和编程技巧,才能在编程过程中游刃有余。

2. 逻辑思维能力:在编写贪吃蛇游戏的过程中,我需要不断思考如何实现游戏的各个功能,这锻炼了我的逻辑思维能力。

贪吃蛇代码实训心得报告

贪吃蛇代码实训心得报告

贪吃蛇代码实训心得报告前言贪吃蛇是一款经典的游戏,其简单的玩法和上瘾的乐趣一直深受大众喜爱。

在代码实训中,我选择了贪吃蛇作为我的项目,通过编写贪吃蛇的代码,我在实训过程中收获了很多知识和经验,本报告旨在总结我在实训中的收获和心得体会。

项目介绍我的贪吃蛇项目基于Python语言开发,通过使用Pygame库来实现游戏的图形界面。

在实现贪吃蛇游戏的过程中,我主要实现了以下几个功能:1. 绘制游戏界面2. 控制蛇的移动3. 检测蛇与食物的碰撞4. 判断游戏结束5. 计分系统收获与体会代码实践能力的提升通过编写贪吃蛇的代码,我对Python语言的理解更加深入了。

熟悉Python的语法和特性,对于编写代码来说是非常重要的。

通过实践,我掌握了Python程序的基本结构、函数的定义和使用、条件和循环语句等基础知识,并且能够灵活运用这些知识来解决实际问题。

另外,在代码实践中,我也意识到了代码规范的重要性。

良好的代码规范可以提高代码的可读性和可维护性,在开发过程中能够更加高效地协同工作。

因此,我在编写代码的过程中注意了命名规范、缩进格式以及注释的添加,以保证代码的可读性和可维护性。

协作能力的培养在实训中,我与同伴合作完成了这个项目。

通过合作,我学会了与人沟通协作的重要性。

我们合理分工,明确任务目标,并尽力去协调和解决问题。

通过充分的沟通和协作,我们相互之间可以更好地理解彼此的想法和意图,为项目的顺利完成做出了积极的贡献。

在项目中,通过与同伴一起编写代码,我学到了如何利用版本控制工具进行代码管理。

我们使用Git进行代码的版本管理,这样可以方便地和同伴分享和协同开发代码。

掌握了这一技能,对于今后的工作和学习都具有重要的意义。

解决问题的能力提升在项目开发过程中,我遇到了很多问题,例如蛇如何移动、如何检测碰撞等等。

通过仔细研究问题、查找资料、请教同伴和老师,我逐渐掌握了解决问题的方法和技巧。

我学会了如何分析问题、找出问题的根源,并提出解决问题的方案。

贪吃蛇小游戏实验报告[

贪吃蛇小游戏实验报告[

- 0 -软件设计报告设计题目: 贪吃蛇 目录一. 需求分析 二. 概要设计 三. 详细设计四. 心得体会一. 需求分析1.1关于题目 1.1.1题目要求(1)利用MicrosoftVisualC++制作一个贪吃蛇的小游戏, 要求:(2)应用MFC 单文档制作(3)能够记录游戏成绩学 院:专业班级:学生姓名:学生学号:指导教师:提交时间:成 绩:(4)可根据玩家要求设置游戏速度(级别): 初级, 中级, 高级可以根据个人喜好更换背景图片, 食物图片, 障碍物图片, 结束图片等1.1.2选题背景贪吃蛇是家喻户晓的益智类小游戏, 选择这个题目一是为了将自己的所学知识加以运用, 二是一直以来贪吃蛇这个游戏就深深地吸引着我们, 它的制作方法对于以前的我们而言都是很神秘的。

我们希望通过自己的所学知识把它剖析开来, 真真正正的了解它的本质和精髓。

虽然我们的编程能力不是很强, 但是我们有信心, 在这次学习中我们将从实践和实际的项目中提高自己的编程能力。

因此我们选定了这个题目。

1.2关于编译软件本程序采用Microsoft Visual C++6.0的英文版本进行编译。

VisualC++6.0是Microsoft公司推出的基于Windows操作系统的可视化C++编程工具, 尽管Microsoft公司推出了.NET平台的集成开发环境, 但由于其良好的界面和可操作性, 加上支持标准C/C++规范, 但仍有相当多的编程人员使用VisualC++6.0进行应用系统的开发。

- 1 -1.3关于兼容性本程序经过调试, 可以在XP系统下编译运行, 也可以在Vista下运行, 界面稍有不同, 但不影响运行结果。

二. 概要设计2.1软件主要功能设计2.1.1程序结构根据分析, 贪吃蛇这个程序一共要实现如下几个功能, 包括游戏方面开始游戏、停止游戏, 设置游戏级别(速度), 设置图片等。

具体的程序结构如下面的图1-1所示。

- 2 -图2-1 贪吃蛇结构图2.1.2程序流程根据分析后的贪吃蛇结构设计出相应的贪吃蛇流程。

贪吃蛇游戏实习报告

贪吃蛇游戏实习报告

实习报告:贪吃蛇游戏开发一、实习背景及目的随着科技的不断发展,计算机软件技术在人们的生活中扮演着越来越重要的角色。

为了提高自己的实际操作能力和对计算机软件技术的理解,我参加了贪吃蛇游戏开发实习项目。

本次实习旨在学习并掌握游戏开发的基本流程,培养自己的创新能力和团队协作精神。

二、实习内容与过程1. 需求分析在开始实习之前,我们首先对贪吃蛇游戏的需求进行了分析。

游戏需要实现基本的功能,如随机生成食物、控制蛇的移动、判断碰撞等。

此外,为了提高游戏的趣味性,我们还增加了如得分、游戏速度、游戏音乐等拓展元素。

2. 总体框架设计根据需求分析,我们制定了贪吃蛇游戏的总体框架。

游戏分为欢迎界面、游戏界面和游戏结束界面,同时设有开始键、暂停键和停止退出的选项。

为了实现双人模式,我们还在游戏中添加了得分和移动速度等拓展功能。

3. 算法学习与实现在实习过程中,我们学习了相关算法,如如何生成食物、蛇的移动、碰撞判断等。

为了实现双人模式,我们还研究了如何处理两个蛇的移动和碰撞。

通过对算法的深入理解,我们成功地将这些功能实现在游戏中。

4. 界面设计与实现为了提高游戏的用户体验,我们精心设计了游戏界面。

界面采用简洁明了的设计风格,方便玩家操作。

同时,我们还为游戏设置了丰富的音效和动画效果,增加了游戏的趣味性。

5. 拓展功能开发在完成基本功能的基础上,我们进一步开发了拓展功能。

如双人模式、得分系统、移动速度等。

这些功能的加入使得游戏更具挑战性和趣味性,让玩家在游戏中不断追求更高的分数。

三、实习收获与反思通过本次实习,我深刻体会到了游戏开发的乐趣和挑战。

在实习过程中,我学到了很多关于游戏开发的知识和技能,如算法实现、界面设计等。

同时,我还培养了团队协作精神和创新意识。

回顾实习过程,我认为自己在某些方面还有待提高。

如在开发过程中,我发现自己在代码组织和优化方面还有很大的提升空间。

此外,在团队协作方面,我也意识到沟通和交流的重要性。

贪吃蛇游戏设计实训报告

贪吃蛇游戏设计实训报告

一、摘要随着计算机技术的飞速发展,图形界面编程在计算机科学中占据着越来越重要的地位。

贪吃蛇游戏作为一款经典的益智游戏,不仅能够锻炼玩家的反应能力,还能培养编程思维。

本次实训以贪吃蛇游戏为背景,采用Java编程语言和Swing图形用户界面库进行设计,实现了游戏的基本功能,并对游戏性能进行了优化。

二、引言贪吃蛇游戏是一款简单易玩、老少皆宜的益智游戏。

玩家通过控制蛇的移动,吃掉食物使蛇身变长,同时躲避墙壁和自身,最终达到游戏目标。

本次实训旨在通过贪吃蛇游戏的设计与实现,提高学生的编程能力、图形界面设计能力和团队协作能力。

三、游戏设计1. 游戏界面设计游戏界面采用Swing图形用户界面库进行设计,主要包括以下部分:(1)游戏区域:用于显示蛇、食物和墙壁,采用JPanel组件实现。

(2)游戏菜单:包括开始游戏、重新开始、退出游戏等选项,采用JButton组件实现。

(3)游戏得分:显示当前得分,采用JLabel组件实现。

2. 游戏逻辑设计游戏逻辑主要包括以下部分:(1)蛇的移动:根据玩家输入的方向键控制蛇头的移动,实现蛇的实时更新。

(2)食物的生成:随机生成食物,当蛇头吃到食物时,蛇身变长,同时增加得分。

(3)墙壁和自身碰撞检测:当蛇头触碰到墙壁或自身时,游戏结束。

(4)游戏得分:根据蛇头吃到的食物数量计算得分。

四、关键技术实现1. 蛇的移动蛇的移动通过监听键盘事件实现。

在键盘事件监听器中,根据按键的方向更新蛇头的坐标,然后重新绘制蛇身。

2. 食物的生成食物的生成采用随机算法实现。

首先生成一个随机坐标,然后判断该坐标是否在游戏区域内,如果不在则重新生成。

3. 碰撞检测碰撞检测包括墙壁碰撞和自身碰撞。

在蛇头移动时,判断蛇头的坐标是否超出游戏区域边界,或者与自身坐标相同,若满足任一条件,则游戏结束。

4. 游戏得分游戏得分通过计算蛇头吃到的食物数量实现。

每吃到一个食物,得分加1。

五、性能优化1. 游戏速度优化:通过调整蛇的移动速度和食物生成的速度,使游戏节奏更加紧凑。

贪食蛇游戏实习报告

贪食蛇游戏实习报告

贪吃蛇游戏开发一、需求分析1、该贪吃蛇设计主要具有吃食、暂停、开始以及重新开始游戏。

2、主要目标:本游戏实现贪吃蛇在制定空间去吃随机出现的方块。

游戏可以暂停,如不满意这一次游戏的成果还能重新开始游戏。

二、项目设计1、流程设计程序流程图2、游戏具体设计:(1) 蛇移动的实现蛇的移动方向主要受头结点控制,所以每次画蛇时只要把前一结点的值赋给后一节点即可。

当蛇头的移动方向向右时,y 值不变x 的值不断增加。

当蛇头的移动方向向左时,y 值不变x 的值不断减少。

当蛇头的移动方向向下时,y 值增加x 的值不变。

当蛇头的移动方向向上时,y 值减小x 的值不变。

(2) 蛇死亡的判断当蛇头的值与蛇身或与墙的值相等时,蛇即算死亡.(3)蛇到达边框时从另一端出现和传送的实现当蛇头的x 或y 值达到边框的最大或最小位置时相应的给x 或y 赋以边框的最小或最大值以实现当蛇到达边框时能从另一端出来,同理当蛇头的x,y 值等于传送点位置的值时将蛇头x,y 的值赋以被传送到位置的值,这样将实现蛇的传送功能。

三、项目实现①蛇身颜色、最大长度及速度int speed;//设置蛇的速度int maxLen;//设置蛇的最大长度②随机生成食物产生随机种子:qsrand(QTime().currentTime().msec());定义食物的坐标、形状及颜色:int mx = (qrand()%(w/20))*20;int my = (qrand()%(h/20))*20;food = new QLabel(this);food->move(mx,my);food->resize(20,20);//食物大小food->setAutoFillBackground(true);//设置食物自动填充背景颜色food->setFrameShape(QFrame::Box);//设置形状food->setFrameShadow(QFrame::Sunken);food->setPalette(QPalette(QColor(qrand()%255,qrand()%110,qrand()%255)));//改变调色板的颜色return food;③方向控制及按键事件处理方向控制:switch(d){case d_up:nheady-=speed;break;case d_down:nheady+=speed;break;case d_left:nheadx-=speed;break;case d_right:nheadx+=speed;break;}按键事件处理:void snake::keyPressEvent(QKeyEvent *f){if(f->key()==Qt::Key_Up){d=d_up;}else if(f->key()==Qt::Key_Down){d=d_down;}else if(f->key()==Qt::Key_Left){d=d_left;}else if(f->key()==Qt::Key_Right){d=d_right;}}④食物的显示与蛇吃食物食物显示:data.push_back(getFood());//将吃到的食物添加在蛇身之后timer = new QTimer();//初始化时钟timer->setInterval(400);//设置时钟周期timer->start();connect(timer,SIGNAL(timeout()),this,SLOT(move()));//传递信号food = getFood();food->show();蛇吃食物:if((nheadx==foodx)&&(nheady==foody)){data.push_back(food);food = getFood();food->show();}游戏截图1游戏截图2游戏截图3游戏截图4⑤游戏结束条件if(data.size()>=10){QMessageBox msg(this);msg.setText("game over!");msg.setStandardButtons(QMessageBox::Yes|QMessageBox::No);msg.show();if(msg.exec()==QMessageBox::Yes){this->close();}}四、总结经过10天的培训,让我进一步熟悉了Linux系统下命令的使用、文件的编写与调试,更熟悉了以前所学的C++语言,让我对我所学习的计算机更加了解喜欢,也更加希望自己能学好计算机方面的设计,去设计更多有意思的游戏。

贪吃蛇游戏实验报告

贪吃蛇游戏实验报告

*****************实验报告实验名称: 网络编程基础实训教程(贪吃蛇)指导教师:姓名:学号:班级:提交日期:1.实验目的通过开发一款贪吃蛇游戏程序, 熟练掌握C#编程语言、和面向对象程序设计方法, 独立完成一个游戏程序的开发。

2.实验题目使用C#编程语言, 开发一款贪吃蛇游戏, 如下图所示。

3.功能描述a)游戏场地是一片矩形区域的草坪。

b)一条蛇由蛇头和蛇身组成。

c)当游戏开始之后, 草坪中出现一颗豆和一条蛇, 并且蛇不停地移动, 蛇移动方向与蛇头一致。

d)当游戏暂停之后, 蛇停止移动。

e)当蛇移动时, 玩家使用“↑”、“↓”、“←”和“→”四个键控制蛇的移动方向。

f)当蛇头与豆的位置重合时, 豆被蛇吃掉, 同时在草坪中再生成一颗新的豆, 蛇身增加一节。

当蛇头碰到蛇身时, 则咬断蛇身, 后半部分的蛇身消失。

当蛇头碰到草坪四周时, 蛇立即毙命, 游戏结束。

4.需求分析根据功能描述可知, 贪吃蛇游戏的系统结构图如下所示。

1)定义数据字典如下:2)草坪(Lawn): 草坪是贪吃蛇游戏的场地。

豆和蛇只能存在于草坪范围之内。

草坪具有大小和颜色等属性。

蛇(Snake):在贪吃蛇游戏中, 蛇由若干节组成, 其中第一节是蛇头, 其余是蛇身。

在游戏过程中, 有且仅有一条蛇, 并且蛇在不停地移动。

如果蛇吃了豆, 则蛇生长一节。

如果蛇头碰到蛇身, 则咬断蛇身, 后半部分的蛇身消失。

如果蛇头离开草坪, 则蛇死亡游戏结束。

蛇具有长度、颜色、运动方向、每一节的位置等属性。

豆(Bean):在贪吃蛇游戏中, 豆是蛇的食物。

在游戏过程中, 有且仅有一颗豆。

如果蛇吃了豆, 则重新生成一颗豆。

豆具有位置、大小和颜色等属性。

5.设计说明根据需求分析可知, Snake的每一节都有位置和大小等属性。

而Bean也具有这两个属性。

抽象出二者的共同特征, 抽象出一般类Block, 用于描述一个块。

Block派生出Bean和SnakeBlock两个类, 其中SnakeBlock类用于描述蛇的一节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

郑州轻工业学院实训报告实训名称:贪吃蛇指导教师:姓名:学号:班级:提交日期:一.实验目的通过开发一款贪吃蛇游戏程序,熟练掌握C#编程语言、和面向对象程序设计方法,独立完成一个游戏程序的开发。

二.实验题目本次实训的题目为贪吃蛇。

通过使用C#编程语言来实现。

三.功能描述1.游戏的基本功能描述1)游戏场地是一片矩形区域的空地构成,蛇可以在这片定义的区域中自由移动。

2)定义一个Block来构成石块,蛇头,蛇身以及豆。

蛇由蛇头和蛇身组成。

3)当游戏开始之后,定义的区域中出现一颗豆和一条蛇,并且蛇不停地移动,蛇移动的方向与蛇头的方向一致。

4)通过space或者暂停键可以使游戏停止,蛇停止移动,分数停止积分。

5)当蛇移动时,玩家可以使用“↑”、“↓”、“←”和“→”四个方向键改变蛇的移动方向。

6)当蛇头与豆的位置重合时,豆被蛇吃掉,同时在草坪中再生成一颗新的豆,蛇身增加一节。

7)当蛇头碰到石块时,蛇死亡,游戏结束。

8)当蛇头咬到蛇身时,则蛇死亡,游戏结束。

9)当蛇头碰到草坪四周时,蛇立即毙命,游戏结束。

10)游戏分为不同的级别,第一关游戏速度为200,当蛇吃五个豆子就可以过关,级别显示为2,速度增加100变为300.第二关为吃够10个豆子,速度增加50,以后以此类推。

11)游戏菜单中设有游戏帮助,玩家可以通过点击帮助了解游戏的玩法。

12)对于不是第一次玩的玩家可以改变蛇的运动速度,来增加难度。

在菜单中设有加速和减速两个键,单击可以改变速度。

13)游戏菜单中还有时间显示。

14)当游戏暂停时,可以通过“继续”键使游戏继续进行。

四.需求分析本游戏用户可以自己练习和娱乐。

本游戏需要满足以下几点要求:(1)利用方向键“↑、↓、←、→”来改变蛇的运行方向。

(2)空格键暂停游戏,并在随机的地方产生食物。

(3)吃到食物就变成新的蛇体,碰到壁或自身则游戏结束,否则正常运行。

可行性分析:贪吃蛇游戏是一种简单的大众的游戏,自从计算机实现以来,深受广大电脑玩家的喜爱,做一个简单的贪吃蛇小游戏。

贪吃蛇的核心算法是如何实现蛇的移动和吃掉食物后如何变成新的蛇体。

没有碰到食物的时候,把当前运动方向上的下个节点入队,并以蛇节点的颜色绘制这个节点,然后把头指针所指的节点出队,并以游戏框架内部背景色重绘出队的节点,这样就可以达到移动的效果。

而在吃到食物的时候,则只需把食物入队即可。

实现贪吃蛇的基本的蛇身移动、吃到食物身体增长、和碰到墙壁或自身死亡,能够暂停和开始。

玩家可以根据自己的水平选择不同的级别进行游戏挑战。

贪吃蛇游戏中定义如下:1) 空白区域(Lawn):定义的区域是贪吃蛇游戏的场地。

豆、石头和蛇只能存在于空白区域的范围之内。

根据个人爱好还可以添加背景,改变区域的大小和颜色。

2) 蛇(Snake):在贪吃蛇游戏中,蛇由若干节组成,其中第一节是蛇头,在蛇头上面定义两个点,作为蛇的眼睛,其余是蛇身。

在游戏过程中,有且仅有一条蛇,并且蛇在不停地移动。

如果蛇吃了豆,则蛇生长一节。

如果蛇头碰到蛇身,蛇死亡,游戏结束。

如果蛇头离开所定义的区域,则蛇死亡游戏结束。

当蛇头撞到定义的石块上的时候游戏结束。

在定义蛇的时候可以改变蛇的初始长度,也可以改变蛇的颜色和大小。

3) 豆(Bean):在贪吃蛇游戏中,豆是蛇的食物。

在游戏过程中,有且仅有一颗豆。

如果蛇吃了豆,则重新生成一颗豆。

豆的出现是随机性的。

4)石块(stone):游戏中石块和豆是同时出现的,不同的是,豆是随机产生的,而石块是固定的,它的坐标在写代码的时候就定义好了,不能够改变。

它的大小和颜色也可以随便的改变。

5)菜单(MenuStrip):在贪吃蛇游戏中有游戏菜单,里面有开局、暂停、继续、加速、减速、帮助等菜单。

还有Label控件,显示速度、时间、日期和积分的。

五.设计说明Snake的每一节都有位置和大小等属性。

而Bean和stone也具有这两个属性。

抽象出这三者的共同特征,抽象出一般类Block,用于描述一个块。

Block派生出Bean和SnakeBlock两个类,其中SnakeBlock 类用于描述蛇的一节。

为了使游戏的运行更易于控制,定义Game类用于启动、暂停和继续游戏。

根据需求分析可知,Lawn仅包含大小和颜色两个属性。

为了减少类的数量,可将其大小和颜色等属性添加到Game类中。

综上所述,在贪吃蛇游戏中,有Block(块)、Bean(豆)、SankeBlock (节)、Snake(蛇)、Game(游戏)和MainForm(用户接口)六个类。

游戏逻辑构思图如下:重新开局游戏的设计如下:游戏菜单游戏图标及名称石块速度显示成绩显示级别显示日期及时间显示游戏的定蛇身豆子六.源代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFormsApplication1{public partial class MainForm : Form{int a = 200;//定义初速度为200private Game game;//DateTime c;public MainForm(){InitializeComponent();game = new Game(lawn.Width, lawn.Height);timer1.Enabled = true;timer1.Interval = a;timer1.Enabled = false;Velocity.Text = a.ToString();}Block是用来构成Bean(豆)和Snake(蛇)还有Stone(石块)的最基本的单位,是Bean和SnakeBlock的基类。

Block类的参考代码如下。

class Block{protected Point origion; //Block的左上顶点public const int WIDTH = 10; //Block的宽度public const int HEIGHT = 10; //Block的高度protected Color color; //Block的颜色public Block(){origion = new Point(0, 0);color = new Color();}public Block(int x, int y, Color _color){origion = new Point(x, y);color = _color;}public Point Origion{get{return origion;}}public void Display(Graphics g){SolidBrush brush = new SolidBrush(color);g.FillRectangle(brush, origion.X, origion.Y, WIDTH, HEIGHT);Pen pen = new Pen(Color.Black);g.DrawRectangle(pen, new Rectangle(origion.X, origion.Y, WIDTH - 1, HEIGHT - 1));}public void Clear(Graphics g, Color backGroundColor){SolidBrush brush = new SolidBrush(backGroundColor);g.FillRectangle(brush, origion.X, origion.Y, WIDTH, HEIGHT);}}这是对豆的定义,是由Block派生而来的,在系统开始时,使豆产生,它的出现位置为随机生成。

其代码如下:class Bean : Block{public static int f = 0;//吃到豆子的个数public Bean(Color _color){origion = new Point(0, 0);color = _color;}public void Creat(Graphics g, Color backGroundColor, int lawnWidth, int lawnHeight, Snake snake){Clear(g, backGroundColor);bool bGetAPosition = false; //是否找到生成豆的位置Random random = new Random();while (!bGetAPosition){origion.X = random.Next(0, lawnWidth - 1) / WIDTH * WIDTH;origion.Y = random.Next(0, lawnHeight - 1) / HEIGHT * HEIGHT;int i;for (i = 0; i < snake.Length; i++){if (origion == snake.blocks[i].Origion)break;}if (i == snake.Length)bGetAPosition = true;}Display(g);f++;}new public void Display(Graphics g){SolidBrush brush = new SolidBrush(color);g.FillRectangle(brush, origion.X, origion.Y, WIDTH, HEIGHT);Pen pen = new Pen(Color.Black);g.DrawRectangle(pen, new Rectangle(origion.X, origion.Y, WIDTH - 1, HEIGHT - 1));}//Display(g);}SnakeBlock表示蛇的一节,是由Block派生而来的。

它组成蛇身,其代码如下所示:class SnakeBlock : Block{private bool isHead;public bool IsHead{get{return isHead;}public SnakeBlock(int x, int y, Color _color, bool _isHead){origion = new Point(x, y);color = _color;isHead = _isHead;}public void ChangeHeadToBody(){if (isHead)isHead = false;}public void Display(Graphics g, Direction direction){base.Display(g);if (isHead){//绘制蛇眼SolidBrush brush = new SolidBrush(Color.Black);switch (direction){case Direction.Up:case Direction.Down:g.FillRectangle(brush, origion.X + WIDTH / 4, origion.Y + HEIGHT / 2, 2, 2);g.FillRectangle(brush, origion.X + WIDTH / 4 * 3, origion.Y + HEIGHT / 2, 2, 2);break;case Direction.Left:case Direction.Right:g.FillRectangle(brush, origion.X + WIDTH / 2, origion.Y + HEIGHT / 4, 2, 2);g.FillRectangle(brush, origion.X + WIDTH / 2, origion.Y + HEIGHT / 4 * 3, 2, 2);break;}}}}控制蛇头运动的方向public enum Direction{Down,Left,Right};对蛇的编码也是由Block派生而来的,在这里面可以定义蛇的颜色和长度。

相关文档
最新文档