迷宫

  • 格式:doc
  • 大小:74.50 KB
  • 文档页数:3

VB课程设计任务书 –迷宫 第1页共3页
河北工业大学计算机软件技术基础(VB)
课 程 设 计 任 务 书
本题难度级别:B 实现基本要求代码: 约150行 主要涉及: 基本控件、文件及算法
一、设计题目:走出迷宫(出题人:曹新国)
二、目的与要求
1.目的
培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。

2.基本要求
从迷宫的入口走到出口。详细要求如下:
 能够打开已有的迷宫文件并进行游戏。
 游戏者使用光标键移动目标。
 可对游戏者使用时间计时。
 移动目标只能在通道中移动。
 可以自定义使用的移动键。
 程序分为设计和游戏两种状态。
 在设计模式能够通过鼠标直接绘制的方式设计迷宫并能将所设计的布局保存到文本
文件中,保存格式见素材中的样例文件。
 设计迷宫时可以指定入口和出口(入口用S表示,出口用F表示,通道用#表示,墙
用空格表示,全用半角字符,设计时用鼠标左键开辟通道,CTRL+鼠标左键设置迷宫入口,
CTRL+鼠标右键设置迷宫出口)。
 被移动目标可以使用提供的图片,或者自行安排其他控件。
 支持显示的背景设置,可以设置成任意色彩或者图案。

3.创新要求
在基本要求达到后,进行创新设计,创新方向提示如下:
★ 增加三维迷宫线路。
★ 可以设置迷宫的大小。(10x20到50x100)
★ 其它创新(有一定难度,实现代码在30行以上)。
VB课程设计任务书 –迷宫 第2页共3页

三、设计方法和基本原理
1.问题描述
程序界面可以参考图(也可自己设计,完成功能即可)。本设计题目是走出迷宫。从迷宫
的入口走到出口。属于游戏类。

2.问题的解决方案
①设计程序界面
迷宫线路可以使用两种方法实现,一是事先画好,二是利用line控件通过数组动态
生成。
②编写代码
包括事件处理过程和功能函数,还有必要的声明。变量声明部分声明本程序所需要
的变量和数组。要添加必要的程序说明语句。
事件处理包括下面的主要事件:

Form_Load()
作一些初始化的工作。画迷宫线路。
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
利用光标键控制目标移动。
四、主要技术问题的描述
1.从文件中读取数据建立一个二维数组
打开提供的路线文件就可以发现这个文件是由”#”和” ”构成的,对于文件部分课堂
上没有讲解,但是大家可以看课本的第7章。下面是具体使用方法。
fnum = FreeFile ‘得到空文件号
Open SelectFile For Input As #fnum ‘打开文件并指定缓冲区的文件号
Input #fnum, NumRows, NumCols ‘读入数组的行(NumRows)和列(NumCols)值
ReDim LelMove(1 To NumRows, 1 To NumCols) ‘定义动态数组的大小
对于此二维数组值的获得,可以使用双重循环逐行读入。对读入的每一行mid()取子
串生成二维的逻辑性数组。
ch = Mid(row, c, 1) ‘row为读入的每行内容
LelMove(r, c) = (ch <> "#") ‘判断ch <> "#"成立则为True,否则为False
另外注意对入口s和出口f的判断。
数组形成之后定义form的高度和宽度(注意应该和迷宫线路的宽度、二维数组相结合),
这里还要涉及到窗口的属性ScaleMode=vbPixels。
2.利用数组画迷宫线路
如果二维数组读入正确,画线就很简单了,只需设定线高和线宽就可以了(参考线高和
线宽值为20)。仍然要注意提取入口和出口的坐标值。
Line (c * SQUARE_WID, r * SQUARE_HGT)-Step(-SQUARE_WID, -SQUARE_HGT), clr, BF
‘线路的高度SQUARE_WID,宽度 SQUARE_HGT,颜色clr
3.移动目标

小人这里面使用的是Picture控件,图片已提供。小人根据坐标x,y值出现
PaintPicture picPlayer.Picture, x, y
但是怎么样使旧的小人擦除?可以确定原位置然后重新画线。
VB课程设计任务书 –迷宫 第3页共3页

小人要通过光标键来移动,这就用到了下面的事件
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
‘KeyCode 是按键返回的键值,我们涉及到的有vbKeyLeft,vbKeyRight, vbKeyDown,
vbKeyUp
通过上面的事件和二维数组结合起来,在可走的地方小人允许出现,这样就可以确定小

人只能沿着你画好的线路走。
最后计算使用时间,这个很简单就不在多说。
五、参考资料
★ Visual Basic 程序设计教程 及 Visual Basic 实验教程

★ VB6.0程序员指南
★ VB6.0控件参考手册
★ MSDN中文版,课程设计网站上提供的其它资料。
六、设计部分的评分标准(本题难度为B级,综合时要乘系数0.9)
完成基本要求前4项(项目符号为“■”部分)
60

基本要求全部完成
80

创新要求完成任意二项
90

创新要求完成3项或以上
100

[注:最后得分是根据本部分得分(占最大比例)以及课程设计期间纪律、设计报告书、答辩情况综合得出)