{2}
procedure InitChess;
var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;
HalfX,HalfY,H:Word;
ex,ey,i,j:Word;
k:integer;
strtemp:string;
begin
DirectVideo:=False;
Randomize;
JustBegin:=True;
V0.VN:=0;
V0.V:=0;V0.D:=25;
V0.LD:=5;V0.RD:=5;
V0.LB:=False;
V0.RB:=False;
for i:=1 to ChessW do
for j:=1 to ChessW do
begin
Order[i,j]:=0;
Value[1,i,j,0]:=V0;
Value[1,i,j,1]:=V0;
Value[1,i,j,2]:=V0;
Value[1,i,j,3]:=V0;
Value[1,i,j,4]:=V0;
Value[2,i,j,0]:=V0;
Value[2,i,j,1]:=V0;
Value[2,i,j,2]:=V0;
Value[2,i,j,3]:=V0;
Value[2,i,j,4]:=V0;
end;
for i:=0 to ChessW+1 do
begin
Order[i,0]:=$ff;
Order[0,i]:=$ff;
Order[i,ChessW+1]:=$ff;
Order[ChessW+1,0]:=$ff;
end;
CurrentX:=ChessW div 2;CurrentY:=ChessW div 2;
grDriver := Detect;
InitGraph(grDriver, grMode,'C:\TP\BGI');
ErrCode := GraphResult;
if ErrCode <> grOk then halt;
SetFillStyle(1,White);
FloodFill(1,1,White);
IconWidth0:=IconWidth div 5;
IconX:=(GetMaxX-IconWidth) div 2;
IconY:=(GetMaxY-IconWidth) div 2;
SetColor(LightGray);
SetFillStyle(1,LightGray);
Circle(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,IconWidth0*1+IconWidth0 div 2);
FloodFill(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,LightGray);
Circle(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,IconWidth0*1+IconWidth0 div 2);
FloodFill(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,LightGray);
SetColor(White);
SetFillStyle(1,White);
Circle(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,IconWidth0 div 2);
FloodFill(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,White);
Circle(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,IconWidth0 div 2);
FloodFill(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,White);
for i:=IconY to IconY+IconWidth0 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0*2 to IconY+IconWidth0*3 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0*4 to IconY+IconWidth0*5 do
for j:=IconX to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0 to IconY+IconWidth0*2 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth-IconWidth0 do
PutPixel(j,i,White);
for i:=IconY+IconWidth0*3 to IconY+IconWidth0*4 do
for j:=IconX+IconWidth0 to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,White);
for i:=IconX+IconWidth0 to IconX+IconWidth0*2 do
for j:=IconY+IconWidth0*1+IconWidth0 div 2 to IconY+IconWidth-IconWidth0 do
if GetPixel(i,j)=LightGray then Point[i,j]:=1;
for i:=IconX+IconWidth0*3 to IconX+IconWidth0*4 do
for j:=IconY+IconWidth0 to IconY+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
if GetPixel(i,j)=LightGray then Point[i,j]:=1;
procedure InitChess;
var
grDriver: Integer;
grMode: Integer;
ErrCode: Integer;
HalfX,HalfY,H:Word;
ex,ey,i,j:Word;
k:integer;
strtemp:string;
begin
DirectVideo:=False;
Randomize;
JustBegin:=True;
V0.VN:=0;
V0.V:=0;V0.D:=25;
V0.LD:=5;V0.RD:=5;
V0.LB:=False;
V0.RB:=False;
for i:=1 to ChessW do
for j:=1 to ChessW do
begin
Order[i,j]:=0;
Value[1,i,j,0]:=V0;
Value[1,i,j,1]:=V0;
Value[1,i,j,2]:=V0;
Value[1,i,j,3]:=V0;
Value[1,i,j,4]:=V0;
Value[2,i,j,0]:=V0;
Value[2,i,j,1]:=V0;
Value[2,i,j,2]:=V0;
Value[2,i,j,3]:=V0;
Value[2,i,j,4]:=V0;
end;
for i:=0 to ChessW+1 do
begin
Order[i,0]:=$ff;
Order[0,i]:=$ff;
Order[i,ChessW+1]:=$ff;
Order[ChessW+1,0]:=$ff;
end;
CurrentX:=ChessW div 2;CurrentY:=ChessW div 2;
grDriver := Detect;
InitGraph(grDriver, grMode,'C:\TP\BGI');
ErrCode := GraphResult;
if ErrCode <> grOk then halt;
SetFillStyle(1,White);
FloodFill(1,1,White);
IconWidth0:=IconWidth div 5;
IconX:=(GetMaxX-IconWidth) div 2;
IconY:=(GetMaxY-IconWidth) div 2;
SetColor(LightGray);
SetFillStyle(1,LightGray);
Circle(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,IconWidth0*1+IconWidth0 div 2);
FloodFill(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,LightGray);
Circle(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,IconWidth0*1+IconWidth0 div 2);
FloodFill(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,LightGray);
SetColor(White);
SetFillStyle(1,White);
Circle(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,IconWidth0 div 2);
FloodFill(IconX+IconWidth-IconWidth0-IconWidth0 div 2,IconY+IconWidth-IconWidth0-IconWidth0 div 2,White);
Circle(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,IconWidth0 div 2);
FloodFill(IconX+IconWidth0*1+IconWidth0 div 2,IconY+IconWidth0*1+IconWidth0 div 2,White);
for i:=IconY to IconY+IconWidth0 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0*2 to IconY+IconWidth0*3 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0*4 to IconY+IconWidth0*5 do
for j:=IconX to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,LightGray);
for i:=IconY+IconWidth0 to IconY+IconWidth0*2 do
for j:=IconX+IconWidth0*1+IconWidth0 div 2 to IconX+IconWidth-IconWidth0 do
PutPixel(j,i,White);
for i:=IconY+IconWidth0*3 to IconY+IconWidth0*4 do
for j:=IconX+IconWidth0 to IconX+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
PutPixel(j,i,White);
for i:=IconX+IconWidth0 to IconX+IconWidth0*2 do
for j:=IconY+IconWidth0*1+IconWidth0 div 2 to IconY+IconWidth-IconWidth0 do
if GetPixel(i,j)=LightGray then Point[i,j]:=1;
for i:=IconX+IconWidth0*3 to IconX+IconWidth0*4 do
for j:=IconY+IconWidth0 to IconY+IconWidth-(IconWidth0*1+IconWidth0 div 2) do
if GetPixel(i,j)=LightGray then Point[i,j]:=1;