在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

5子棋源代碼

5子棋源代碼

更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

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.

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 六月婷婷激情综合| 亚洲va在线va天堂va偷拍| 黄色永久免费网站| 亚洲国产精品久久久久婷蜜芽| 欧美亚洲视频一区| 第一区免费在线观看| 日韩欧美国产片| 污污视频网站在线| 手机av在线免费| 天天做天天爱天天高潮| 久久久一二三四| 男女激烈动态图| 97在线免费视频观看| 日本成人在线不卡| 18禁裸男晨勃露j毛免费观看| 成人短视频在线观看免费| 91大学生片黄在线观看| 无码人妻精品一区二区蜜桃网站| 日韩欧美中文视频| 欧美极品少妇无套实战| 日本www在线视频| 男人舔女人下面高潮视频| 啊啊啊国产视频| 中文字幕第一页亚洲| 成品人视频ww入口| 国产三级日本三级在线播放| 日本黄色福利视频| 日韩欧美中文在线视频| 成人免费性视频| 欧美激情精品久久久久久小说| 高清一区二区视频| 激情五月六月婷婷| 国产又大又硬又粗| 日本特黄在线观看| 亚洲欧洲日产国码无码久久99| 亚洲欧美在线精品| 丁香六月激情网| 国产原创精品在线| 2019日韩中文字幕mv| 在线观看的毛片| 亚洲人成无码网站久久99热国产 | 久草热视频在线观看| 国产免费视频传媒| 国产玉足脚交久久欧美| 亚洲一区二区三区观看| 久久久久久久久久久99| 婷婷视频在线播放| 嫩草影院国产精品| xxxx18hd亚洲hd捆绑| 51自拍视频在线观看| 国产真实乱子伦| 免费极品av一视觉盛宴| mm131国产精品| 日本三级免费网站| 久久这里只有精品18| 爽爽爽在线观看| 国产裸体免费无遮挡| 九一国产精品视频| 日本精品福利视频| 欧美精品久久96人妻无码| 自拍偷拍一区二区三区四区| 欧美视频在线播放一区| 欧美亚洲色图视频| 久久视频免费在线| 最近中文字幕免费mv| 中文字幕免费高清在线| 杨幂毛片午夜性生毛片| 日韩手机在线观看视频| 免费av网址在线| 国产激情在线观看视频| 91淫黄看大片| 亚洲福利精品视频| 国产日韩欧美久久| 天天操精品视频| 成人性做爰片免费视频| 亚洲午夜激情影院| 人妻激情另类乱人伦人妻| 夜夜夜夜夜夜操| 911福利视频| 一级做a爱视频| 欧美性猛交xxxx乱大交91| 日本高清免费在线视频| 日韩精品aaa| 777久久精品一区二区三区无码| 久久婷婷中文字幕| www.夜夜爱| 波多野结衣50连登视频| 黄色高清无遮挡| 欧美美女一级片| 国产精品中文久久久久久| 中国 免费 av| 欧美色图色综合| 中文久久久久久| 中文字幕综合在线观看| 每日在线观看av| 九色porny91| 国产香蕉一区二区三区| 精品少妇人欧美激情在线观看| 日韩精品―中文字幕| jizz欧美性11| 大荫蒂性生交片| 婷婷六月天在线| 国产真人做爰毛片视频直播 | 国产精品333| 欧美激情国内自拍| 浮妇高潮喷白浆视频| 涩涩网站在线看| 欧美色图另类小说| 自拍偷拍视频在线| 国产三级日本三级在线播放| 国产一二三四区在线观看| 农村妇女精品一二区| 国产又粗又大又爽的视频| 欧美两根一起进3p做受视频| 女同性恋一区二区| 亚欧美在线观看| 欧美a在线视频| 激情五月六月婷婷| 一区二区三区国产好的精华液| 日本精品一区在线观看| 老司机午夜网站| 网站在线你懂的| 黑森林精品导航| 午夜欧美福利视频| 久久久精品在线视频| r级无码视频在线观看| 毛片在线视频观看| 91九色国产ts另类人妖| 中国黄色片一级| 婷婷免费在线观看| 日韩精品你懂的| 国内自拍视频网| 中国黄色片免费看| 色播五月综合网| xxww在线观看| 日韩va在线观看| 五月天六月丁香| 欧美h视频在线观看| 裸体裸乳免费看| www.欧美黄色| 中文字幕无码精品亚洲资源网久久| 最新av网址在线观看| 亚洲综合123| 国风产精品一区二区| 91看片淫黄大片91| 东北少妇不带套对白| 国产二区视频在线播放| 欧美韩国日本在线| 五月激情婷婷在线| 国产免费色视频| 日本十八禁视频无遮挡| av观看免费在线| 亚洲精品综合在线观看| 在线观看污视频| 欧美三级一级片| 欧美婷婷精品激情| 日韩不卡一二区| 日本三级免费网站| 亚洲综合激情视频| 国产真人做爰毛片视频直播| 无码人妻丰满熟妇区毛片18| 手机在线成人免费视频| 草草草视频在线观看| 久久久久人妻精品一区三寸| а 天堂 在线| 浮妇高潮喷白浆视频| 奇米视频7777| 国产www免费| 中日韩av在线播放| 精品无码一区二区三区爱欲| wwwwxxxx日韩| 亚洲色成人www永久在线观看| 天天操天天爽天天射| 成人黄色片免费| 天天综合网久久| 国产免费黄色av| 国产 国语对白 露脸| 香港日本韩国三级网站| 国产原创popny丨九色| 欧美日韩一区二区三区电影| 国产极品美女高潮无套久久久| 国产高清免费在线| 亚洲综合婷婷久久| 久久国产乱子伦免费精品| 亚洲一区 在线播放| 五月激情婷婷在线| 亚洲欧美另类动漫| 国产免费黄视频| 黄色成人在线看| 老司机激情视频| 日本丰满大乳奶| 2025韩国大尺度电影| www.国产福利| 亚洲欧美在线精品| 九热视频在线观看| 爱情岛论坛亚洲首页入口章节| 久久久久久久久久久99| 霍思燕三级露全乳照| 我的公把我弄高潮了视频| 日本香蕉视频在线观看|