ありがとうございます!!! MIKIさんの考えているアルゴリズムを見てひらめきました! 左上⇒右へ⇒一番右へ行ったら次の段の一番左へ…と進むアルゴリズムですが…どうでしょ!? b(){  (マス,最小)=最小調査()  if(最小==-1){戻0} //解  else if(最小==0){戻1} //矛盾  else if(最小==1){マス移動して戻b()}  else if(最小>1){   R=1;行ける方向ループ{    仮移動; S=b();    if(S==2 || (S==0 && R==0)){戻2} // 複数解    if(S==0){R=0} // 解   }; 戻1  } }