一マスずつ順に仮置きして、破綻なければ再帰的に次のマスへ、全てのマス埋まったら解。以下擬似コードです。
bt(k, w[wy*wx]){
if(k==wy*wx){out(w); return;}//見つけた
if(w[k]){bt(k+1,w); retrun;}//マーカーマスはスルー
for(m=1;m<N;m++){
w[k]=m; '経路仮置き
if まだいける(w) bt(k+1,w);//次のマス
}
w[k]=0;//マス戻す
}
w[wy*wx]=初期配置; '0=空白,1..Nはマーカー
bt(0,w);
0そうだね プレイ済み