- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB课程设计报告
姓名:巴哈达提
学院:动力工程学院
班级
学号:0808260113
在本次的课程设计中,我选的题目是拼图游戏和数字拼图游戏。从整体上来说两题目都用到了控件数组及如何随机的排列图块……具体点:
(1)控件数组(2)公共对话框控件(3)PictureClip控件(4)多模块设计(5)图片的应用
我通过本次设计了解更多的知识,将过去所学的知识与操作结合起来,
同时也检验对过去一年的学习的成果,让我们在以后的进一步学习中明确方向。
题目介绍
“拼图游戏”是一种老少皆宜、容易上手的益智游戏,本题目要求编制一个拼图游戏程序。该程序的使用方法如下:(1)指定一副完整的图片,将其分割成m*n个小图块并打乱顺序后重新排列,其中有一块没有图块的空档。(2)使用鼠标单击与空档相邻的图块使该图块与空档位置互换。(3)利用空档位置移动各图块,最终恢复图片原貌,完成拼图。游戏过程中,可以打开参考图帮助查找各图块的正确位置。
同样“数字拼图游戏”是拼图游戏的一种。窗口中共有9个位置,但只有8个方块,每个方块上有一个数字(1~8)。首先将这些方块的顺序打乱,然后利用空档位置移动各方块,直到将方块的顺序复原为止,移动方块所用的步数越少越好。
拼图游戏
1。题目分析
运行程序,显示开始界面。为了使界面更生动,在进入游戏前显示一个背景图像。
选择菜单中的“打开图片”命令,显示 “打开图片”对话框要求指定一个图形文件。“打开图片”对话框应使用公共对话框实现,并且指能指定以*.JPG和*.BMP为扩展名的文件。用户从对话框顶部的“查看”菜单中选择“缩略图”方式,可以在打开图片之前对图片预览。
选择图片之后,程序弹出“指定行列数”对话框,提示将图片分几行几列。使用文本框后面的微调按钮可以调节行数和列数,行列数均限制在3~7之间。
指定行列数之后,单击对话框的“确定”按钮返回主窗口。程序自动按指定的行列数将图片分割成图块,然后随机排列。
打乱的图片中有一空档位置相邻的图块可以与其互换位置。若单击了空档位置或不与空档相邻的图块,程序不作任何操作。使用此方法移动所有图块直至恢复图片的原貌。所有图片只缺少最右下角的图块。
图片复原时,程序显示消息框表示祝贺,同时显示游戏共使用的步数。
游戏过程中,如果用户希望参考原图,可以单击“显示参考图”按钮,打开“参考图”窗口。要求“参考图”窗口与主窗口靠在一起且上边框对齐。“参考图”窗口打开时,按钮的标题显示为“关闭参考图”,再单击此按钮可以关闭“参考图”窗口。也可以单击其右上角的“关闭”按钮来关闭“参考图”窗口。
因为空档位置和图块之间的间隙直接显示了窗体背景颜色,如果此颜色与当前图片主体颜色很相近,会干扰拼图操作,所以要求窗体背景颜色可更改。从菜单中选择“背景颜色”命令,弹出“颜色”公共对话框,用户从中选择一新颜色即可。
在游戏过程中或在完成后,均可以退出程序或选择“打开图片”菜单命令重新开始一个新图片。
“参考图”窗口应是一个非模态窗口,在关闭主窗口退出程序时,应确保该窗口同时卸载,而不是隐藏,否则该程序不会完全关闭,仍会驻留内存。
使用的模块、过程、变量数组及相互关系
假设CommonDialog控件名为CD、PictureClip控件名为PC、Image控件数组名为imgPT,并在主窗体的声明段中有如下代码(将Rows和Cols声明为全局变量是因为行列数要在另一个窗体中指定)。
Public Rows As Integer, Cols As Integer 图块的行列数
Const GAP As Integer = 2 行列图块的间距
Private Arrange() As Integer 图象控件与数组的对应关系
Private space As Integer 空档的位置
Private started As Boolean 是否已开始
Private steps As Integer 步数
Public showref As Boolean 是否显示参考图
PictureClip控件的GraphicCell属性是一维数组,设置了Picture、Rows和Cols属性之后,GraphicCell属性的下标为0~Rows*Cols-1,所以,Arrange数组可以重定义为Arrange(0 To Rows*Cols-1) 。使用Arrange数组可以在Image控件数组和PictureClip的GraphicCell属性数组之间建立桥梁。Arrange数组的下标代表相应的I
文档评论(0)