ナンバープレィス・数独について
「数独」・ナンバープレイスをテーマにしてプログラムで遊ぶ












  1. 集合型配列の定義
    type
      Tkn = 0..9;
      TknSet = set of Tkn;
      TknAry = array of array of TknSet;  //集合配列
    
     集合型の配列を定義する。

  2. 配列の宣言
    var
      Form1: TForm1;
      DArray : array of array of Integer;
      KnAry : TknAry;     //集合型配列
    
    
     整数型の配列
     集合型の配列

  3. フォーム生成時に
    procedure TForm1.FormCreate(Sender: TObject);
    begin
        setlength(knary,9,9);  //集合型配列を作成
        setlength(DArray,9,9); //データー配列を作成
    
    省略
    動的配列の生成を行う。

  4. 集合配列の初期設定
    {********************************************
    **  置くことの出来る可能性のある数値を
    **  各配列から計算して 集合配列に設定する。
    **
    **
    *********************************************}
    procedure TForm1.Set_KnAry();
    var
      i,j : integer;
    begin
      for i:=low(DArray) to high(DArray) do
          for j := low(DArray[i]) to high(DArray[i]) do
            if DArray[i,j] = 0 then
              knAry[i,j] := [1..9]; //初期値は1〜9までとし
            else
              KnAry[i,j] := [];
    
    end;
    
    
    
    
    
    
    
    
    
    
    
     こうすることにより、マス目に数値が
     入っていない場合は [ 1 〜 9 ] までの
     数字を置くことが可能という意味になる。