欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    贪吃蛇游戏课程设计实验报告样本.docx

    • 资源ID:9715396       资源大小:599.58KB        全文页数:35页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    贪吃蛇游戏课程设计实验报告样本.docx

    1、贪吃蛇游戏课程设计实验报告样本辽 宁 科 技 大 学课程设计阐明书设计题目: 基于C#贪吃蛇游戏 学院、系: 装备制造学院 专业班级: 计算机科学与技术 学生姓名: 叶佳佳 指引教师: 丁宁 成 绩: 12月 12日一、概述1、用C#实现该设计办法一方面应当理解设计规定,然后按照功能设计出实际模块,每个模块都要完毕特定功能,要实现模块间高内聚,低耦合。设计模块是一种相称重要环节,模块数量不适当太多,也不适当太少,要是每个模块都能比较简朴转换成流程图。模块设计完毕后,就该给每个模块绘制流程图。流程图要尽量简朴且容易理解,多使用中文,补某些过长代码,增长理解难度。此外,流程图应容易转换成代码。依照

    2、流程图编写好代码后在WindowsXP操作系统,VS.NET开发环境下进行运营测试,检查错误,最后设计出可行程序。2、贪吃蛇游戏阐明游戏操作要尽量简朴,界面要尽量美观。编写程序实现贪吃蛇游戏,贪吃蛇游戏是一种深受人们喜欢游戏:一条蛇在密闭围墙内,在围墙内随机浮现一种食物,通过键盘上四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物,则表达食物被吃掉,这时蛇身体长一节,同步计10分;接着又浮现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁、障碍物或身体交叉(蛇头撞到自己身体),则游戏结束。游戏结束时输出相应得分。详细规定有如下几点:(1)对系统进行功能模块分析、控制模块分析对的,符合课题规定

    3、,实现相应功能;可以加以其她功能或修饰,使程序更加完善、合理;(2)系统设计要实用,采用模块化程序设计办法,编程简洁、可用,功能全面;(3)阐明书、流程图要清晰;二、实验目及设计规定1、实验目.NET课程设计是教学实践环节中一项重要内容,进行此课程设计旨在掌握基本知识基本上,进一步加深对VC#.NET技术理解和掌握;提高和加强学生计算机应用及软件开发能力,使学生具备初级程序员基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异发展形势;本次课程设计是以学生独立思考解决问题为主,教师指引为辅,结合上机操作,完毕指定任务,做出设计报告。2、实验规定运用Micr

    4、osoft Visual Studio 平台设计制作一种贪吃蛇小游戏,规定如下:(1)可以记录游戏成绩(计分按照每吃一块食物增长20合计)(2)可以暂停/继续游戏(通过按钮实现)(3)蛇身体可以随着吃到食物数量逐渐变长(4)可以自己添加障碍物,规定设计成红色墙壁(5)积分每增长50分规定蛇相应加迅速度(6)规定在游戏过程中添加背景音乐和随机炸弹三、课程设计详细实现1、概要设计1.1、设计思想程序核心在于表达蛇图形及蛇移动。用一种小矩形快表达蛇一节身体,身体每长一节,增长一种矩形块,蛇头(绿色)用三节表达。移动时必要从蛇头开始,因此蛇不可以向相反方向移动,如果不按任意键,蛇自行在当前方向右前移,

    5、但按下有效方向键后,蛇头朝该方向移动,一步移动一节身体,因此按下有效方向键后,先拟定蛇头位置,而后蛇身体随蛇头移动,图形实现是从蛇头新位置开始画出蛇,这时,由于未清屏因素,本来蛇位置和新位置差一种单位,因此看起来蛇多一节身体,因此将蛇最后节用背景色覆盖。食物浮现与消失也是画矩形块和覆盖矩形块。为了便于理解,定义两个构造体:食物与蛇,同步还定义了一种随意墙。然后运用图形驱动,,制作美观游戏界面,通过随机函数产生随机食物,控制游戏过程食物浮现。定义键盘操作控制游戏过程蛇移动方向,画出边界,并判断游戏与否结束,记录游戏过程中蛇吃食物数量,计算并输出游戏成绩。1.2、主模块实现1snake设计模块 2

    6、. Form 设计模块1.3、主函数流程图2、详细设计2.1、设计思想 一方面进入VS打开文献新建一种项目,点击windows窗体应用程序,名字设为Snakes 。进入Form设计界面,一方面咱们都懂得游戏最基本功能有开始,暂停,继续,退出,因此一方面要先加4个button键来控制游戏,再加一种TextBox文本框来显示成绩。在窗体中加入Panel来实现贪吃蛇运动空间,设立有一种游戏界面运动空间。之后就要定义一种sakes类,来实现蛇某些属性与办法,一方面明白这个游戏实现是贪吃蛇吃食物,因此还需要定义食物,食物被吃后要实现食物重建。玩游戏时还需要有控制键设立,这一模块可以选用Switch语句来

    7、实现。实现基本功能后要注意如何状况会导致蛇死亡,可以想到有越界线,咬到自己都会死亡。随着思想成熟,觉得只吃食物好像太简朴,因此在这个贪吃蛇游戏基本上又设立了某些障碍,加了几堵墙,还设立了随机炸弹,这样游戏就更故意思了,加上此前玩俄罗斯方块某些感觉,还设立了游戏不断加速模块。2.2、详细模块实现:1、snake 属性定义2、Form 属性定义 3、创立蛇模块创立蛇模块和创立障碍物思路想法是一致,都是通过label实现:4、创立食物模块创立食物模块和创立随机炸弹思路是一致,都是在一定范畴内随机浮现。通过坐标点办法来实现食物,食物是随机浮现,并且一旦被吃掉就会立即创立新食物。并且还需要判断食物浮现地

    8、方时与否与墙壁重叠。5、蛇吃食物模块通过Timer 控件来设立时间,吃到食物之后身体增长,蛇身体颜色是三色交替浮现,每吃到一种食物积分加10,身体加长相应增长。并且还要判断与否需要更改蛇运营速度。7、与否撞到自己模块当贪吃蛇自己遇到自己身体时游戏结束8、游戏结束模块9、初始化panel10、初始化Form并添加背景音乐(Kalimba.wav)11、控制蛇运动方向四、调试过程及运营成果1、调试过程(1)在实现撞障碍物过程中,刚刚开始时候墙不能起作用,贪吃蛇总是能穿过障碍物,日后才发现时障碍物设立范畴浮现了错误。通过不断尝试与计算才算出对的范畴。(2)在实现固定墙过程中是通过使用Label来实现

    9、,跟创立贪吃蛇思想是同样,但是在运营过程中刚刚开始时候不浮现障碍物,日后在教师协助下发现本来少一句话,需要在NowStar()函数中增长障碍物显示for (int i = 0;i sk.Wall.Count;i+) this.panel1.Controls.Add(Label)sk.Walli);(3)在玩游戏过程中发现食物会与墙壁尚有炸弹重叠状况,然后通过度析因素,这与构造食物时判断食物与身体与否接触道理是同样,这里需要加一种循环语句来判断,如果不是墙话才在这里创造食物。(4)在创造炸弹实现过程中,总是在炸弹右半边任何位置都爆炸,通过一步一步调试检查是在判断语句时右侧范畴太大,导致有半侧没有

    10、炸弹也爆炸。通过调试找到对的范畴。2、实验成果(1)游戏运营主界面(2)协助界面(3)结束界面 五、实验心得这次课设对我来说有很大收获,我学到了许多课本上没有学到知识,这次我将将课本上理论知识充分转化成了某些实用技能。通过这次自己制作软件,丰富了自己实践技能,扩展课本专业知识面。在这次设计同步,我又从中学到了许多东西。但由于我对这样软件开发还只是一种开始,理解不多,这其中或许尚有诸多局限性,有些模块做不是较好,界面设计及整体布局还是比较简朴。此外,在这一次课程设计过程中,我上网查阅了大量资料,对C#有了更深理解,对于软件工程这些辅助性教材也巩固了不少,为我这次课设提供了很大协助,锻炼了我能力。

    11、更重要是,它还让我结识到了自己局限性之处,在编程方面,我还是比较欠缺,后来路任重道远,我需要事不断地丰富自己,充实自己,这样才干在程序设计方面有所收获。 最后感谢教师在这次课程设计中对咱们悉心辅导,通过这次学习,让咱们掌握了诸多关于C#.NET应用知识。六、参照资料1 陈俊荣. ASP与网络数据库技术M. 北京:中华人民共和国铁道出版社,.2 张绣兰. ASP网站建设实录M. 北京:北京但愿电子出版社. .3 李华. DreamWeaver8网页设计程序教程M. 北京:清华大学出版社. .4 江开耀. 软件工程M. 西安:西安电子科技大学出版社.七、附录:源代码snake源代码如下:using

    12、 System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Forms;using System.Collections;using System.Drawing;using System.ComponentModel;using System.Data;namespace Snake class snake public Point food_p;/定义食物位置 private Label food; /定义食物 public Label Food /食物属

    13、性 get return food; set food = value; private ArrayList body = new ArrayList();/定义食物定义食物链表 public ArrayList Body /食物链表属性 get return body; set body = value; /定义障碍物 上下左右各面墙 蛇撞墙即死 private ArrayList wall = new ArrayList(); public ArrayList Wall get return wall; set wall = value; private ArrayList wall1 =

    14、 new ArrayList(); public ArrayList Wall1 get return wall1; set wall1 = value; private ArrayList wall2 = new ArrayList(); public ArrayList Wall2 get return wall2; set wall2 = value; private ArrayList wall3 = new ArrayList(); public ArrayList Wall3 get return wall3; set wall3 = value; public void Crea

    15、teSnake()/使用Label进行创立一种蛇 int left = 20; Label lb; for (int i = 0;i 2;i+) lb = new Label(); lb.Name = label + i.ToString(); lb.BackColor = Color.Green; lb.Width = 10; lb.Height = 10; lb.Top = 0; lb.Left = left; body.Add(lb); left -= 10; public void CreateWall()/使用Label进行创立障碍物 int left = 200; Label lb

    16、0; for (int i = 0;i 10;i+ ) lb0 = new Label(); lb0.Name = label + i.ToString(); lb0.BackColor = Color.Red; lb0.Width = 10; lb0.Height = 10; lb0.Top = 50; lb0.Left = left; wall.Add(lb0); left -= 10; public void CreateWall1() int left = 200; Label lb1; for (int i = 0;i 10;i+) lb1 = new Label(); lb1.Na

    17、me = label + i.ToString(); lb1.BackColor = Color.Red; lb1.Width = 10; lb1.Height = 10; lb1.Top = 310; lb1.Left = left; wall1.Add(lb1); left -= 10; public void CreateWall2() int top = 200; Label lb2; for (int i = 0;i 10;i+) lb2 = new Label(); lb2.Name = label + i.ToString(); lb2.BackColor = Color.Red

    18、; lb2.Width = 10; lb2.Height = 10; lb2.Left = 50; lb2.Top = top; wall2.Add(lb2); top -= 10; public void CreateWall3() int top = 200; Label lb3; for (int i = 0;i 10;i+) lb3 = new Label(); lb3.Name = label + i.ToString(); lb3.BackColor = Color.Red; lb3.Width = 10; lb3.Height = 10; lb3.Left = 260; lb3.

    19、Top = top; wall3.Add(lb3); top -= 10; /创立食物 public void CreateFood() Random rand = new Random(); food_p.X = rand.Next(36) * 10;/限定食物物所能浮现横坐标 food_p.Y = rand.Next(36) * 10;/限定食物物所能浮现横坐标 for (int i = 0;i body.Count;i+) if (food_p.Y = (Label)bodyi).Top & food_p.X = (Label)bodyi).Left) this.CreateFood()

    20、; break; /判断食物和所见障碍物与否重叠 for (int i = 0;i wall.Count;i+) if (food_p.Y = (Label)this.Walli).Top & food_p.X = (Label)this.Walli).Left) this.CreateFood(); else if (food_p.Y = (Label)this.Wall1i).Top & food_p.X = (Label)this.Wall1i).Left) this.CreateFood(); else if (food_p.X = (Label)this.Wall2i).Left &

    21、 food_p.Y = (Label)this.Wall2i).Top) this.CreateFood(); else if (food_p.X = (Label)this.Wall3i).Left & food_p.Y = (Label)this.Wall3i).Top) this.CreateFood(); food = new Label(); food.Width = 10; food.Height = 10; food.Top = food_p.Y; food.Left = food_p.X; /加载食物图片 food.Image = Snake.Properties.Resour

    22、ces.food; /蛇吃食物 通过timer进行速度设立 public Panel EatFood(Panel panel1,Timer timer1,TextBox textBox1,TextBox textBox2) if (Label)body0).Top = food_p.Y & (Label)body0).Left = food_p.X) panel1 = this.DeFood(panel1); Label lb = new Label();/增长蛇身 lb.Name = label + body.Count.ToString(); int i=body.Count%3; if(

    23、i=0) lb.BackColor = Color.DimGray; else if(i=1) lb.BackColor = Color.DeepPink; else lb.BackColor = Color.DeepSkyBlue; lb.Width = 10; lb.Height = 10; lb.Top = (Label)bodybody.Count - 1).Top; lb.Left = (Label)bodybody.Count - 1).Left; body.Add(lb); textBox1.Text = Convert.ToString(Convert.ToInt32(text

    24、Box1.Text) + 10); textBox2.Text = textBox1.Text; if (Convert.ToInt32(textBox2.Text) Convert.ToInt32(textBox1.Text) textBox2.Text = textBox1.Text; /修改速度 if (textBox1.Text = 50) timer1.Interval = 150; else if (textBox1.Text = 100) timer1.Interval = 100; else if (textBox1.Text = 150) timer1.Interval =

    25、80; else if (textBox1.Text = 200) timer1.Interval = 50; else if (textBox1.Text = 250) timer1.Interval = 20; return panel1; /吃过后销毁再创立食物 public Panel DeFood(Panel panel1) panel1.Controls.Remove(food); this.CreateFood(); panel1.Controls.Add(food); return panel1; /Form 源代码:using System;using System.Coll

    26、ections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Collections;using System.Media;namespace Snake public partial class Form1 :Form public Form1() InitializeComponent(); private snake sk = new

    27、snake();/构造一种蛇对象 private int dir = 3; /初始时要运动方向(向右) private Point bomb_b;/定义炸弹 private Label bomb; public void CreatBomb()/创立炸弹 Random rand = new Random(); bomb_b.X = rand.Next(20) * 10; bomb_b.Y = rand.Next(20) * 10; bomb = new Label(); bomb.Width = 10; bomb.Height = 10; bomb.Top = bomb_b.Y; bomb.L

    28、eft = bomb_b.X; bomb.Image = Snake.Properties.Resources.b2; /判断随机炸弹与否与随机食物重叠 if (bomb_b.X = sk.food_p.X & bomb_b.Y = sk.food_p.Y) CreatBomb(); /清除炸弹 public Panel DeBomb(Panel panel1) panel1.Controls.Remove(bomb); return panel1; private int diring = -1; /正在运动方向 private void button1_Click(object sende

    29、r,EventArgs e) /开始 textBox1.Text = 0; button3.Enabled = true; timer1.Start(); panel1 = sk.DeFood(panel1); this.CreatBomb(); panel1.Controls.Add(bomb); private void button2_Click(object sender,EventArgs e) /暂停 timer1.Stop(); private void button3_Click(object sender,EventArgs e) /新游戏 textBox1.Text = 0; timer1.Interval = 200; button3.Enabled = false; panel1.Controls.Clear(); sk.Body.Clear(); sk.CreateSnake(); Now


    注意事项

    本文(贪吃蛇游戏课程设计实验报告样本.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开