求五子棋获胜的算法

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

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;

}

免责声明:本站发布的游戏攻略(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!