求五子棋获胜的算法

2024-07-16 11:17:22作者:饭克斯

这是我写过的检测状态的一个函数,可能不是很好,不过还是可以用的:

privatevoidcheckGameStatus()

{

inti,j;

booleannoLeft=true;

for(i=0;i<rows;i++)

for(j=0;j<cols;j++)

{

if(noLeft&&metrix[i][j]==0)

noLeft=false;

if(metrix[i][j]!=0)

{

intdif;

//left

for(dif=1;dif<5;dif++)

{

if(j-dif==-1||metrix[i][j-dif]!=metrix[i][j])

break;

}

if(dif==5)

{

_status=metrix[i][j];

return;

}

//right

for(dif=1;dif<5;dif++)

{

if(j+dif==cols||metrix[i][j+dif]!=metrix[i][j])

break;

}

if(dif==5)

{

_status=metrix[i][j];

return;

}

//south

for(dif=1;dif<5;dif++)

{

if(i+dif==rows||metrix[i+dif][j]!=metrix[i][j])

break;

}

if(dif==5)

{

_status=metrix[i][j];

return;

}

//west-south

for(dif=1;dif<5;dif++)

{

if(j-dif==-1||i+dif==rows||metrix[i+dif][j-dif]!=metrix[i][j])

break;

}

if(dif==5)

{

_status=metrix[i][j];

return;

}

//est-south

for(dif=1;dif<5;dif++)

{

if(j+dif==cols||i+dif==rows||metrix[i+dif][j+dif]!=metrix[i][j])

break;

}

if(dif==5)

{

_status=metrix[i][j];

return;

}

}

}

if(noLeft)

_status=this.STAT_STANDOFF;

}

展开全文

热门推荐

相关攻略