怎样判断已经有一方胜利就是怎样判断已经有一个方向上的棋子数量达到5个最好给出算法

解决方案 »

  1.   

    to
    snake_eye以空格为判断条件是最好的,什么意思,能说明白一点吗
      

  2.   

    我想楼主要的是这个把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;
      

  3.   

    (15,15)的2维数组,1表示黑,2表示白 然后做遍历看某一列、行、斜行是否连续5个同值,做法见wenww(小不点)