编纂五子棋胜负判定子函数TP时遇到算法困难

编写五子棋胜负判定子函数TP时遇到算法困难我是想用两个变量做计数器,分别在列和行扫一遍,但是请问如何判

编写五子棋胜负判定子函数TP时遇到算法困难
我是想用两个变量做计数器,分别在列和行扫一遍,但是请问如何判定五子是相连的?以及如何对斜行的五子相连进行判定?
[解决办法]


enum {
  eStateBlack,
  eStateWhite,
  eStateNull,
};

bool scanRow(pt* pRow,int nPts,int* pIndex){
 int nState=eStateNull;
 int nCnts=0;
 for(int i=0;i<nPts;++i){
  if(pRow[i].state==nState){
   nCnts++;
  }else{
   nCnts=1;
  }
  if(nCnts==5){
   *pIndex=i-5;
  }
 }
}


从左到右的斜行最多2n-1个,从右到左的也是2n-1个,扫描即可.
不过五子棋好像有6个不算和先行者特定点位不能放子的规定.