- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Visual Basic课程设计报告
题目1: 拼图游戏 难度: ***
指导教师:
姓 名: 学 号: 专 业: 班 级: 学 院: 日 期:
题目简介
(1)本题目要求设计一个拼图游戏程序,要求如下:
指定一幅完整的图片,将其分割成m*n个小图块,打乱后重新排列,其中有一个没有图片的“空当” 如图————
(2)使用鼠标单击与空当相邻的图块可以与其互换位置。
(3)利用空当位置使原图恢复原来的顺序,并记下玩家的移动步数,游戏过程中可以查看参考图以方便顺利通过游戏。
2、设计思路与总体方案
本程序包含五个窗体模块,其中以窗体frmMain的作用最为主要,该模块负责加载选定的图片并按所选的行列数分割,进行随机排列并加载空当,实现鼠标点击时其中的图块时与相邻的空当进行替换,实现拼图完成这个结束动作。
该模块中主要的变量有Rows , Cols ,Arrange() ,space,started,steps showref Function isOK()
其中,Rows , Cols ,showref这三个为全局变量,分别表示行数 ,列数,以及是否显示参考图(因此showref为逻辑型变量)其余变量为模块级变量,started也为逻辑变量,负责显示游戏是否已开始,Arrange()数组表示联系图像控件与数组的关系,space显示空当的位置,steps来记录玩家所走的步数,Function isOK()用来检验拼图是否已经完成的函数,为逻辑性变量。除外,过程变量tt(0 to2), b(0 to 2),s , r , c用来写入或读取排行榜中的记录。
其中,还设有菜单栏,通过CommonDialog控件负责实现“打开图片”与“配置颜色”对话框,并同时还拥有打开frmRecod(排行榜窗体模块)的工能。
主要代码(游戏初始时加载图片):
Dim i As Integer
Dim n As Integer
CD.Filter = 图片文件(*.JPG,*.BMP)|*.jpg;*.bmp
CD.DialogTitle = 打开图片
CD.InitDir = App.Path \pics
CD.ShowOpen (显示指定图片对话框)
If CD.FileName = Then Exit Sub
If started Then
For i = 1 To Rows * Cols - 1 (清除已有的控件数组元素)
Unload imgPT(i)
Next
imgPT(0).Picture = LoadPicture()
If showref Then frmRef.Image1.Picture = LoadPicture()
Else
Me.Picture = LoadPicture()
End If
frmDivide.Show 1, Me (显示指定行列对话框)
PC.Picture = LoadPicture(CD.FileName)
PC.Rows = Rows
PC.Cols = Cols
n = Rows * Cols
imgPT(0).Width = 320 / Cols (窗体以像素为单位)
imgPT(0).Height = 240 / Rows
窗体frmDivide载入图片后弹出此窗口,负责提示玩家进行图片行列数的选择,用以调节游戏等级,可分为3*3,3*4, 4*3 ,4*4 这四种模式。玩家通过两个VScroll控件调节TextBox中的行列数,通过
Text1.Text = VScroll1.Value
Text2.Text = VScroll2.Value
frmMain.Rows = Text1.Text,
frmMain.Cols = Text2.Text
赋值语句来与frmMain模块进行数值传递。
窗体frmRef通过窗体frmMain中的“显示参考图”按钮来显示玩家游戏时的所需的参考图,frmMain通过 showref = Not showref
If showref Then
Load frmRef
frmRef.Image1.Picture = PC.Picture
frmRef.Top = Me.Top
frmRef.Left = Me.Left + Me.Width
文档评论(0)