问题描述
在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始状态和目标状态,找到一种最少步骤的移动方法,实现从初始状态到目标状态的转变。
例如:
输入样例:
输入棋子在棋盘的初始状态及目标状态,注第一个3×3为初始状态,第二个3×3为目标状态,且数字之间以空格分开,如:
3 1 2
4 0 5
6 7 8
0 1 2
3 4 5
6 7 8
输出样例:
输出棋盘初始状态及每步的移动结果,直到目标状态,如:
initial
3 1 2
4 0 5
6 7 8
step 1
3 1 2
0 4 5
6 7 8
step 2
0 1 2
3 4 5
6 7 8
总代码
1.盲搜(无向导搜索)
采用广搜的方法,实现无向导搜索。
#include
#include