VB课程设计:拼图游戏.pdf





《VB课程设计:拼图游戏.pdf》由会员分享,可在线阅读,更多相关《VB课程设计:拼图游戏.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Visual Basic课程设计报告 题目 1:拼图游戏 难度:*指导教师:姓 名:学 号:专 业:$班 级:学 院:日 期:1 题目简介(1)本题目要求设计一个拼图游戏程序,要求如下:指定一幅完整的图片,将其分割成 m*n 个小图块,打乱后重新排列,其中有一个没有图片的“空当”如图 (2)使用鼠标单击与空当相邻的图块可以与其互换位置。(3)利用空当位置使原图恢复原来的顺序,并记下玩家的移动步数,游戏过程中可以查看参考图以方便顺利通过游戏。2、设计思路与总体方案 本程序包含五个窗体模块,其中以窗体 frmMain的作用最为主要,该模块负责加载选定的图片并按所选的行列数分割,进行随机排列并加载
2、空当,实现鼠标点击时其中的图块时与相邻的空当进行替换,实现拼图完成这个结束动作。该模块中主要的变量有 Rows,Cols,Arrange(),space,started,steps showref Function isOK()其中,Rows,Cols,showref 这三个为全局变量,分别表示行数,列数,以及是否显示参考图(因此 showref 为逻辑型变量)其余变量为模块级变量,started 也为逻辑变量,负责显示游戏是否已开始,Arrange()数组表示联系图像控件与数组的关系,space 显示空当的位置,steps 来记录玩家所走的步数,Function isOK()用来检验拼图是否
3、已经完成的函数,为逻辑性变量。除外,过程变量 tt(0 to2),b(0 to 2),s,r,c 用来写入或读取排行榜中的记录。其中,还设有菜单栏,通过 CommonDialog 控件负责实现“打开图片”与“配置颜色”对话框,并同时还拥有打开 frmRecod(排行榜窗体模块)的工能。主要代码(游戏初始时加载图片):Dim i As Integer Dim n As Integer =图片文件(*.JPG,*.BMP)|*.jpg;*.bmp =打开图片 =&pics (显示指定图片对话框)If =Then Exit Sub If started Then For i=1 To Rows*Co
4、ls-1 (清除已有的控件数组元素)Unload imgPT(i)Next imgPT(0).Picture=LoadPicture()If showref Then =LoadPicture()Else =LoadPicture()End If 1,Me (显示指定行列对话框)=LoadPicture =Rows =Cols n=Rows*Cols imgPT(0).Width=320/Cols (窗体以像素为单位)imgPT(0).Height=240/Rows 窗体 frmDivide载入图片后弹出此窗口,负责提示玩家进行图片行列数的选择,用以调节游戏等级,可分为 3*3,3*4,4*3
5、,4*4 这四种模式。玩家通过两个 VScroll 控件调节 TextBox 中的行列数,通过 =,=赋值语句来与 frmMain 模块进行数值传递。窗体 frmRef通过窗体 frmMain 中的“显示参考图”按钮来显示玩家游戏时的所需的参考图,frmMain通过 showref=Not showref If showref Then Load frmRef =+=关闭参考图 Else Unload frmRef =显示参考图 来打开这个模块以显示参考图,通过对逻辑变量 showref 的非运算加载该模块,设置高度与宽度。窗体 frmRecord 用来显示玩家通过游戏后所处的名次,姓名,移动
6、步数,难度(行数 X 列数),并且只有名次在大于系统默认前三名的状况下才能被录 入 排 行 榜,否 则 会 弹 出“完 成,你 未 进 入 前 三 名!”的 提 醒 框。代码如下:Open&For Input As#1 For l=0 To 2 Input#1,tt(l),b(l),r(l),c(l)(依次读入步数,姓名,行数,列数)Next Close#1 If s=tt(1)Then tt(2)=s:b(2)=InputBox(请输入姓名:,输入框,无名侠):r(2)=Rows:c(2)=Cols:MsgBox 完成,恭喜&b(2)&你成为第三名!,vbInformation If s=t
7、t(0)Then tt(2)=tt(1):tt(1)=s:b(2)=b(1):b(1)=InputBox(请输入姓名:,输入框,无名侠):r(2)=r(1):r(1)=Rows:c(2)=c(1):c(1)=Cols:MsgBox 完成,恭喜&b(1)&你成为第二名!,vbInformation If s tt(0)Then tt(2)=tt(1):tt(1)=tt(0):tt(0)=s:b(2)=b(1):b(1)=b(0):b(0)=InputBox(请输入姓名:,输入框,无名侠):r(2)=r(1):r(1)=r(0):r(0)=Rows:c(2)=c(1):c(1)=c(0):c(0)
8、=Cols:MsgBox 完成,恭喜&b(0)&你成为第一名!,vbInformation (通过以上的 IF 语句先比较出步数在系统默认下的的名次,再通过赋值语句进行排名,同时将姓名,行数,列数也进行赋值处理同步于步数的名次变化,优点是不需建立多维数组进行储存)Open&For Output As#1 For l=0 To 2 Write#1,tt(l),b(l),r(l),c(l)Next Close#1 Else MsgBox 完成,你未进入前三名!,vbInformation End If 窗体 frmHelp 用以显示对本游戏的提示,用以解释游戏无法顺利进行的原因,详情请见(4、设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 课程设计 拼图游戏

限制150内