ристувачем User значень (Nulling);
. повертає true, якщо судоку s заповнена до кінця (SudIsFulling);
. повертає true, якщо число v повинно відображатися на екран (SudVizible);
головоломка судоку алгоритм модульність
Текст програми
unit Game;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, GameSud, WorkWithMatrix, Sudoky, Menus, ExtDlgs;
T = 51; = 25; = class (TForm): TImage;: TPanel;: TComboBox;: TButton;: TButton;: TButton;: TButton;: TMainMenu;: TMenuItem;: TMenuItem; : TMenuItem;: TMenuItem;: TSaveDialog;: TOpenDialog; FormCreate (Sender: TObject); Image1MouseUp (Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer); Button2Click (Sender: TObject); Button1Click (Sender: TObject); Button3Click (Sender: TObject); Button4Click (Sender: TObject); N4Click (Sender: TObject); N2Click (Sender: TObject); N3Click (Sender: TObject);// повертає позицію в матриці після нажптія миші
{Private declarations}
{Public declarations};
: TForm2;: TGameSudoky;, j: Byte;// Координати поточного едемента в матриці
implementation
{$ R *. dfm} CreateFild (var cl: TColor);, J, k1, k2: Integer;: = 0; k2: = 0; I: = 1 to matrix.n do : = 0; j: = 1 to matrix.n mod 3 = 0 then k1: = k1 +5;;: = k2 + T; i mod 3 = 0 then k2: = k2 +5;;;
WriteSud; k1, k2: integer;: Tcolor;: = clSkyBlue; (cl);: = 0; k2: = 0; I: = 1 to matrix.n do: = 0; j : = 1 to matrix.n dos.GameSud [i, j] <> 0 mod 3 = 0 then k1: = k1 +5;;: = k2 + T; i mod 3 = 0 then k2: = k2 +2;;;
TForm2.Button1Click (Sender: TObject); z: byte;: = form2.ComboBox1.ItemIndex; z <> 255 then.SetValInSud (s.GameSud, i, j, z);. DoRec (s.GameSud);. User [i, j]: = true;. UsersPointer [i, j]: = not (s.UsersPointer [i, j]); z: = 0;;;
TForm2.Button2Click (Sender: clSkyBlue; (cl);;;
TForm2.Button3Click (Sender: TObject); l: integer;: boolean;: = s.IsValidSudoky (s.GameSud);. Ans: = nil;. Mlen: = 100;. DoRec ( s.GameSud);: = length (s.Ans); f = True thenl <> 0 then ('Ви на вірному шляху!! ;)' + 'Можливих рішень:' + inttostr (l))
else showmessage ('Ви помилилися!'); showmessage ('Ви помилилися!');
;
TForm2.Button4Click (Sender: TObject); f: boolean;: = s.SudIsFulling (s.GameSud); f = false then showmessage ('Поле не заповнене до кінця!')
elses.SudOK (s.GameSud) = false then Showmessage ('Вірно') Showmessage ('Невірно');;
;
...