




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
VB课程设计:拼图游戏5篇 第一篇:VB课程设计:拼图游戏VisualBasic课程设计报告题目1:拼图游戏难度:***指导教师:姓名:学号:专业:班级:学院:日期:1.题目简介(1)本题目要求设计一个拼图游戏程序,要求如下:指定一幅完整的图片,将其分割成m*n个小图块,打乱后重新排列,其中有一个没有图片的“空当”如图————(2)使用鼠标单击与空当相邻的图块可以与其互换位置。(3)利用空当位置使原图恢复原来的顺序,并记下玩家的移动步数,游戏过程中可以查看参考图以方便顺利通过游戏。2、设计思路与总体方案本程序包含五个窗体模块,其中以窗体frmMain的作用最为主要,该模块负责加载选定的图片并按所选的行列数分割,进行随机排列并加载空当,实现鼠标点击时其中的图块时与相邻的空当进行替换,实现拼图完成这个结束动作。该模块中主要的变量有Rows,Cols,Arrange(),space,started,stepsshowrefFunctionisOK()其中,Rows,Cols,showref这三个为全局变量,分别表示行数,列数,以及是否显示参考图(因此showref为逻辑型变量)其余变量为模块级变量,started也为逻辑变量,负责显示游戏是否已开始,Arrange()数组表示联系图像控件与数组的关系,space显示空当的位置,steps来记录玩家所走的步数,FunctionisOK()用来检验拼图是否已经完成的函数,为逻辑性变量。除外,过程变量tt(0to2),b(0to2),s,r,c用来写入或读取排行榜中的记录。其中,还设有菜单栏,通过CommonDialog控件负责实现“打开图片”与“配置颜色”对话框,并同时还拥有打开frmRecod(排行榜窗体模块)的工能。主要代码(游戏初始时加载图片):DimiAsIntegerDimnAsIntegerCD.Filter=“图片文件(*.JPG,*.BMP)|*.jpg;*.bmp”CD.DialogTitle=“打开图片”CD.InitDir=App.Path&“pics”CD.ShowOpen(显示指定图片对话框)IfCD.FileName=“"ThenExitSubIfstartedThenFori=1ToRows*Cols1)Fori=0Ton1LoadimgPT(i)NextFori=0Ton1Then(将图块赋给控件数组元素)imgPT(i).Picture=PC.GraphicCell(Arrange(i))ElseimgPT(i).Picture=LoadPicture()space=I(将“打乱”前图片右下角的图块设为空)EndIfNextEndSub难点(2)——————————当你单击图片时判断是否与空当相邻并进行移动。解决方法:计算这两者分别所处的行列,利用IF语句进行判断,通过改变Image的Index值来改变所显示的图片,而非移动这个控件。该过程代码如下:c1=spaceModCols(计算空档的行列)r1=spaceColsc2=IndexModCols(计算点击的行列)r2=IndexColsIfAbs(c1r2)=0OrAbs(c1r2)=1Then(判断是否相邻)n=Arrange(Index)Arrange(Index)=Arrange(space)Arrange(space)=nimgPT(space)=PC.GraphicCell(Arrange(space))imgPT(Index)=LoadPicture()(进行替换)难点(3)———————————————判定拼图结束IfisOK()ThenMsgBox”恭喜,完成拼图!共用了“&steps&”步。"'Fori=1ToRows*Cols1IfArrange(i)iThenExitForNextIfi=Cols*RowsThenisOK=True(isOK=True时,IF语句运行使得游戏结束)4、设计中尚存的不足分析本游戏中的图片排列顺序为随机排列,虽然代码简易,同时可以得到较为随机的乱序图片外,50%的几率会出现下面这一个意想不到的问题————奇排列在偶数次移动后无法转化为偶排列。(拼图最后两块的位置颠倒且无法逆转)如a,b图所示,图中的a是3*3数字拼图标准的结果,则对于图b的状态是不可能变换成a的。证明起来需要用到高等代数里逆序数的概念,具体的说是用到了一个简单的定理。定义:在一个1,2,...,n的排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。逆序数为偶数的排列称为偶排列;逆序数为奇数的排列称为奇排列推论:数列进行偶数次相邻对换,数列的奇偶性不改变我们将空格看成数字9(数字9对应空位),按正

一只****ua
实名认证
内容提供者


最近下载
贵州省城市管理行政执法条例.doc
贵州省城市管理行政执法条例.doc
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf