放一个image控件 格子多少你自己调整procedure TForm1.FormCreate(Sender: TObject); var len:integer; rwidth,rheight: Integer; begin len:=0; rwidth:= 13*(33+24); rheight:= 13*33; while len<=rheight do begin image1.Canvas.Brush.Color:=clnavy; image1.Canvas.Pen.Color:=clGray; image1.Canvas.MoveTo(0,len); image1.Canvas.LineTo(rwidth,len); inc(len,13); end; len:=0; while len<=rwidth do begin image1.Canvas.Brush.Color:=clnavy; image1.Canvas.Pen.Color:=clGray; image1.Canvas.MoveTo(len,0); image1.Canvas.LineTo(len,rheight); inc(len,13); end; end;
//点鼠标时自己再判断一下unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;type TForm1 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); var len:integer; rwidth,rheight: Integer; begin len:=0; rwidth:= 20*(33+24); rheight:= 20*33; while len<=rheight do begin image1.Canvas.Brush.Color:=clnavy; image1.Canvas.Pen.Color:=clGray; image1.Canvas.MoveTo(0,len); image1.Canvas.LineTo(rwidth,len); inc(len,20); end; len:=0; while len<=rwidth do begin image1.Canvas.Brush.Color:=clnavy; image1.Canvas.Pen.Color:=clGray; image1.Canvas.MoveTo(len,0); image1.Canvas.LineTo(len,rheight); inc(len,20); end; end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Image1.Canvas.Ellipse(x-8,y-8,x+8,y+8);end;end.
五子棋人人对局完整解决方案 unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, BusinessSkinForm, bsSkinData, bsSkinCtrls, ExtCtrls, DB, DBClient, jpeg;type TForm1 = class(TForm) bsSkinLabel1: TbsSkinLabel; bsSkinLabel2: TbsSkinLabel; bsSkinLabel3: TbsSkinLabel; bsSkinLabel4: TbsSkinLabel; bsBusinessSkinForm1: TbsBusinessSkinForm; bsSkinData1: TbsSkinData; bsSkinButton1: TbsSkinButton; Panel1: TPanel; Image1: TImage; Image2: TImage; procedure Button1Click(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormCreate(Sender: TObject); procedure bsSkinButton1Click(Sender: TObject); private { Private declarations } public arr:array[0..18] of array[0..18] of boolean; aryint:array[0..18] of array[0..18] of integer; lef,rigt,m:integer; { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); //var //abc:array['a'..'z'] of string; begin // form1.Canvas.MoveTo(10,10); // form1.Canvas.LineTo(100,100); end;procedure TForm1.FormPaint(Sender: TObject); var abc:array[0..18] of string; str:string; i,n,g,a,b:integer; begin for i:=1 to 19 do begin str:=inttostr(i); form1.Canvas.Pen.Color:=clblack; form1.Canvas.MoveTo(i*30,30); form1.Canvas.LineTo(i*30,19*30); form1.Canvas.TextOut(10,i*30-5,inttostr(I)); end; for g:=0 to 18 do begin if g<8 then abc[g]:=Chr(65+g) else abc[g]:=chr(66+g); end; for n:=0 to 18 do begin form1.Canvas.Pen.Color:=clblack; form1.Canvas.MoveTo(30,(n+1)*30); form1.Canvas.LineTo(19*30,(n+1)*30); form1.Canvas.TextOut((n+1)*30-3,10,abc[n]); end; for a:=0 to 18 do begin for b:=0 to 18 do begin if aryint[a][b]=1 then begin form1.Canvas.Brush.Color:=clblack; form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12); end else if aryint[a][b]=2 then begin form1.Canvas.Brush.Color:=clwhite; form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12); end; end; end;end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var abc:array[0..18] of string; str:string; i,n,g,a,b:integer; begin bsskinlabel3.Caption:=inttostr(x); bsskinlabel4.Caption:=inttostr(y); if x mod 30 >=15 then begin i:=x div 30+1; end else i:=x div 30; if y mod 30 >= 15 then begin n:=y div 30 +1 ; end else n:=y div 30; lef:=i; rigt:=n; if aryint[i][n]=0 then begin if m=0 then begin form1.Canvas.Brush.Color:=clblack; form1.Canvas.Ellipse(i*30-12,n*30-12,i*30+12,n*30+12); arr[i][n]:=true; aryint[i][n]:=1; m:=1; if (aryint[i+1][n]=1) and (aryint[i+2][n]=1) and (aryint[i+3][n]=1) and (aryint[i+4][n]=1) then showmessage('黑方胜' ); if (aryint[i+1][n+1]=1) and (aryint[i+2][n+2]=1) and (aryint[i+3][n+3]=1) and (aryint[i+4][n+4]=1) then showmessage('黑方胜' ); if (aryint[i+1][n-1]=1) and (aryint[i+2][n-2]=1) and (aryint[i+3][n-3]=1) and (aryint[i+4][n-4]=1) then showmessage('黑方胜' ); if (aryint[i-1][n]=1) and (aryint[i-2][n]=1) and (aryint[i-3][n]=1) and (aryint[i-4][n]=1) then showmessage('黑方胜' ); if (aryint[i-1][n+1]=1) and (aryint[i-2][n+2]=1) and (aryint[i-3][n+3]=1) and (aryint[i-4][n+4]=1) then showmessage('黑方胜' ); if (aryint[i-1][n-1]=1) and (aryint[i-2][n-2]=1) and (aryint[i-3][n-3]=1) and (aryint[i-4][n-4]=1) then showmessage('黑方胜' ); end else begin form1.Canvas.Brush.Color:=clwhite; form1.Canvas.Ellipse(i*30-12,n*30-12,i*30+12,n*30+12); arr[i][n]:=true; aryint[i][n]:=2; m:=0; if (aryint[i+1][n]=2) and (aryint[i+2][n]=2) and (aryint[i+3][n]=2) and (aryint[i+4][n]=2) then showmessage('白方胜' ); if (aryint[i+1][n+1]=2) and (aryint[i+2][n+2]=2) and (aryint[i+3][n+3]=2) and (aryint[i+4][n+4]=2) then showmessage('白方胜' ); if (aryint[i+1][n-1]=2) and (aryint[i+2][n-2]=2) and (aryint[i+3][n-3]=2) and (aryint[i+4][n-4]=2) then showmessage('白方胜' ); if (aryint[i-1][n]=2) and (aryint[i-2][n]=2) and (aryint[i-3][n]=2) and (aryint[i-4][n]=2) then showmessage('白方胜' ); if (aryint[i-1][n+1]=2) and (aryint[i-2][n+2]=2) and (aryint[i-3][n+3]=2) and (aryint[i-4][n+4]=2) then showmessage('白方胜' ); if (aryint[i-1][n-1]=2) and (aryint[i-2][n-2]=2) and (aryint[i-3][n-3]=2) and (aryint[i-4][n-4]=2) then showmessage('白方胜' ); end; end; if i<9 then bsskinlabel1.Caption:='竖树标: '+chr(i+64)//inttostr(i); else bsskinlabel1.Caption:='竖树标: '+chr(i+65); bsskinlabel2.Caption:='横树标: '+inttostr(n); end;procedure TForm1.FormCreate(Sender: TObject); var a,b:integer; begin for a:=0 to 18 do begin for b:=0 to 18 do begin aryint[a][b]:=0; end; end; for a:=0 to 18 do begin for b:=0 to 18 do begin arr[a][b]:=false; end; end; end;procedure TForm1.bsSkinButton1Click(Sender: TObject); var abc:array[0..18] of string; str:string; i,n,g,a,b:integer; begin for i:=1 to 19 do begin str:=inttostr(i); form1.Canvas.Brush.Color:=clblack; form1.Canvas.MoveTo(i*30,30); form1.Canvas.LineTo(i*30,19*30); form1.Canvas.TextOut(10,i*30-5,inttostr(I)); end; for n:=0 to 18 do begin form1.Canvas.Brush.Color:=clblack; form1.Canvas.MoveTo(30,(n+1)*30); form1.Canvas.LineTo(19*30,(n+1)*30); form1.Canvas.TextOut((n+1)*30-3,10,abc[n]); end; for a:=0 to 18 do begin for b:=0 to 18 do begin if aryint[a][b]=1 then begin form1.Canvas.Brush.Color:=clblack; form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12); end else if aryint[a][b]=2 then begin form1.Canvas.Brush.Color:=clwhite; form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12); end; end; end; for g:=0 to 18 do begin if g<8 then abc[g]:=Chr(65+g) else abc[g]:=chr(66+g); end; end;end.
procedure drawchessboard(); var x:integer; begin Form1.Canvas.Pen.Color:=clblue; for x:=1 to 15 do begin form1.Canvas.MoveTo(30,x*30); form1.Canvas.LineTo(450,x*30); end; for x:=1 to 15 do begin form1.Canvas.MoveTo(x*30,30); form1.Canvas.lineTo(x*30,450); end; end;
格子多少你自己调整procedure TForm1.FormCreate(Sender: TObject);
var
len:integer;
rwidth,rheight: Integer;
begin
len:=0;
rwidth:= 13*(33+24);
rheight:= 13*33;
while len<=rheight do
begin
image1.Canvas.Brush.Color:=clnavy;
image1.Canvas.Pen.Color:=clGray;
image1.Canvas.MoveTo(0,len);
image1.Canvas.LineTo(rwidth,len);
inc(len,13);
end; len:=0;
while len<=rwidth do
begin
image1.Canvas.Brush.Color:=clnavy;
image1.Canvas.Pen.Color:=clGray;
image1.Canvas.MoveTo(len,0);
image1.Canvas.LineTo(len,rheight);
inc(len,13);
end;
end;
Image1.Canvas.Ellipse(2,2,8,8);
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
var
len:integer;
rwidth,rheight: Integer;
begin
len:=0;
rwidth:= 20*(33+24);
rheight:= 20*33;
while len<=rheight do
begin
image1.Canvas.Brush.Color:=clnavy;
image1.Canvas.Pen.Color:=clGray;
image1.Canvas.MoveTo(0,len);
image1.Canvas.LineTo(rwidth,len);
inc(len,20);
end; len:=0;
while len<=rwidth do
begin
image1.Canvas.Brush.Color:=clnavy;
image1.Canvas.Pen.Color:=clGray;
image1.Canvas.MoveTo(len,0);
image1.Canvas.LineTo(len,rheight);
inc(len,20);
end;
end;procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Canvas.Ellipse(x-8,y-8,x+8,y+8);end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, BusinessSkinForm, bsSkinData, bsSkinCtrls, ExtCtrls,
DB, DBClient, jpeg;type
TForm1 = class(TForm)
bsSkinLabel1: TbsSkinLabel;
bsSkinLabel2: TbsSkinLabel;
bsSkinLabel3: TbsSkinLabel;
bsSkinLabel4: TbsSkinLabel;
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinData1: TbsSkinData;
bsSkinButton1: TbsSkinButton;
Panel1: TPanel;
Image1: TImage;
Image2: TImage;
procedure Button1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure bsSkinButton1Click(Sender: TObject);
private
{ Private declarations }
public
arr:array[0..18] of array[0..18] of boolean;
aryint:array[0..18] of array[0..18] of integer;
lef,rigt,m:integer;
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
//var
//abc:array['a'..'z'] of string;
begin
// form1.Canvas.MoveTo(10,10);
// form1.Canvas.LineTo(100,100);
end;procedure TForm1.FormPaint(Sender: TObject);
var
abc:array[0..18] of string;
str:string;
i,n,g,a,b:integer;
begin
for i:=1 to 19 do
begin
str:=inttostr(i);
form1.Canvas.Pen.Color:=clblack;
form1.Canvas.MoveTo(i*30,30);
form1.Canvas.LineTo(i*30,19*30);
form1.Canvas.TextOut(10,i*30-5,inttostr(I));
end;
for g:=0 to 18 do
begin
if g<8 then
abc[g]:=Chr(65+g)
else
abc[g]:=chr(66+g);
end;
for n:=0 to 18 do
begin
form1.Canvas.Pen.Color:=clblack;
form1.Canvas.MoveTo(30,(n+1)*30);
form1.Canvas.LineTo(19*30,(n+1)*30);
form1.Canvas.TextOut((n+1)*30-3,10,abc[n]);
end;
for a:=0 to 18 do
begin
for b:=0 to 18 do
begin
if aryint[a][b]=1 then
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12);
end
else if aryint[a][b]=2 then
begin
form1.Canvas.Brush.Color:=clwhite;
form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12);
end;
end;
end;end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
abc:array[0..18] of string;
str:string;
i,n,g,a,b:integer;
begin
bsskinlabel3.Caption:=inttostr(x);
bsskinlabel4.Caption:=inttostr(y);
if x mod 30 >=15 then
begin
i:=x div 30+1;
end
else
i:=x div 30;
if y mod 30 >= 15 then
begin
n:=y div 30 +1 ;
end
else
n:=y div 30;
lef:=i;
rigt:=n;
if aryint[i][n]=0 then
begin
if m=0 then
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.Ellipse(i*30-12,n*30-12,i*30+12,n*30+12);
arr[i][n]:=true;
aryint[i][n]:=1;
m:=1;
if (aryint[i+1][n]=1) and (aryint[i+2][n]=1) and (aryint[i+3][n]=1) and (aryint[i+4][n]=1) then
showmessage('黑方胜' );
if (aryint[i+1][n+1]=1) and (aryint[i+2][n+2]=1) and (aryint[i+3][n+3]=1) and (aryint[i+4][n+4]=1) then
showmessage('黑方胜' );
if (aryint[i+1][n-1]=1) and (aryint[i+2][n-2]=1) and (aryint[i+3][n-3]=1) and (aryint[i+4][n-4]=1) then
showmessage('黑方胜' );
if (aryint[i-1][n]=1) and (aryint[i-2][n]=1) and (aryint[i-3][n]=1) and (aryint[i-4][n]=1) then
showmessage('黑方胜' );
if (aryint[i-1][n+1]=1) and (aryint[i-2][n+2]=1) and (aryint[i-3][n+3]=1) and (aryint[i-4][n+4]=1) then
showmessage('黑方胜' );
if (aryint[i-1][n-1]=1) and (aryint[i-2][n-2]=1) and (aryint[i-3][n-3]=1) and (aryint[i-4][n-4]=1) then
showmessage('黑方胜' );
end
else
begin
form1.Canvas.Brush.Color:=clwhite;
form1.Canvas.Ellipse(i*30-12,n*30-12,i*30+12,n*30+12);
arr[i][n]:=true;
aryint[i][n]:=2;
m:=0;
if (aryint[i+1][n]=2) and (aryint[i+2][n]=2) and (aryint[i+3][n]=2) and (aryint[i+4][n]=2) then
showmessage('白方胜' );
if (aryint[i+1][n+1]=2) and (aryint[i+2][n+2]=2) and (aryint[i+3][n+3]=2) and (aryint[i+4][n+4]=2) then
showmessage('白方胜' );
if (aryint[i+1][n-1]=2) and (aryint[i+2][n-2]=2) and (aryint[i+3][n-3]=2) and (aryint[i+4][n-4]=2) then
showmessage('白方胜' );
if (aryint[i-1][n]=2) and (aryint[i-2][n]=2) and (aryint[i-3][n]=2) and (aryint[i-4][n]=2) then
showmessage('白方胜' );
if (aryint[i-1][n+1]=2) and (aryint[i-2][n+2]=2) and (aryint[i-3][n+3]=2) and (aryint[i-4][n+4]=2) then
showmessage('白方胜' );
if (aryint[i-1][n-1]=2) and (aryint[i-2][n-2]=2) and (aryint[i-3][n-3]=2) and (aryint[i-4][n-4]=2) then
showmessage('白方胜' );
end;
end;
if i<9 then
bsskinlabel1.Caption:='竖树标: '+chr(i+64)//inttostr(i);
else
bsskinlabel1.Caption:='竖树标: '+chr(i+65);
bsskinlabel2.Caption:='横树标: '+inttostr(n);
end;procedure TForm1.FormCreate(Sender: TObject);
var
a,b:integer;
begin
for a:=0 to 18 do
begin
for b:=0 to 18 do
begin
aryint[a][b]:=0;
end;
end;
for a:=0 to 18 do
begin
for b:=0 to 18 do
begin
arr[a][b]:=false;
end;
end;
end;procedure TForm1.bsSkinButton1Click(Sender: TObject);
var
abc:array[0..18] of string;
str:string;
i,n,g,a,b:integer;
begin
for i:=1 to 19 do
begin
str:=inttostr(i);
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.MoveTo(i*30,30);
form1.Canvas.LineTo(i*30,19*30);
form1.Canvas.TextOut(10,i*30-5,inttostr(I));
end;
for n:=0 to 18 do
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.MoveTo(30,(n+1)*30);
form1.Canvas.LineTo(19*30,(n+1)*30);
form1.Canvas.TextOut((n+1)*30-3,10,abc[n]);
end;
for a:=0 to 18 do
begin
for b:=0 to 18 do
begin
if aryint[a][b]=1 then
begin
form1.Canvas.Brush.Color:=clblack;
form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12);
end
else if aryint[a][b]=2 then
begin
form1.Canvas.Brush.Color:=clwhite;
form1.Canvas.Ellipse(a*30-12,b*30-12,a*30+12,b*30+12);
end;
end;
end;
for g:=0 to 18 do
begin
if g<8 then
abc[g]:=Chr(65+g)
else
abc[g]:=chr(66+g);
end;
end;end.
var x:integer;
begin
Form1.Canvas.Pen.Color:=clblue;
for x:=1 to 15 do
begin
form1.Canvas.MoveTo(30,x*30);
form1.Canvas.LineTo(450,x*30);
end;
for x:=1 to 15 do
begin
form1.Canvas.MoveTo(x*30,30);
form1.Canvas.lineTo(x*30,450);
end;
end;