⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 delphiMP3播放器
💻 PAS
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ScktComp, Grids, Menus, StdCtrls;

type
  Tmainform = class(TForm)
    DrawGrid1: TDrawGrid;
    procedure FormCreate(Sender: TObject);
    procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
    Tag:array[0..18,0..18]of integer;
    {0 for none,1 for black,2 for white}
    IsBlack:boolean;
  public
    { Public declarations }
    function IsWin(IsBlack:boolean):boolean; //whether win
  end;

var
  mainform: Tmainform;

implementation

{$R *.DFM}

function Tmainform.IsWin(IsBlack:boolean):boolean;
label exit1;
var
  i,j:integer;
  wtag:integer;
begin
  IsWin:=false;
  if IsBlack then
    wtag:=1 else
    wtag:=2;
  for i:=0 to 18 do
    for j:=0 to 14 do
    begin
      {是否有行连成}
      if (i<15)
      and(Tag[i,j]=wtag)
      and(Tag[i+1,j]=wtag)
      and(Tag[i+2,j]=wtag)
      and(Tag[i+3,j]=wtag)
      and(Tag[i+4,j]=wtag)
      then
      begin
        IsWin:=True;
        goto exit1;
      end;
      {是否有列连成}
      if (Tag[i,j]=wtag)
      and(Tag[i,j+1]=wtag)
      and(Tag[i,j+2]=wtag)
      and(Tag[i,j+3]=wtag)
      and(Tag[i,j+4]=wtag)
      then
      begin
        IsWin:=True;
        goto exit1;
      end;
      {是否有主对角线连成}
      if (i<15)
      and(Tag[i,j]=wtag)
      and(Tag[i+1,j+1]=wtag)
      and(Tag[i+2,j+2]=wtag)
      and(Tag[i+3,j+3]=wtag)
      and(Tag[i+4,j+4]=wtag)
      then
      begin
        IsWin:=True;
        goto exit1;
      end;
      {是否有副对角线连成}
      if (Tag[i,j]=wtag)
      and(Tag[i-1,j+1]=wtag)
      and(Tag[i-2,j+2]=wtag)
      and(Tag[i-3,j+3]=wtag)
      and(Tag[i-4,j+4]=wtag)
      then
      begin
        IsWin:=True;
        goto exit1;
      end;
    end;
  exit1:
end;

procedure Tmainform.FormCreate(Sender: TObject);
var
  i,j:integer;
begin
  for i:=0 to 18 do
    for j:=0 to 18 do
    begin
      Tag[i,j]:=0;
    end;
  IsBlack:=true;
  DrawGrid1.Canvas.Pen.Color :=clBlack;
  DrawGrid1.Canvas.Brush.Color :=clBlack;
end;

procedure Tmainform.DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  DrawGrid1.Canvas.Pen.Color :=clBlack;
  DrawGrid1.Canvas.Brush.Color :=clBlack;
  if tag[acol,arow]=1 then
    DrawGrid1.Canvas.Ellipse(acol*21,arow*21,(acol+1)*21,(arow+1)*21)
    else if tag[acol,arow]=2 then
      DrawGrid1.Canvas.Arc(acol*21,arow*21,(acol+1)*21,(arow+1)*21,acol*21,arow*21,acol*21,arow*21)
      else
      begin
        DrawGrid1.Canvas.Pen.Color :=clWhite;
        DrawGrid1.Canvas.Brush.Color :=clWhite;
        DrawGrid1.Canvas.Ellipse(acol*21,arow*21,(acol+1)*21,(arow+1)*21);
      end;
end;

procedure Tmainform.DrawGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  col,row:integer;
  i,j:integer;
begin
  DrawGrid1.Canvas.Pen.Color :=clBlack;
  DrawGrid1.Canvas.Brush.Color :=clBlack;
  DrawGrid1.MouseToCell(x,y,col,row);
  if tag[col,row]=0 then
  begin
    if IsBlack then
    begin
      DrawGrid1.Canvas.Ellipse(col*21,row*21,(col+1)*21,(row+1)*21);
      tag[col,row]:=1;
    end else
    begin
      DrawGrid1.Canvas.Arc(col*21,row*21,(col+1)*21,(row+1)*21,col*21,row*21,col*21,row*21);
      tag[col,row]:=2;
    end;
    if IsWin(IsBlack) then
    begin
      if IsBlack then
        if MessageDlg('黑不垃圾的赢了',mtInformation,[mbOK],0)=mrOK then
        begin
          for i:=0 to 18 do
            for j:=0 to 18 do
            begin
              tag[i,j]:=0;
            end;
          DrawGrid1.Invalidate;
        end;
      if not IsBlack then
        if MessageDlg('白猪赢了',mtInformation,[mbOK],0)=mrOK then
        begin
          for i:=0 to 18 do
            for j:=0 to 18 do
            begin
              tag[i,j]:=0;
            end;
          DrawGrid1.Invalidate;
        end;
      end;
      IsBlack:=not IsBlack;
    end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -