求一个算法:计算4*4的拼图游戏是否有解。。。
止戈而立 2008-10-19 10:05:28 写了一个4*4的拼图游戏。。刚才自己玩了一下,发现有些情况是无解的。
比如:
01 02 03 04
05 06 07 08
09 10 11 12
13 15 14
再比如:
01 02 03 04
05 06 07 08
09 10 15 12
13 14 11
无论你怎么玩,最后都无法得到:
再比如:
01 02 03 04
05 06 07 08
09 10 11 12
13 14 15
现在想要一个算法,算出在什么情况下无法“还原”。。。
玩游戏玩到最后发现这种情况是很令人郁闷的,于是想在游戏开始前,先判断是否有解,若无解,则重新对图片进行排序。
大家帮忙想一下这个算法要怎样写。。。
其实拿2*2的来说更加简单明了:
1 2
3
如果打乱顺序后,成了下面3种情况,就无法恢复原来的顺序了:
2 1
3
3 2
1
1 3
2
在以下2种情况则可以恢复原来的排列:
3 1
2
2 3
1