




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VC#.NET的贪吃蛇游戏的开发与设计基于VC#.NET的贪吃蛇游戏的开发与设计姓名:*锦超 学号:* 班级:软件*班 指导教师:程铭 完成日期:2011年6月24日星期五目录一、 实验目的2二、 实验任务与要求22.1实验内容22.2实验要求22.3实验环境2三、 设计方案23.1程序功能33.2设计思想33.3设计总体流程图43.4设计的具体实现5四、 程序测试104.1测试内容与结果104.2程序运行效果图13五、 实验总结16参考文献17附录17 附录A:主要源程序17 附录B:软件使用说明书28基于VC#.NET的贪吃蛇游戏的开发与设计一、 实验目的1.1复习、VC#.NET的基
2、础知识,进一步加深对VC#.NET技术的理解和掌握;1.2课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题 的能力。1.3培养学生在项目开发中团队合作精神、创新意识及能力。二、 实验任务与要求2.1实验内容贪吃蛇游戏开发,首先它可以为大家提供一种当前比较流行的休闲小游戏。贪吃蛇是家喻户晓的益智类小游戏,选择这个题目一是为了将自己的所学知识加以运用,二是一直以来贪吃蛇这个游戏就深深地吸引着很多人,它的制作方法对于很多同学而言都是很神秘的。所以我们希望通过这学期所学知识把它剖析开来,真真正正的了解它的本质和精髓。在这次学习中我
3、们将从实践和实际的项目中提高自己的编程能力。因此决定选择这个题目作为VC#.NET的课程设计。最后一部分就是游戏的模块划分,根据分析,贪吃蛇这个程序一共要实现如下几个功能,包括游戏方面开始游戏、暂停游戏以及停止游戏,游戏设置(蛇的颜色、食物的颜色、游戏难度设置),游戏帮助(游戏控制说明)与积分。 2.2实验要求1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用,采用模块化程序设计方法,编程简练、可用,功能全面;3)说明书、流程图要清楚;4)记录设计情况(备查,也为编写设计说明书作好准备);2.3实验环境Wi
4、ndowsXP操作系统,VS.NET2005开发环境。三、 设计方案3.1程序功能1)游戏选项:主要实现游戏的开始、暂停、退出,分别可以使用快捷键F2、空格键、F4。2)设置:a) 游戏难度等级设置:初级、中级、高级三个难度等级,每个难度等级又实现了三级加速,主要包括一级加速、二级加速、三级加速;b) 蛇体颜色设置:绿色、红色、蓝色、黑色四种颜色可以选择;c) 蛇体宽度设置:初始大小、放大两倍、放大三倍三种选择;d) 食物颜色设置:橙色、黄色、紫色三种颜色可以选择。3)帮助:游戏操作说明,可以使用快捷键F3打开,主要介绍游戏的操作方法、以及版本信息、制作时间。3.2设计思想1) 贪吃蛇的游戏规
5、则:蛇头不能反向移动,若反向则保持原来的运动方向不变;不能碰到场地四周和自身,若碰到到四周墙壁或者自身,则游戏结束;当吃到食物后,应在随机生成一个新的坐标产生食物,并且食物不能再蛇身内生成;选择相应的游戏难度等级,当分数累加到一定程度以后,速度增加,每个等级有分为三个加速阶段。2) 游戏场地的绘制:将panel控件设计为游戏的背景,场地、贪吃蛇以及食物都是在panel控件中完成绘制。3) 蛇身和食物的绘制:本实验主要使用Graphics类在panel控件中绘制游戏的场地以及贪吃蛇、食物,食物模块、蛇身各模块的绘制是在单元格中进行绘制的,这样蛇身移动和食物生成过程中不需要重新绘制背景;根据蛇身模
6、块宽度,可以改变蛇体的大小和场地坐标图方格的大小;根据食物类和蛇类各自的颜色变量,再通过菜单来改变其相应的颜色。4) 游戏的动态刷新控制:使用Timer组件来实现贪吃蛇的移动,通过设置该组件的Interval属性大小来控制移动的速度。5) 蛇身移动的实现:蛇身的移动主要是用ArrList类来实现的,该类的主要功能是使用大小可以根据需要动态增加数组,即建立动态数组来存储蛇身,本实验主要使用ArrList类的Insert方法和RemoveAt方法实现蛇模块的增加、蛇体移动的清除移动尾部。3.3设计总体流程图程序结构图:程序流程图打开游戏主界面开始游戏判断游戏是否在进行中退出游戏设置游戏操作说明难度
7、等级设置设置蛇体颜色设置设置蛇体宽度设置食物颜色设置关闭游戏界面否初始化游戏场景蛇开始向左移动通过键盘操作来控制蛇的移动方向判断蛇头和食物的坐标是否重合蛇吃下食物,身体增加一个模块,分数增加5分,随机生成下一个食物是游戏结束判断蛇头移动是否反向否是确定是否退出游戏否是是判断蛇头是否和自身和墙壁相撞是否否游戏暂停取消暂停3.4、设计的具体实现1) 游戏界面设计:主要是使用panel1控件设计为游戏的背景,添加菜单项目,积分显示Label2,用于聚焦的TextBox1控件,菜单控件meuStrip1控件和Timer1控件,如下图所示:2) 创建一个Snake类:a) 在Snake类中定义全局变量/
8、设置蛇体模块大小public static int SnakeBone =10;/设置方向 public static int Direct=0;/设置蛇体各模块的位置public static Point Place=new Point(-1,-1),new Point(-1,-1),new Point(-1,-1),new Point(-1,-1),new Point(-1,-1); /是否有食物,有食物为true public static bool hasFood = false;/游戏是否结束,游戏结束为true public static bool isGame = false;
9、/场地的宽度、长度public static int Field_with = 0;public static int Field_length= 0; /记录绘制贪吃蛇的控件public static Control control; /记录Time组件public static Timer timer; /设置贪吃蛇身体颜色public static SolidBrush SolidSnake = new SolidBrush(Color.Green); /设置背景颜色public static SolidBrush SolidBack =new SolidBrush(Color.Gree
10、n); /记录label控件public static Label label; /实例化一个ArrayList数组public static ArrayList List = new ArrayList(); Graphics g;/实例化 Graphics类/实例化Food类Food food = new Food();b) 定义贪吃蛇的起始位置和游戏场地初始化GamePlaceSet()函数:主要实现蛇的初始位置,以及游戏场地的初始化。public void GamePlaceSet(Control con,int Bone)代码具体实现见附录A的Snake类中c) 蛇的移动方法Snak
11、eMove()函数:主要实现蛇体的移动,每移动一次需要判定是否反向,如果反向则记录下来,原来移动方向不变,还需要判断是否游戏结束,如果没有结束则重新绘制蛇体,吃东西,绘制食物。public void SnakeMove(int N, Form1 control1)代码具体实现见附录A的Snake类中d) 判断蛇是否反向方法EstimateMove()函数:用于判断贪吃蛇的移动方向是否向相反的方向移动,如果方向移动则返回false。public bool EstimateMove(Point ES)代码具体实现见附录A的Snake类中。e) 判断游戏是否结束GameEnd()函数:主要实现判断蛇
12、体是否和自身、四周墙壁是否相撞,如果相撞则游戏结束。public bool GameEnd(Point GE)代码具体实现见附录A的Snake类中。f) 吃东西Eatefood()函数:主要实现贪吃蛇吃东西,没吃到一个食物,分数加5,当分数达到一定程度时候需要判断是否加速,这里主要实现蛇的三级加速,包括一级加速、二级加速、三级加速。public void Eatefood(Form1 control1)代码具体实现见附录A的Snake类中3) 创建一个Food类:a) 定义全局变量/设置食物颜色public static SolidBrush SolidFood = new SolidBrus
13、h(Color.Orange); /食物坐标的初始化 public static Point FoodPoint = new Point(-1, -1);b) 随机生成坐标方法RectPoint()函数:用Random类随机生成随机的纵坐标和横坐标,用返回Point结构public Point RectPoint(Control pon) 代码具体实现见附录A的Food类中。c) 生成食物方法Buildfood()函数:没有食物的时候需要生成食物,生成食物的位置不能和蛇体重叠,如果重叠则重新获取随机坐标。public void Buildfood(bool hasFood, Control c
14、on) 代码具体实现见附录A的Food类中。4) MainForm窗体功能实现a) 定义全局变量/用于设置贪吃蛇的速度public int speed=350; /用于游戏是否开始 public static bool ifStart=false; /用于游戏是否暂停,游戏暂停为true public static bool pause =true; /实例化Snake类 Snake snake = new Snake();/实例化Food类 Food food = new Food();b) 绘制游戏场景单元格的绘制:主要实现panel1控件中单元格绘制。 public void Protr
15、actTable(Graphics G) 代码具体实现见附录A的MainForm窗体的主要代码中。c) 在panel1控件里初始化游戏场地方法panel1_Paint()函数:主要实现panel1控件中绘制蛇和食物,以及游戏的是否结束的判断。private void panel1_Paint(object sender, PaintEventArgs e) 代码具体实现见附录A的MainForm窗体的主要代码中。d) 游戏开始、暂停、退出实现:选择开始,贪吃蛇在游戏场地运行;暂停选项只在贪吃蛇移动可以使用,其他情况下处于无效状态;退出选项只用当游戏处于非运行状态起作用,退出游戏并且添加了判断。
16、/开始private void 开始F2ToolStripMenuItem_Click(object sender, EventArgs e)/暂停private void 暂停SpaceToolStripMenuItem_Click(object sender, EventArgs e)/退出private void 退出F4ToolStripMenuItem_Click(object sender, EventArgs e)/控制游戏的开始、暂停、和退出 public void NoviceControl(int n)代码具体实现见附录A的MainForm窗体的主要代码中。e) 游戏等级实
17、现:主要分为初级、中级、高级三个级别,分别设置相应的刷新时间,并且限制只能在游戏结束运行和开始没有开始游戏时可以设置。/初级 private void 初级ToolStripMenuItem_Click_1(object sender,EventArgs e)/中级private void 中级ToolStripMenuItem_Click(object sender, EventArgs e)/高级private void 高级ToolStripMenuItem_Click(object sender, EventArgs e)代码具体实现见附录A的MainForm窗体的主要代码中。f) 游
18、戏键盘操作游戏键盘操作:主要实现游戏的开始、暂停、退出,分别可以使用快捷键F2、空格键、F4,游戏操作说明用F4键打开;贪吃蛇移动方向操作:右移按键或D键,左移按键或A键,上移按键或W键,下移按键或S键。/键盘操作设置private void Form1_KeyDown(object sender, KeyEventArgs e) 代码具体实现见附录A的MainForm窗体的主要代码中。g) 蛇体颜色和食物颜色设置实现:主要实现蛇的四种颜色设置和食物的三种颜色设置,并且限制只能在游戏结束运行和开始没有开始游戏时可以设置。/ 蛇体颜色设置private void 绿色ToolStripMenuI
19、tem_Click(object sender, EventArgs e)private void 红色ToolStripMenuItem_Click(object sender, EventArgs e)private void 蓝色ToolStripMenuItem_Click(object sender, EventArgs e)private void 黑色ToolStripMenuItem_Click(object sender, EventArgs e)/食物颜色设置private void 橙色ToolStripMenuItem_Click(object sender, Even
20、tArgs e)private void 黄色ToolStripMenuItem_Click(object sender, EventArgs e)private void 紫色ToolStripMenuItem_Click(object sender, EventArgs e)代码具体实现见附录A的MainForm窗体的主要代码中。h) 蛇体宽度放大实现:主要实现蛇体宽度的大小蛇置,同时相应放大单元格的宽度,并且限制只能在游戏结束运行和开始没有开始游戏时可以设置。private void 初始大小ToolStripMenuItem_Click(object sender, EventArgs
21、 e)private void 放大两倍ToolStripMenuItem_Click(object sender, EventArgs e)private void 放大三倍ToolStripMenuItem_Click(object sender, EventArgs e)代码具体实现见附录A的MainForm窗体的主要代码中。i) 打开帮助:主要是想打开游戏操作说明窗体,并且限制只能在游戏结束运行和开始没有开始游戏时可以设置。private void 游戏操作说明F3ToolStripMenuItem_Click_1(object sender, EventArgs e)j) timer
22、1_Tick的触发事件:主要实现在一定的时间间隔内调用SnakeMove()函数,实现蛇的动态移动。private void timer1_Tick(object sender, EventArgs e) 代码具体实现见附录A的MainForm窗体的主要代码中。四、 程序测试4.1、测试内容与结果1) 贪吃吃东西的测试,测试贪吃蛇是否吃到食物时,显示累加分数。出现的问题:出错提示存储蛇坐标的类型不匹配,积分始终为0。问题解决分析:的尾部添加蛇身的List.Add(List.Count - 1)修改为 List.Add(ListList.Count - 1),前者存储的只是一个整型的数,并非一个
23、数组元素。2) 贪吃蛇速度的控制设置测试,测试蛇的速度控制是否合理,是否便于操作,如何实现蛇的加速移动功能。出现的问题:蛇的速度过快,难度级别秩序颠倒,不能实现自动加速。问题解决与分析:为了解决此问题,需要将蛇的速度统一化,只在MainForm窗体代码中之定义一个控制素的的变量,通过参数传递到Snake类中的吃东西Eatefood(Form1 control1)函数中,在定义两个中间变量m,n,分别记录传递过来的分数和速度,代码具体实现如下:int m,n; /记录分数和速度 if (Point)List0)=Food.FoodPoint)/如果蛇头吃到了食物 List.Add(ListLis
24、t.Count - 1);/在蛇的尾部添加蛇身 hasFood = false;/没有食物 food.Buildfood(hasFood, control);/生成食物 m = Convert.ToInt32(label.Text); if (m=10)/积分为10时加速 n = control1.speed - 50; timer.Interval = n; label.Text = Convert.ToString(m + 5);/显示当前分数 g.DrawString(一级加速中, new Font(宋体, 15, FontStyle.Bold), new SolidBrush(Colo
25、r.Green), new PointF(180, 30); else if (m = 20)/积分为20时加速 g.FillRectangle(Snake.SolidBack, 0, 0, control.Width, control.Height); control1.ProtractTable(g); g.DrawString(二级加速中, new Font(宋体, 15, FontStyle.Bold), new SolidBrush(Color.Blue), new PointF(180, 30); n = control1.speed - 100; timer.Interval =
26、 n; label.Text = Convert.ToString(m + 5);/显示当前分数 else if (m = 30)/积分为30时加速 g.FillRectangle(Snake.SolidBack, 0, 0, control.Width, control.Height); control1.ProtractTable(g); g.DrawString(三级加速中, new Font(宋体, 15, FontStyle.Bold),new SolidBrush(Color.Red), new PointF(180, 30); n = control1.speed - 150;
27、timer.Interval = n; label.Text = Convert.ToString(m + 5);/显示当前分数 else label.Text = Convert.ToString(Convert.ToInt32(label.Text) + 5); 3) 贪吃蛇宽度放大测试,主要测试单元格划分是否合理。出现的问题:在放大或者缩小蛇体宽度的时候,单元格明显无法均匀划分,食物也无法对齐到单元格,导致蛇无法吃到。问题解决与分析:首先调整窗体设计,使panel1控件的宽高都是是蛇体宽度的倍数,锁定窗体,其次将食物单独建立一个类Food,这样可以实现每次调用食物生成函数Buildfoo
28、d()函数就可以实现每次放大或者缩小蛇宽度时候重新获取随机生成的食物坐标,不会在保留上次随机生成的结果而造成的食物也无法对齐到单元格。4) 食物的生成位置测试,主要测试食物随机生成的坐标是否和蛇体重叠。问题出现:总是出现随机生成的食物和蛇体重叠的现象,无法得到识别,蛇头仍然可以顺利吃到食物。问题解决与分析:主要循环语句判定条件逻辑上的问题,对食物重叠的判断标志写在了for循环里边去了,导致无法识别食物与蛇体重叠,代码修改如下:Point tem_p = new Point(-1, -1);/定义坐标结构 bool tem_bool = false;/计算出食物的位置位true,否则为false
29、 while (!tem_bool)/计算显示食物的位置 bool tem_b = false;/用于确定生成的食物 是否和蛇体重叠 tem_p = RectPoint(con);/随机生成食物的位置 for (int i = 0; i Snake.List.Count; i+) /如果随机生成的食物和蛇体重叠 if (Point)Snake.Listi = tem_p) tem_b = true; /记录重叠 break; /重叠则停止for循环 if (tem_b = false)/如果食物和蛇体没有重叠 tem_bool = true;/计算出食物的位置位true,否则为false br
30、eak; FoodPoint = tem_p;/记录食物的显示位置5) 菜单控制操作的设置测试,主要测试菜单是否使用灵活,是否符合一般游戏的要求,游戏在运行中,某些菜单是否还起作用。问题的出现:暂停菜单选项,除了在游戏运行状态起作用,在其他状态也起作用;游戏设置选项和游戏操作说明选项在游戏进行中也起作用。问题分析与解决:游戏暂停函数设置限定条件,只允许暂停在蛇体移动时候才可以使用;在游戏设置选项和游戏操作说明选项的方法实现过程函数中添加限制条件,只允许游戏非运行状态下可以使用,即游戏界面刚启动和游戏结束状态,其他状态不可以使用。4.2 、程序运行效果图1) 启动游戏界面2) 游戏运行3) 游戏
31、设置a) 难度等级设置为中级b) 蛇体颜色设置红色c) 蛇体宽度设置放大三倍d) 食物颜色设置紫色运行结果如下图所示:4) 帮助游戏操作说明入下图所示5) 游戏结束蛇头撞墙游戏结束如下图所示:蛇体相撞自身游戏结束如下图所示:6) 退出游戏关闭五、 实验总结通过这次课程设计,我对这学期所学的VC#.NET语言程序设计有一个更深刻的了解,将所学的知识应用于实践,由于所学知识有限,为了使游戏能够能够实现课设的要求,我通过上网找代码和去图书馆借书找程序,比较画好的流程图及功能模块,不断阅读修改代码使程序达到预期所要实现的目标,完成课程设计后,可以感觉到自己对VC#.NET程序的又有了新的认识。综合运用
32、以前所学习的知识,设计一个VC#.NET贪吃蛇游戏,并能实现以下的功能:游戏的选项主要是游戏的开始、暂停、退出,游戏的设置游戏难度等级的控制、蛇的颜色、食物的颜色,扩展添加了一个蛇体宽度的设置,游戏帮助(游戏控制说明)与积分显示。 总之,通过本次的课程设计,使我平时学到的理论知识得到了很好地升华,理论与实际得到一次很好的结合,为我今后参加工作打下了坚实的基础,使我受益匪浅。参考文献 【1】C#高级编程(第3版)清华大学出版社【2】Visual C# 开发典型模块大全人民邮电出版社出版社附录 附录A:主要源程序1) 创建一个Snake类的代码class Snake /在snake类中第一全局变量
33、 public static int SnakeBone =10;/设置蛇体模块大小 public static int Direct=0;/设置方向 public static Point Place=new Point(-1,-1),new Point(-1,-1),new Point(-1,-1),new Point(-1,-1),new Point(-1,-1);/设置蛇体各模块的位置 public static bool hasFood = false;/是否有食物,有食物为true public static bool isGame = false;/游戏是否结束,游戏结束为tru
34、e public static int Field_with = 0; /场地的宽度 public static int Field_length= 0;/场地的长度 public static Control control; /记录绘制贪吃蛇的控件 public static Timer timer; /记录Time组件/设置贪吃蛇身体颜色 public static SolidBrush SolidSnake = new SolidBrush(Color.Green); public static SolidBrush SolidBack =new SolidBrush(Color.Gr
35、een); public static Label label;/记录label控件 public static ArrayList List = new ArrayList();/实例化一个ArrayList数组 Graphics g;/实例化 Graphics类 Food food = new Food(); /定义一个函数用于绘制贪吃蛇的起始位置,以及对游戏场地进行初始化设置 public void GamePlaceSet(Control con,int Bone) Field_with=con.Width;/获取场地的宽度 Field_length=con.Height;/获取场地的
36、长度 SnakeBone=Bone;/记录蛇体模块大小 control=con;/记录背景控件 g=control.CreateGraphics();/创建背景控件的Graphics类 SolidBack=new SolidBrush(con.BackColor);/设置画刷颜色 for (int i=0;iPlace.Length;i+) /设置蛇初始位置的横坐标Placei.X = (Place.Length - i - 1) * SnakeBone; /设置蛇初始位置的纵坐标/temp.Y Placei.Y = (Field_length / 2) - SnakeBone; g.Fill
37、Rectangle(SolidSnake, Placei.X+1, Placei.Y+1 , SnakeBone-1 , SnakeBone-1);/绘制蛇体 List=new ArrayList(Place);/记录每一个模块的位置 isGame=false;/停止游戏 Direct=0;/设置方向向右 /定义一个SnakeMove函数用于蛇体移动,根据蛇的位置,判断是否吃到食物,如果吃到食物,重新生成食物 public void SnakeMove(int N, Form1 control1) Point tem_point=new Point(-1,-1);/定义坐标结构 switch(
38、N) case 0: tem_point.X=(Point)List0).X+SnakeBone;/蛇头右移动 tem_point.Y=(Point)List0).Y; break; case 1: tem_point.X=(Point)List0).X-SnakeBone;/蛇头左移动 tem_point.Y=(Point)List0).Y; break; case 2: tem_point.X=(Point)List0).X; tem_point.Y=(Point)List0).Y-SnakeBone;/蛇头上移动 break; case 3: tem_point.X=(Point)Lis
39、t0).X; tem_point.Y=(Point)List0).Y+SnakeBone;/蛇头下移动 break; if (!EstimateMove(tem_point) /如果没有向相反的方向移动 Direct=N; /改变贪吃蛇的方向 if (!GameEnd(tem_point) /如果游戏没有结束 ProtractSnake(tem_point); /重新绘制蛇体 Eatefood(control1); /吃食物 /绘制食物 g.FillRectangle(Food.SolidFood, Food.FoodPoint.X + 1, Food.FoodPoint.Y + 1, Sna
40、keBone - 1, SnakeBone - 1); /吃东西 public void Eatefood(Form1 control1) int m,n; /记录分数和速度 if (Point)List0)=Food.FoodPoint)/如果蛇头吃到了食物 List.Add(ListList.Count - 1);/在蛇的尾部添加蛇身 hasFood = false;/没有食物 food.Buildfood(hasFood, control);/生成食物 m = Convert.ToInt32(label.Text); if (m=10)/积分为10时加速 n = control1.spe
41、ed - 50; timer.Interval = n; label.Text = Convert.ToString(m + 5);/显示当前分数 g.DrawString(一级加速中, new Font(宋体, 15, FontStyle.Bold), new SolidBrush(Color.Green), new PointF(180, 30); else if (m = 20)/积分为20时加速 g.FillRectangle(Snake.SolidBack, 0, 0, control.Width, control.Height); control1.ProtractTable(g)
42、; g.DrawString(二级加速中, new Font(宋体, 15, FontStyle.Bold), new SolidBrush(Color.Blue), new PointF(180, 30); n = control1.speed - 100; timer.Interval = n; label.Text = Convert.ToString(m + 5);/显示当前分数 else if (m = 30)/积分为30时加速 g.FillRectangle(Snake.SolidBack, 0, 0, control.Width, control.Height); control
43、1.ProtractTable(g); g.DrawString(三级加速中, new Font(宋体, 15, FontStyle.Bold), new SolidBrush(Color.Red), new PointF(180, 30); n = control1.speed - 150; timer.Interval = n; label.Text = Convert.ToString(m + 5);/显示当前分数 else/显示当前分数 label.Text = Convert.ToString(Convert.ToInt32(label.Text) + 5); /用于判断当前游戏是否
44、结束 public bool GameEnd(Point GE) bool tem_e = false;/用于判断游戏是否结束 bool tem_body = false;/用于判断蛇身是否重叠 for (int i=1;iList.Count;i+)/如果重叠则返回ture,游戏结束 if (Point)List0)=(Point)Listi) tem_body=true; /判断蛇头是否超出游戏场地if(GE.X=control.Width-1|GE.Y=control.Height-1|tem_body) /游戏结束提示 g.DrawString(游戏结束!, new Font(宋体, 50, FontStyle.Bold), new SolidBrush(Color.Yellow), new PointF(100, 150); isGame = true;/游戏结束 timer.Stop();/停止计时器 tem_e=true; return tem_e; /用于判断贪吃蛇的移动方向是否向相反的方向移动,如果方向移动则返回false public bool EstimateMove(Point ES) bool tem_d = false;/记录蛇头是否向相反的方向移动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江西省临川区第一中学物理高三上期末达标检测试题
- 2025年河南省漯河实验高中高三物理第一学期期末考试试题
- 芯片设计自主可控-洞察及研究
- 虚拟现实驱动的服装设计数据驱动优化-洞察及研究
- 昌乐辅警考试题库2025(有答案)
- 贸易摩擦应对机制-第1篇-洞察及研究
- 软件开发知识融合-洞察及研究
- 415全民国家安全教育日知识竞赛题库与答案
- 虹科招聘笔试题库2025
- 单招是否有笔试考试题及答案
- 捷豹XF汽车说明书
- 应急车辆维护与保养方案
- 2023年4月自考00107现代管理学试题及答案
- 人教版数学四年级上册完整全册教案
- 《学前儿童卫生与保健》第1章 学前儿童的解剖生理及卫生
- 外科换药术专业知识讲座
- 法考客观题历年真题及答案解析卷一(第1套)
- GB/T 36964-2018软件工程软件开发成本度量规范
- GB/T 27548-2011移动式升降工作平台安全规则、检查、维护和操作
- GB/T 13667.3-2013钢制书架第3部分:手动密集书架
- 供应商质量手册课件
评论
0/150
提交评论