其实这问题不知道和计算机有没有关系现在用vb写了个简单的拼图游戏,3*3那种网上搜索的到的那种,每次打乱顺序都随机,但似乎如果打乱顺序是仅仅2张图片交换了位置就很难玩出会不会这种情况没有解的。。比如正确顺序是:1 2 3
4 5 6
7 8 现在打乱的顺序是1 2 3
4 5 8
7 69号位置是空白位,用来移动图片的这种情况怎么玩出。。
4 5 6
7 8 现在打乱的顺序是1 2 3
4 5 8
7 69号位置是空白位,用来移动图片的这种情况怎么玩出。。
解决方案 »
- vb新手请教一个关于flash控件的问题
- vb 怎样判断一个字符串是不是有效的时间
- Winsock多用户连接的问接!!!!!
- 一个奇怪的问题~~~~~ 请大家来看看是什么原因
- 大家给我来推荐进销存系统,我们公司计划采用,如果好的话,可能要在全国的分公司推广使用,商机无限,大家快来,具体情况可以给我发到邮
- 如何让mshflexgrid ,datagrid等表格控件也支持鼠标滑轮?
- 关于远程连接数据库的问题 急!急!急!
- 什么是硬件狗?
- 急问高手:如何将选项按钮分组?
- 各位兄弟请教DataReport的一个问题
- 请问Form移动的事件怎么获取?
- 使用CreateScalableFontResource等函数安装字体的问题
Image1(i).Enabled = True '使Image1响应鼠标事件 Image1(x(i)).Picture = PictureClip1.GraphicCell(i) '让图片的8个单元分别赋予 8个Image控件
Next这个是目前随机实现的方法。
1 图块。编号 A-H。
2 图的位置,或者更形象,叫作棋盘,它有 9 个可以放图块的格子,编号 1-9。
┌─┬─┬─┐
│1│2│3│
├─┼─┼─┤
│4│5│6│
├─┼─┼─┤
│7│8│9│
└─┴─┴─┘
每个格子由于其位置的关系,相邻格子(可移入图块的格子)的数目不一样。
1、3、7、9 有 2 个;
2、4、6、8 有 3 个;
5 有 4 个。你可以用一张数据库表或数组变量来记住每个格子的相邻格子的状态。
1 2400
2 1350
3 2600
4 1570
5 2468
6 3590
7 4800
8 5790
9 6800初始状态,图块放在格子 1-8 中,A-1,B-2,...H-8。这也是最终玩家要还原的状态。
你可以用一个数组变量来记住各个格子中的图块编号,用一个变量记住当前空格的编号(当然也可以不要这个变量,用上一个数组同时担任这个任务,但另开一个变量可以省去查找空格时的循环搜索)。还要一个变量记录上一步的空格编号(后面你可以看到它的用处)。你现在的任务就是移动 n 步,打乱初始状态。这个 n 你可以通过取随机数得到。但 n 必须足够大,以使局面足够复杂。现在,你的空格是 9,它只有两个相邻格,也就是说,只有 6、8 中的图块 F、H 有可能移进来。你取一个随机数,使其结果是 0 或 1。这样就可以选出这两个格子中的 1 个,完成一步移动。记录新的状态。然后再像上面那样随机选取一个格子来移动。假如你上一步是 6->9,6 有 3 个相邻格子。你取随机数 0-2,选出一个格子。不过,这一次你要检查一下选出的是否上一步的空格 9,以免往复移动。如果是,重新选一次。就是这样,一直移动 n 步,就是你要提供给玩家的局面。按你记录的状态显示局面。由于你的局面是通过移动得到的,它至少有一个解,就是你移动的逆过程。