unit Main;
interface
uses
¡¡Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs,
¡¡ExtCtrls, StdCtrls, ComCtrls, Buttons, Graphics, mmsystem;
type
¡¡TForm1 = class(TForm)
¡¡¡¡StatusBar1: TStatusBar;
¡¡¡¡GroupBox1: TGroupBox;
¡¡¡¡GroupBox2: TGroupBox;
¡¡¡¡Panel1: TPanel;
¡¡¡¡Label1: TLabel;
¡¡¡¡BitBtn1: TBitBtn;
¡¡¡¡BitBtn2: TBitBtn;
¡¡¡¡Label3: TLabel;
¡¡¡¡Label4: TLabel;
¡¡¡¡BitBtn3: TBitBtn;
¡¡¡¡Image1: TImage;
¡¡¡¡Image2: TImage;
¡¡¡¡Label5: TLabel;
¡¡¡¡Label2: TLabel;
¡¡¡¡Label6: TLabel;
¡¡¡¡Label7: TLabel;
¡¡¡¡Label8: TLabel;
¡¡¡¡Label9: TLabel;
¡¡¡¡Label10: TLabel;
¡¡¡¡Timer1: TTimer;
¡¡¡¡Label11: TLabel;
¡¡¡¡procedure BitBtn2Click(Sender: TObject);
¡¡¡¡procedure BitBtn1Click(Sender: TObject);
¡¡¡¡procedure Image2MouseDown(Sender: TObject; Button: TMouseButton;
¡¡¡¡¡¡Shift: TShiftState; X, Y: Integer);
¡¡¡¡procedure FormCreate(Sender: TObject);
¡¡¡¡procedure BitBtn3Click(Sender: TObject);
¡¡¡¡procedure Timer1Timer(Sender: TObject);
¡¡¡¡procedure Label11MouseDown(Sender: TObject; Button: TMouseButton;
¡¡¡¡¡¡Shift: TShiftState; X, Y: Integer);
¡¡private
¡¡¡¡{ Private declarations }
¡¡public
¡¡¡¡{ Public declarations }
¡¡end;
¡¡FiveChess_Struct=record
¡¡¡¡¡¡¡¡ x1 : integer;
¡¡¡¡¡¡¡¡ y1 : integer;
¡¡¡¡¡¡¡¡ x2 : integer;
¡¡¡¡¡¡¡¡ y2 : integer;
¡¡¡¡¡¡¡¡ state : byte;
¡¡end;
¡¡FiveChess_Data=array [0..14,0..14] of FiveChess_Struct;
¡¡Player = ( NON,White,Black);
var
¡¡Form1: TForm1;
¡¡Start_Flag : Boolean;
¡¡FiveChess_Array:FiveChess_Data ;
¡¡Online:¡¡player;
¡¡whitewin,blackwin:byte;
¡¡whitetime,blacktime:integer;
¡¡px1,px2,py1,py2 : integer;
¡¡Undo_i,Undo_j : integer;
function Ini_Main():Boolean ;
implementation
uses Option;
{$R *.DFM}
//{$R AOE.RES}
procedure Ini_FiveChess_Array();
var
¡¡¡¡i , j,k: integer;
begin
¡¡¡¡¡¡For i:=0 to 14 do¡¡begin
¡¡¡¡¡¡¡¡¡¡For j:=0 to 14 do begin
¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].x1:=16+25*j;
¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].y1:=16+25*i;
¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].x2:=36+25*j;
¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].y2:=36+25*i;
¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].state:=0;
¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡ end;
end;
procedure Draw_qipan();
var
¡¡¡¡¡¡i,j : integer;
begin
¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=RGB(247,207,16);
¡¡¡¡¡¡Form1.Image2.Canvas.FillRect(Rect(0,0,400,400));
¡¡¡¡¡¡Form1.Image2.Canvas.pen.Color:=RGB(0,0,0);
¡¡¡¡¡¡for i:=1 to 16 do begin
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.MoveTo(0,25*i);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.LineTo (400,25*i);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.MoveTo(25*i,0);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.LineTo (25*i,400);
¡¡¡¡¡¡end;
end;
procedure Undo_Run();
var
¡¡¡¡ x1,x2,y1,y2 : integer;
begin
¡¡¡¡¡¡if¡¡(Undo_i<>-1) and (Undo_j<>-1) then¡¡ begin
¡¡¡¡¡¡¡¡¡¡FiveChess_array[Undo_i,Undo_j].state :=0;
¡¡¡¡¡¡¡¡¡¡x1:= FiveChess_Array[Undo_i,Undo_j].x1-2;
¡¡¡¡¡¡¡¡¡¡y1:= FiveChess_Array[Undo_i,Undo_j].y1-2;
¡¡¡¡¡¡¡¡¡¡x2:= FiveChess_Array[Undo_i,Undo_j].x2+2;
¡¡¡¡¡¡¡¡¡¡y2:= FiveChess_Array[Undo_i,Undo_j].y2+2;
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=RGB(247,207,16);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.FillRect(rect(x1,y1,x2,y2));
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.pen.Color:=RGB(0,0,0);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.MoveTo((x1+x2)div 2-1 , y1);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.LineTo((x1+x2)div 2-1 , y2);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.MoveTo(x1,(y1+y2)div 2-1);
¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.LineTo(x2,(y1+y2)div 2-1);
¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡If Online=black then
¡¡¡¡¡¡¡¡ Online:=White
¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡ Online:=Black;¡¡
end;
function Ini_Main():Boolean ;
begin
¡¡¡¡ Result:=true;
¡¡¡¡ px1:=0;
¡¡¡¡ px2:=0;
¡¡¡¡ py1:=0;
¡¡¡¡ py2:=0;
¡¡¡¡ Undo_i:=-1;
¡¡¡¡ Undo_j:=-1;
¡¡¡¡ whitetime:=0;
¡¡¡¡ blacktime:=0;
¡¡¡¡ form1.Label9.Caption :=inttostr(whitewin);
¡¡¡¡ form1.Label10.Caption :=inttostr(blackwin);
¡¡¡¡ Ini_FiveChess_Array;
¡¡¡¡ Draw_Qipan;
end;
Function Judge_Success_on_off (X,Y,State:integer):Boolean;
var
¡¡¡¡ i,j,k,count : integer;
begin
¡¡¡¡ Count:=0;
¡¡¡¡ Result:=false;
¡¡¡¡ // ÅжÏÊúÁÐ
¡¡¡¡ For i:=X-4 to X+4 do
¡¡¡¡¡¡¡¡ if (i>=0) and (i<=15) then
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if FiveChess_array[i,y].state=state then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Inc(Count) ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if count=5 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ result:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Count:=0;
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡ //ÅжϺáÐÐ
¡¡¡¡ count:=0;
¡¡¡¡ For j:=y-4 to y+4 do
¡¡¡¡¡¡¡¡ if (j>=0) and (j<=15) then
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if FiveChess_array[X,j].state=state then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Inc(Count) ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if count=5 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ result:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Count:=0;
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡ //ÅжÏ'\'·½Ïò
¡¡¡¡ count:=0;
¡¡¡¡ For k:=-4 to 4 do begin
¡¡¡¡¡¡¡¡¡¡¡¡ i:=X+k;
¡¡¡¡¡¡¡¡¡¡¡¡ j:=Y+k;
¡¡¡¡¡¡¡¡¡¡¡¡ if (j>=0) and (j<=15) And(i>=0) and(i<=15)¡¡then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if FiveChess_array[i,j].state=state then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Inc(Count) ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if count=5 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ result:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Count:=0;
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡end;
¡¡¡¡//ÅжÏ'/'·½Ïò
¡¡¡¡ count:=0;
¡¡¡¡ For k:=-4 to 4 do begin
¡¡¡¡¡¡¡¡¡¡¡¡ i:=X+k;
¡¡¡¡¡¡¡¡¡¡¡¡ j:=Y-k;
¡¡¡¡¡¡¡¡¡¡¡¡ if (j>=0) and (j<=15) And(i>=0) and(i<=15)¡¡then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if FiveChess_array[i,j].state=state then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Inc(Count) ;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if count=5 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ result:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Count:=0;
¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡end;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
¡¡¡¡¡¡Application.Terminate ;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
¡¡¡¡ Start_Flag:=true;
¡¡¡¡ If Start_Flag then¡¡begin
¡¡¡¡¡¡¡¡Form1.Image2.Enabled := true;
¡¡¡¡¡¡¡¡Form1.Timer1.Enabled := true;
¡¡¡¡¡¡¡¡Ini_Main;
¡¡¡¡ end;
end;
function Draw_Qizi_White(X,Y : Integer):boolean;
var
¡¡¡¡ i,j,x1,x2,y1,y2 : integer;
begin
¡¡¡¡¡¡result := false;
¡¡¡¡¡¡for i:=0 to 14 do
¡¡¡¡¡¡¡¡¡¡For j:=0 to 14 do begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (X> FiveChess_Array[i,j].x1)and(X<FiveChess_Array[i,j].x2)
¡¡¡¡¡¡¡¡¡¡¡¡and (y> FiveChess_Array[i,j].y1)and(y<FiveChess_Array[i,j].y2)
¡¡¡¡¡¡¡¡¡¡¡¡and (FiveChess_Array[i,j].state=0)¡¡¡¡then
¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if FiveChess_Array[Undo_i,Undo_j].state<>0 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=Rgb(100,100,100);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.FillRect (Rect(px1,py1,px2,py2));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Brush.Color:=Rgb(255,255,255);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Ellipse ( FiveChess_Array[i,j].x1,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].y1,FiveChess_Array[i,j].x2,FiveChess_Array[i,j].y2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Brush.Color:=RGB(255,255,255);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Ellipse ( FiveChess_Array[i,j].x1-2,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_Array[i,j].y1-2,FiveChess_Array[i,j].x2-2,FiveChess_Array[i,j].y2-2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ FiveChess_array[i,j].state:=1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Undo_i:=i;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Undo_j:=j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Brush.Color:=clred;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ px1:= FiveChess_Array[i,j].x1+3;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ py1:= FiveChess_Array[i,j].y1+3;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ px2:= FiveChess_Array[i,j].x2-7;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ py2:= FiveChess_Array[i,j].y2-7;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Ellipse (px1,py1,px2,py2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if Judge_Success_on_off(i,j, FiveChess_Array[i,j].state) then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ whitewin:=whitewin+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if whitewin>1 then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application.MessageBox ('³ôÆå¨!±ÈÓãÍ·»¹³ô£¡','ʤ°ÜÄ˱ø¼Ò³£ÊÂ',0)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application.MessageBox ('°×·½ÒÑʤÀû!','ʤ°ÜÄ˱ø¼Ò³£ÊÂ',0);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ form1.label9.caption:=inttostr(whitewin);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ form1.Image2.Enabled :=false;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Timer1.Enabled := false;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Result := true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ break;
¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡end;
end;
function Draw_Qizi_Black(X,Y : Integer): boolean;
var
¡¡¡¡ i,j,x1,x2,y1,y2 : integer;
begin
¡¡¡¡¡¡result:=false;
¡¡¡¡¡¡for i:=0 to 14 do
¡¡¡¡¡¡¡¡¡¡for j:=0 to 14 do begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡if (X> FiveChess_Array[i,j].x1)and(X<FiveChess_Array[i,j].x2)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ and (y> FiveChess_Array[i,j].y1)and(y<FiveChess_Array[i,j].y2)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ and (FiveChess_Array[i,j].state=0)¡¡¡¡then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if FiveChess_Array[Undo_i,Undo_j].state<>0 then begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.Brush.Color:=Rgb(255,255,255);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Image2.Canvas.FillRect (Rect(px1,py1,px2,py2));
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=RGB(0,0,0);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Ellipse ( FiveChess_Array[i,j].x1,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FiveChess_Array[i,j].y1,FiveChess_Array[i,j].x2,FiveChess_Array[i,j].y2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=RGB(100,100,100);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Ellipse ( FiveChess_Array[i,j].x1-2,
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FiveChess_Array[i,j].y1-2,FiveChess_Array[i,j].x2-2,FiveChess_Array[i,j].y2-2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡FiveChess_array[i,j].state := 2;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Undo_i:=i;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Undo_j:=j;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Brush.Color:=clred;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡px1:= FiveChess_Array[i,j].x1+3;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡py1:= FiveChess_Array[i,j].y1+3;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡px2:= FiveChess_Array[i,j].x2-7;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡py2:= FiveChess_Array[i,j].y2-7;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Form1.Image2.Canvas.Ellipse (px1,py1,px2,py2);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if Judge_Success_on_off(i,j, FiveChess_Array[i,j].state) then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ blackwin:=blackwin+1;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if blackwin>1 then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application.MessageBox ('²»»á°É!ÄѵÀ±ÈÓãÍ·»¹³ô£¡','ʤ°ÜÄ˱ø¼Ò³£ÊÂ',0)
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Application.MessageBox ('ºÚ·½ÒÑʤÀû!','ʤ°ÜÄ˱ø¼Ò³£ÊÂ',0);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ form1.label10.caption:=inttostr(blackwin);
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ form1.Image2.Enabled :=false;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Form1.Timer1.enabled := False;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡end;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Result:=true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ end;
¡¡¡¡¡¡end;
end;
procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
¡¡Shift: TShiftState; X, Y: Integer);
begin
¡¡¡¡¡¡¡¡ if Online = White then¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡if draw_Qizi_white(X,Y) then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Online := Black
¡¡¡¡¡¡¡¡¡¡¡¡end
¡¡¡¡¡¡¡¡ else
¡¡¡¡¡¡¡¡¡¡¡¡¡¡ if draw_Qizi_Black(X,Y) then
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Online:=White;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
¡¡¡¡ Online:=white;
¡¡¡¡ form1.Label11.Caption :='È˲»µ½É˺ÛÀÛÀÛ'#13+'¾Í²»»á¶®µÃºó»Ú!';
¡¡¡¡ Start_Flag:=false;
¡¡¡¡ Form1.Image2.Enabled := false;
¡¡¡¡
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
¡¡¡¡¡¡ form2.show;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
¡¡¡¡¡¡if online=white then
¡¡¡¡¡¡¡¡ whitetime:=whitetime +1
¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡ blacktime:=blacktime +1;
¡¡¡¡¡¡Form1.Label7.caption:=inttostr(whitetime);
¡¡¡¡¡¡Form1.Label8.caption:=inttostr(blacktime);
end;
procedure TForm1.Label11MouseDown(Sender: TObject; Button: TMouseButton;
¡¡Shift: TShiftState; X, Y: Integer);
begin
¡¡¡¡¡¡if (Button = mbleft) and (ssShift in shift) And (form1.Image2.Enabled = true)then
¡¡¡¡¡¡¡¡ Undo_Run;
¡¡¡¡¡¡end;
end.
end;
//////////////////////////
unit Option;
interface
uses
¡¡Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
¡¡StdCtrls, Buttons;
type
¡¡TForm2 = class(TForm)
¡¡¡¡GroupBox1: TGroupBox;
¡¡¡¡RadioButton1: TRadioButton;
¡¡¡¡RadioButton2: TRadioButton;
¡¡¡¡BitBtn1: TBitBtn;
¡¡¡¡BitBtn2: TBitBtn;
¡¡¡¡GroupBox2: TGroupBox;
¡¡¡¡RadioButton3: TRadioButton;
¡¡¡¡RadioButton4: TRadioButton;
¡¡¡¡RadioButton5: TRadioButton;
¡¡¡¡procedure FormCreate(Sender: TObject);
¡¡¡¡procedure BitBtn1Click(Sender: TObject);
¡¡¡¡procedure BitBtn2Click(Sender: TObject);
¡¡private
¡¡¡¡{ Private declarations }
¡¡public
¡¡¡¡{ Public declarations }
¡¡end;
var
¡¡Form2: TForm2;
implementation
uses
¡¡¡¡ Main;
{$R *.DFM}
procedure TForm2.FormCreate(Sender: TObject);
begin
¡¡¡¡¡¡ form2.RadioButton1.Checked := true;
¡¡¡¡¡¡ form2.RadioButton3.Checked := true;
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
¡¡¡¡¡¡if form2.RadioButton1.Checked = true then
¡¡¡¡¡¡¡¡ Online := White
¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡¡¡Online := Black;
¡¡¡¡¡¡if¡¡ form2.RadioButton3.Checked then
¡¡¡¡¡¡¡¡¡¡ begin
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ whitewin:=0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ blackwin:=0;
¡¡¡¡¡¡¡¡¡¡ end ;
¡¡¡¡¡¡Ini_main;
¡¡¡¡¡¡form2.close;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
¡¡¡¡ form2.Close ;
end;
end.
……