VB课程设-07-072007迷宫(完善后)_第1页
VB课程设-07-072007迷宫(完善后)_第2页
VB课程设-07-072007迷宫(完善后)_第3页
VB课程设-07-072007迷宫(完善后)_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、. 走出迷宫设计报告学院 材料学院 班级 材料074 学号 072007 姓名 李璐 成绩 一、设计思路1.要达到的目的能够打开已有的迷宫文件并进行游戏。游戏者使用光标键移动目标可对游戏者进行时间计时移动目标只能在通道中移动可以自定义使用移动键2.关键问题的解决程序分为设计和游戏两种状态。可以自己设置迷宫路线图,设计时同时指定入口和出口(入口用S表示,出口用F表示,通道用#表示,墙用空格表示,全用半角字符)。被移动目标可以使用提供的图片,或者自行安排其他控件。支持显示的背景设置,可以设置成任意色彩或者图案。可以设置迷宫的大小。退出调用退出调用 GAMESTART模块二.程序流程图调用调用自定义

2、设置 选择路线并开始游戏继续游戏三、部分程序关键源代码及注释 初始化设置.up = 0 down = 0 left5 = 0 right = 0 ScaleMode = vbPixels AutoRedraw = True Picplayer.Visible = False SQUARE_WID = 20 SQUARE_HGT = 20 bcolor = &HFF0000 自定义使用光标键 m = PlayerM n = PlayerN If up <> 0 And down <> 0 And left5 <> 0 And right <>

3、; 0 Then Select Case KeyCode Case left5 n = PlayerN - 1 Case right n = PlayerN + 1 Case down m = PlayerM + 1 Case up m = PlayerM - 1 Case Else Exit Sub End Select Else Select Case KeyCode Case vbKeyLeft n = PlayerN - 1 Case vbKeyRight n = PlayerN + 1 Case vbKeyDown m = PlayerM + 1 Case vbKeyUp m = P

4、layerM - 1 Case Else Exit Sub End Select End If If LegalMove(m, n) Then PositionPlayer m, n 建立二维数组On Error GoTo errhandlerCommonDialog1.ShowOpenfnum = FreeFileOpen CommonDialog1.FileName For Input As #fnumInput #fnum, NumRows, NumColsReDim LegalMove(1 To NumRows, 1 To NumCols) For m = 1 To NumRows L

5、ine Input #fnum, row_info For n = 1 To NumCols ch = Mid$(row_info, n, 1) LegalMove(m, n) = (ch <> "#") If LCase$(ch) = "s" Then ' 入口. PlayerM = m PlayerN = n ElseIf LCase$(ch) = "f" Then ' 出口. MFinish = m NFinish = n End If Next n Next mClose #fnumWidth =

6、ScaleX(SQUARE_WID * NumCols, ScaleMode, vbTwips) + _ Width - ScaleX(ScaleWidth, ScaleMode, vbTwips) Height = ScaleY(SQUARE_HGT * NumRows, ScaleMode, vbTwips) + _ Height - ScaleY(ScaleHeight, ScaleMode, vbTwips)开始画图. Cls For m = 1 To NumRows For n = 1 To NumCols If LegalMove(m, n) Then If m = MFinish

7、 And n = NFinish Then clr = vbRed Else clr = vbWhite End If Else clr = bcolor End If Line (n * SQUARE_WID, m * SQUARE_HGT)-Step(-SQUARE_WID, -SQUARE_HGT), clr, BF Next n Next m擦除小人的上一个位置. If PlayerM > 0 Then a = (PlayerN - 1) * SQUARE_WID + (SQUARE_WID - Picplayer.Width) / 2 b = (PlayerM - 1) * S

8、QUARE_HGT + (SQUARE_HGT - Picplayer.Height) / 2 Line (a - 1, b - 1)-Step(Picplayer.Width, Picplayer.Height), vbWhite, BF End If画出现在位置的小人. a = (n - 1) * SQUARE_WID + (SQUARE_WID - Picplayer.Width) / 2 b = (m - 1) * SQUARE_HGT + (SQUARE_HGT - Picplayer.Height) / 2 PaintPicture Picplayer.Picture, a, b

9、检查是否到达终点. If m = MFinish And n = NFinish Then If MsgBox("您用时" & _ Int(Timer - StartTime) & " 秒." & _ vbCrLf & "再玩一次?", vbYesNo, _ "Congratulations") = vbYes _ Then Form_Load Else Unload Me End If End If从文件中读取数据建立一个二维数组 fnum = FreeFile 得到空文件号Ope

10、n SelectFile For Input As #fnum 打开文件并指定缓冲区的文件号Input #fnum, NumRows, NumCols 读入数组的行(NumRows)和列(NumCols)值ReDim LelMove(1 To NumRows, 1 To NumCols) 定义动态数组的大小ch = Mid(row, c, 1) row为读入的每行内容LelMove(r, c) = (ch <> "#") 判断ch <> "#"成立则为True,否则为FalseScaleModevbPixels。窗口的属性四、设计

11、方案的完善及目前存在的问题1设计方案要完善的地方 1 增加迷宫路线的复杂程度。2 自行设置移动键并可以随时调用。2. 目前存在的问题1尚未达到:在设计模式能够通过鼠标直接绘制的方式设计迷宫,并能将所设计的布局保存到文本文件中,即设计时用鼠标左键开辟通道,CTRL+鼠标左键设置迷宫入口,CTRL+鼠标右键设置迷宫出口。2未完成对三维路线图的设置.五、本次设计的收获及心得体会 选择这样一个题目,很多地方无从下手,很多知识课本上涉及的不是很多,经过多方查找资料,程序员指南和控件参考手册都成了必备的参考工具,把各部分需要用的程序相关代码罗列出来,然后进行整和,这道题对我来将挑战性是非常大的,但通过这次实习,我发现VB作为一种语言工具,能够设计出各种各样的程序,完成不同的功能,是很有用的,以后决心努力学习VB,学好VB。六、对该题目和VB设计的意见和建议1. 对该题目的意见和建议可以运用控件知识,自行设置移动键。可以尝试设置三维路线图。可以适当添加背景音乐,增加趣味性。可以适当添加程序,能够显示排名。2对本次设计的意见和建议很想自己设计一套程序,这次设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论