VB课程设计报告样例

发布 2022-10-02 07:12:28 阅读 1030

南京理工大学。

题目1贪吃蛇游戏。

题目2列车时刻查询。

指导老师张小兵。

学生姓名学号。

专业。班级10083201

2024年3月20日。

vb程序设计》课程设计任务书。

题目: 用vb语句实现贪吃蛇游戏。

任务与要求:

程序能够实现简单的贪吃蛇游戏,保证软件可正常运行。

时间:2011 年 2 月 22 日至 2011 年 3 月 13日共 3 周。

学生姓名: 马帅学号: 1008320126

专业**系统与发射工程。

指导教师张小兵。

2024年3月 20日。

贪吃蛇游戏。

随着学习内容的不断增多,各专业知识也不断增长,为了有效地提高学习效率,更有效的掌握所学知识,利用所学知识设计贪吃蛇游戏,熟练运用专业知识。本课题主要锻炼了对于控件数组,绘图,键盘事件处理,文本文件的读写,多模块程序设计,定时器控件,菜单的使用等知识的运用能力。

题目介绍:贪吃蛇”是一款很流行的电子游戏。一条蛇在棋盘状的格子上爬行,由键盘控制其转弯;格子上随机地出现5个数字(1-5),当蛇的头部碰到数字时会将数字“吃掉”,蛇的身体会变长。

当蛇的头撞到障碍物(深色部分)或碰到自己身体时,游戏结束。游戏结束时,蛇身越长得分越高。

课程设计功能要求:

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

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

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

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

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

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

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

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

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

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

一.贪吃蛇游戏界面。

主窗体界面:

帮助”窗体界面:

设置”窗体界面:

排行榜”窗体界面:

关于”窗体界面:

二.贪吃蛇游戏部分**。

主窗体的部分**:

为所有随机出现的的数字定位:

sub shownumberall

dim i as integer, j as integer

dim k as integer, m as integer, l as integer

dim f as boolean

randomize

for m = 1 to 5

doi = int(rnd * 20)

j = int(rnd * 20)

'判断数字出现的位置是否合理。

f = true

for k = 1 to intnum判断是否出现在蛇身上。

if i = int(shp(k).left / grid) and j = int(shp(k).top / grid) then

f = false

exit for

end if

nextif f = true then

for k = 1 to m - 1判断是否出现在已有的数字上。

if i * grid = lblnumber(k).left and j * grid = lblnumber(k).top then

f = false

exit for

end if

nextend if

if f = true then

for k = 1 to 20判断是否出现在障碍物上。

for l = 1 to 20

if maze(j + 1, i + 1, curmaze) =1 then

f = false

exit for

end if

nextnext

end if

if f = true then

exit do

end if

loopapplex(m) =i

appley(m) =j

lblnumber(m).left = applex(m) *grid

lblnumber(m).top = appley(m) *grid

nextend sub

为指定的数字定位:

sub shownumber(m as integer

dim i as integer, j as integer

dim k as integer, l as integer

dim f as boolean

randomize

doi = int(rnd * 20)

j = int(rnd * 20)

判断数字出现的位置是否合适。

f = true

for k = 1 to intnum

if i = int(shp(k).left / grid) and j = int(shp(k).top / grid) then

f = false

exit for

end if

nextif f = true then

for k = 1 to 5

if i * grid = lblnumber(k).left and j * grid = lblnumber(k).top then

f = false

exit for

end if

nextend if

if f = true then

for k = 1 to 20判断是否出现在障碍物上。

for l = 1 to 20

if maze(j + 1, i + 1, curmaze) =1 then

f = false

exit for

end if

nextnext

end if

if f = true then

exit do

end if

loopapplex(m) =i

appley(m) =j

lblnumber(m).left = applex(m) *grid

lblnumber(m).top = appley(m) *grid

end sub

画蛇:private sub drawsnake

dim i as integer

intnum = 5 '初始段数。

redim intdirect(5)

intdirect(1) =mazeinfo(3, curmaze)

shp(1).left = grid * mazeinfo(2, curmaze) -1) '蛇头位置。

shp(1).top = grid * mazeinfo(1, curmaze) -1)

ansys课程设计样例

亚忠亚忠基于ansys10.0的凸缘联轴器的有限元分析。摘要 采用有限元分析软件ansys10.0,对凸缘联轴器的受力情况作了静态的受力分析。通过分析和计算,得出凸缘联轴器的应力和应变的分布情况,为凸缘联轴器的结构设计提供了理论依据,同时也展示了有限元分析应用于工程设计应力计算的方法,有一定的工程实...

数据结构课程设计报告样例

你一定要坚强,即使受过伤,流过泪,也能咬牙走下去。因为,人生,就是你一个人的人生。06040722 郭啸 2006 9 7 课程题目 编程实现希尔 快速 堆 归并四种排序算法,并计算每种算法的比较 移动次数。要求待排序数据从磁盘文件读入,实施排序后将数据写入另一文件。开发平台 处理器 intel p...

数据结构课程设计 报告 样例

数据结构与算法 课程设计报告。王婧 龚丹 宋毅编写 题目 航空订票管理系统。学期 秋 班号。学号。姓名。成绩 哈尔滨华德学院电子与信息工程学院。年月。一 实训设计的目的与要求 注 正文为宋体,五号字,为单倍行距 一 课程设计目的 不少于字 数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结...