uses SdkKrnl, OpnSdk, HTML_Sdk, crt;
var Sdk:TSdk;
    i,j,k:word;
    c:char;
    niv:dom0;
    ns:word;
    fn:string;

begin
clrscr;
textmode(3);
niv:=0; ns:=0;
with sdk do begin
Newsheet;
if ParamCount>0then OpenF(ParamStr(1),Sdk);
repeat
 ClrScr;
 gotoxy(1,1);
 for i:=1 to nn do begin
  for j:=1 to nn do BEGIN
   textattr:=val[j,i]+2;
   if niv=0 then Write(GetXY(j,i):3)
   else if GetXYZ(j,i,niv) then Write(#176:3) else Write(#219:3);
   if j mod n=0 then write('|':3);
  END;
  writeln;
   if i mod 3=0 then writeln('-');
 end;
TextAttr:=7;
WriteLn(#$D#$A#$A);
Writeln('Err : ', Errors);
Writeln('All : ', AllDone);
Writeln('Area: ', IsFull_Area);
Writeln('Cub : ', IsFull_Cub);
gotoxy(1,hi(windmax)-1);
write(' | G:Genereaza | N:Nou | R:Rezolva| H:HTML| W:Scrie in "Sudoku.sdk" |'+#$D#$A+
' | Z+<cif>:Arata nivelul | <cif>+<cif>+<cif>:Atribuie val | V:Ver Unicitatea |');
gotoxy(1,hi(windmax)div 2+1);
 c:=readkey;
 case UpCase(c) of
  'G':begin Generate;inc(ns);end;
  '1'..'9':at((ord(c)-49)mod nn+1,(ord(readkey)-49)mod nn+1,(ord(readkey)-49)mod nn+1);
  'A':at((ord(readkey)-49)mod nn+1,(ord(readkey)-49)mod nn+1,(ord(readkey)-49)mod nn+1);
  'V':VerUnic;
  'P':AnalPat((ord(readkey)-49)mod nn+1,(ord(readkey)-49)mod nn+1);
  'N':NewSheet;
  'Z':niv:=(ord(readkey)-49)mod nn+1;
  'W':WriteF('Sudoku.sdk',Sdk);
  'R':Rezolva;
  'H':begin
       Write('NrSdk?    ');readln(ns);
       Write('FileName? ');readln(fn);
       for k:=1 to ns do begin
        generate;HTML_file(fn,sdk,k);
        write(k:length(tex(k))+1);
       end;
      end;
 end;
until c=#27;
end;

halt(0);
end.