第32講 数独(ナンバープレイス)問題解決ソフトVer.3の制作
(数独(ナンバープレイス)問題作成ソフトに挑戦する人は☆☆)


第2話 
入力順の決定を1つのセルにするにはどうしたらよいか
ここでは、
       void nyuryokujyunkoutiku(char g){
          char i,j,k,h,jh,ih;
          char min=100;
          k=0;
          for(i=0;i<9;i++){
            for(j=0;j<9;j++){
              if(a[i][j]==0){
                h=1;
                if(g>0){
                  for(k=0;k<g;k++){
                    if(j==zx[k] && i==zy[k]){  //この辺の記述にも問題がありました。以降赤が訂正箇所。
                      h=0;
                      break;
                    }
                  }
                }
                if(h==1){
                  if(b[i][j]<min){
                    min=b[i][j];
                    ih=i;
                    jh=j;
                  }
                }
              }
            } 
          }
          zx[g]=jh;
          zy[g]=ih;

         
 if(g+1<cn){
            nyuryokujyunkoutiku(g+1);
          }

        }
      }
を改善して、1つだけの入力順決定にするにはどうしたよいのかのヒントを述べます。
ヒントは、
          if(g+1<cn){
            nyuryokujyunkoutiku(g+1);
          }

です。1個だけ決定すればよいので、次に進む必要はありませんね。
どうするかは自ずと明らかですよね。
もちろん、void f(char g)の方も改善しなければなりません。



第1話へ 第3話へ


戻る

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)