vb课程设计报告

发布 2022-10-02 06:49:28 阅读 5246

visual basic

所属课程名称:visual basic程序设计。

课程设计题目: 贪吃蛇游戏。

课程设计难度:4星。

课程设计时间:2012.2.27 ~ 3.23

学号:**姓名:**

***大学***学院。

二〇一二年三月。

简要叙述题目的功能要求,涉及的知识点等。

1、题目介绍:

贪吃蛇”是一款很流行的电子游戏。一条蛇在棋盘状的格子上爬行,由键盘控制其转弯;格子上随机地出现5个数字(1-5),当蛇的头部碰到数字时会将数字“吃掉”,蛇的身体会变长。当蛇的头撞到障碍物(深色部分)或碰到自己身体时,游戏结束。

游戏结束时,蛇身越长得分越高。

2、课程设计功能要求:

1)程序启动界面由20*20个方格构成。开始时,蛇静止不动,蛇身由一串共5个圆圈表示,身体黄色,代表头部的圆圈为红色,且有两只绿眼睛。

2)按回车键开始游戏,蛇自动向前爬行,用户使用“←↑4个方向键使其拐弯不至于碰到障碍物或自己。蛇只能向前走或向左右转90度的弯,不能后退。吃掉一个数字后,蛇的身体的幅度与数字的大小相同。

例如,吃掉“3”后,蛇身伸长3个圆圈。蛇身体的伸长不是一下子完成的,而是在吃掉数字后一边爬行一边伸长的,这样是为了避免蛇的“尾巴”突然伸长撞到障碍物或蛇自己。

3)5个数字(1 -5)的位置是随机的,互不重叠的,且不能出现在障碍物和蛇的身上。当蛇吃掉一个数字时,同样的数字随机的出现在其他位置上,即格子上总保持有“1-5”5个数字。

4)游戏进行时,窗口标题栏上显示出已使用的时间和得分,得分是当前蛇身体的长度。使用回车键可以暂停或继续游戏。

5)蛇在爬行到边界时,如果未遇到障碍物,会从一侧爬出再从对面一侧爬入。如果运行过程中,其头部碰到障碍物或自己的身体,则被撞死,游戏结束。如果该用户的成绩超过了记录成绩,则显示对话框,提示输入用户名,以供记录成绩由“排行榜”功能显示。

6)通过程序菜单的“开始/暂停(回车)”命令,也可以暂停或继续游戏(与回车键功能相同)。选择“新开局”菜单项可以从头开始游戏。

7)选择“设置”菜单命令,打开设置对话框。在该对话框中可以选择不同的障碍物形状,也可以指定背景和障碍物的颜色。单击“设置”对话框底部的“背景颜色”和“障碍物颜色”后面的颜色区,弹出“颜色”公共对话框来指定颜色。

设置完毕后,单击“确定”按钮关闭“设置”对话框,游戏将按所选形状从头开始游戏。下一次启动程序,自动使用上次的设置。

8)选择“排行榜”菜单命令打开“排行榜”对话框,显示每种障碍物下的最好成绩。选择“清除所有记录”按钮可将记录清零。

课程设计的总体设计思路,功能模块的设计及实现。

重点文字介绍程序的设计思路,实现方法,不要加入程序**。

1、总体设计思路。

程序关键在于表示蛇的图形及蛇的移动。蛇是由一节一节蛇身和一个蛇头组成的,可以用图形类的控件数组表示。蛇运动的特点是只能往前移动,一次走一格。

于是,对于每一节除了蛇头之外的蛇身来说,这样的移动都可以看成是运动到前一节所在的位置,用控件数组可以直接赋值表示。而蛇头的运动则是根据当前蛇的运动方向决定的,顺着方向一次一格,后面的每一节蛇身都要走蛇头走过的每一格。这样,蛇就可以运动了,可以使用计时器控件,定时触发,移动一次。

关于地图,我们可以使用一个二维数组表示坐标,用这个坐标在数组里的值表示这个坐标的状态。比如 zhuangtai(2,2)=1,就是说在点(1,1)的状态是1。我在程序里约定:

1是障碍物,2是食物,3是蛇身。也就是说,在(2,2)这个点上,有障碍物。这样就可以表示出地图了。

根具要求,该程序应该至少含有一个主窗体,一个设置迷宫、颜色的窗体,一个显示排行榜的窗体,一个帮助窗体。此外,根据需要,还应该有一个标准模块来定义全局的一些变量、数组。

2、贪吃蛇游戏界面。

主窗体界面:

帮助”窗体界面:

设置”窗体界面:

关于”窗体界面:

排行榜”窗体界面:

详述遇到的主要问题及解决办法。

问题1】:在开始做出一条可以游走的蛇的时候,我开始尝试通过数组值的改变,实现蛇碰到自己身体时会“撞死”。可是后来调试中发现,蛇不但碰到自己身体会“撞死”,就连碰到自己走过的轨迹也会发生“撞死”。

解决办法】:经过调试与一段时间的思考,我意识到,在蛇身和蛇头游走的过程中,每一节的坐标位置状态都会改为3,即有蛇身,这是正确的。可是当蛇的最后一节离开原来的坐标位置时,并没有把该点的坐标状态改为0,即“什么都没有”。

这样就导致了不单单蛇身的坐标状态是3,蛇走过的轨迹上任意一点坐标状态都是3,所以导致了蛇的“撞死”

既然找到了原因,就可以改程序了。我在蛇的移动**中加了一个把最后一节坐标的状态改为0的语句,调试,果然成功了。

问题2】:设置窗口中有两个表示颜色的标签,要求单击一下就显示一个选择颜色的对话框。可是,这个对话框怎么弄出来,我顿时感觉迷茫了。总不能那么多颜色一个个画出来吧。

解决办法】:通过上网搜索和看了一下网上别人的**,我总算知道了:这是一个windows的标准对话框控件,有一个方法就是专门显示颜色的。于是我加了这么一句。

问题就解决了。

描述增加的新功能、对程序的改进等。

因为贪吃蛇碰到自己的身体就会撞死,身体越长难度相对来说就越大,所以我在程序中就是用长度来作为成绩统计积分的。而标准答案中是用吃的食物数来统计的,这样不仅要增加一个计数的变量,相比之下也不够科学。

其次,对于总时间的记录,答案中另外又加了一个计时器控件专门记录时间。这样是准确一些,有些小题大作了。我直接在唯一的计时器里加了一个累加的全局变量,每次加上timer控件的interval属性值就可以了。

如果要以整数输出的话,最后输出时加一个取整就可以了。

再就是我的程序主界面上可以显示当前蛇头的位置,蛇头的状态,以及此时蛇应有的长度。之所以说应有的长度,是因为有时蛇处于正在伸长的阶段,此时确定的值就是应有的长度。

最后我对课本规定的菜单重新编辑了一下,感觉更加合理一些了。

列出程序功能未实现之处,程序运行有问题之处。

说明这次课程设计的感想和心得体会、经验教训等。

1、存在的不足:

在玩此游戏时,一不小心就可能将蛇“撞死”,本程序还未能够添加“多条命”,即不能够允许蛇撞死3次或5次。

另外,我的**在写得时候的确考虑不足,有一些冗杂繁琐,而且格式也不大好看。希望以后会改进下。

2、心得体会:

课程设计是培养学生综合运用所学知识,发现,提出,分析,和解决实际问题,锻炼时间能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

通过这几周的vb课程设计,我学到了很多很多的东西,同时不仅可以巩固了以前学过的知识,而且学到了很多书本上所没有学到的知识。通过这次课程设计是我懂得了理论与实践相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说是困难重重,这毕竟是自己第一次做一个程序,难免会遇到各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解的不够深刻,掌握的不够牢固。

通过这次课程设计之后,一定把以前所学的知识重新温故。

这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,但也通过上网查询,查msdn等各种方式得到了解决。其实最后这个程序结果并不重要,我记得老师也这样说过,如果说要答案的话谁都可以搞到。关键在于解决一个个问题的过程,一次次调试最后成功的过程,其中有无穷的乐趣,成功的喜悦,又岂是区区几段**可比的。

课程设计就这一次,我想,编程的路,我还会继续走下去。

源程序**要求缩进书写,强制变量声明,变量名及对象名等的取名应具有描述意义。

**必须有注释说明,对每个模块、函数,要说明其功能、算法等。

visual basic程序设计》

msdn library》

VB课程设计报告

课程设计题目个人收支管理。难度 姓名 刘泽禄。学号 913103860633 随着社会生活步调的不断加快,人们越来越繁忙。也因此各项收入和支出名目繁多,如果不善于管理常会出现入不敷出,工资感觉没怎么用到月底就已经全光了。所以对自己在日常生活中的收入和支出进行记录和管理是十分必要的。这也正是设计这个程...

vb课程设计报告

vb程序设计。设计题目 键盘打字练习。学院 经济管理学院 班级 学号 营销1301 2013011694 指导教师 崇美英。学生姓名 闫鑫。起止日期 14 02 24 14 02 28 成绩。目录 登陆界面。1.1课程设计题目3 1.2小组成员3 1.3系统分析及界面设计3 2.1系统主要功能及流程...

VB课程设计报告

表目录。图目录。企业单位人事档案管理工作是一种繁琐的,务求准确迅速的信息检索工作。随着计算机信息技术的飞速发展,人类进入信息时代,社会的竞争越来越激烈,企业人事管理就越显示出其不可或缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于对所有员工的基本资料进行录入 职务变更和管理。使用人事管理...