VB程序设计实战
编写九宫格拼图游戏程序
素材准备:用Photoshop或其他图像处理软件制作九个图像文件P1.jpg,P2.jpg…P9.jpg,除一张为空白外,图片上依次显示A~H八个字母。
拼图板:可以看作是一个三乘三的表格,有a、b、c三行和L1、L2、L3三列。
那么各个格子可以按照行列分别表示为a1、a2、a3、b1、b2、b3、c1、c3。为了更明确表达格子位置的顺序关系,分别标号为0、1、2、3、4、5、6、7、8。
八张图片:是有顺序的,可以分别表示为A、B、C、D、E、F、G、H。
排序成功:就是罔片按顺序排入格位,格位与图片顺序的对应关系为:A-0、13-1、C-2、D—3、E-4、F—5、G-6、H—7、0-8。
游戏过程:先把各图片和空格的对应顺序打乱排列,然后游戏者开始借助空格沿行或列移动图片,直到图片按照顺序排列到九宫格中。只有与空格相邻的图片才可以移动。
图片移位特征分析 图片只能移到邻近空格,也就是空格在当前图;片邻近行或列。图片移动的必要条件是空位在目标位置,或表示为0图片在目标位置。
按照行列关系分析图片移动可能性
可能情况1:
h、c两行内的图片,有向上移动一格的可能,即:可能从标号为3、4、5、6、7、8的位置对应移到0、1、2、3、4、5的位置。位置标号减3。
这种情况表达为:图片X在N位置,时,N-3的位置为0图片(即空位),图片X与图片0可以交换位置(即图片X移到空位)。也就是,N为3时,0在N-3时,则X到N-3,0到N。
程序模块设计
根据这个游戏程序要实现的主要功能,可以规划设计如下功能模块:
模块一:初始状态模块。用户打开程序,显示九宫格内图片按顺序排列的窗口界面,窗口设有开局按钮。主要实现游戏目标呈现和开局控制功能。
模块二:随机抽局模块。用户单击开局按钮后,程序随机排列图片,图片处在等待响应单击事件状态。主要实现随机布局功能。
模块三:图片移动判断模块。响应鼠标单击事件,按照可能性和必要性条件判断图片能否移动。符合条件就调用图片交换位置模块后返回,不符合规则就返回等待鼠标响应。主要实现移动判断运算功能。