五子棋判断输赢的算法描述.[小糊涂的灵感]

function 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;

//初始化棋盘.

//画黑白棋子

Never giveup. Thanks the world.
原文地址:https://www.cnblogs.com/cnsoft/p/54716.html