首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

这是个五子棋人机对弈的核心代码,看不懂啊求解释解决办法

2012-05-21 
这是个五子棋人机对弈的核心代码,看不懂啊,求解释大神先帮我看下下面的代码是不是用的http://www.mscto.co

这是个五子棋人机对弈的核心代码,看不懂啊,求解释
大神先帮我看下下面的代码是不是用的http://www.mscto.com/vcpp/2009021434894.html里的算法?貌似是。

主要帮我看懂计算机如何思考的就行了,目前我能看懂的是nsew分别代表北南东西,五子棋的四个方向,关键是看不懂作者
//se-defend或者//nw-attack的注释是什么意思。

先谢谢大神了!
CPoint CTryDoc::ComputerThink2()
{
  CPoint point;
int max1=0,max2=0,max_x,max_y;
int sco1_nesw[15][15];
  int sco1_ns[15][15];
  int sco1_nwse[15][15];
  int sco1_we[15][15];
  int sco2_nesw[15][15];
  int sco2_ns[15][15];
  int sco2_nwse[15][15];
  int sco2_we[15][15];
int i,j,m,n,k1,k2;
for(i=0;i<15;i++)
for(j=0;j<15;j++)
{
sco1_nesw[i][j]=0;
  sco1_ns[i][j]=0;
  sco1_nwse[i][j]=0;
  sco1_we[i][j]=0;
sco2_nesw[i][j]=0;
  sco2_ns[i][j]=0;
  sco2_nwse[i][j]=0;
  sco2_we[i][j]=0;
sco_nesw[i][j]=0;
sco_ns[i][j]=0;
sco_nwse[i][j]=0;
sco_we[i][j]=0;
sco[i][j]=0;
direction1[i][j]=0;
direction2[i][j]=0;
direction[i][j]=0;
}
for(i=0;i<15;i++)
for(j=0;j<15;j++)
{
///////////////////////////////////////////nwse////////////////////////////////////
isadded=FALSE;
if(condition[i][j]==EMPTY) //se-defend
{
for(m=i+1,n=j+1,k1=0;m<=i+5&&m<15&&n<15&&condition[m][n]==PEOPLE;m++,n++,k1++)
{
sco1_nwse[i][j]+=5;
direction1[i][j]++;
}
while(m<15&&n<15&&condition[m][n]==EMPTY)
{
if(isadded==FALSE)
{
sco1_nwse[i][j]+=2;
isadded=TRUE;
}
k1++;
m++;
n++;
}
}
isadded=FALSE;
if(condition[i][j]==EMPTY) //nw-defend
{
for(m=i-1,n=j-1,k2=0;m>=i-5&&m>=0&&n>=0&&condition[m][n]==PEOPLE;m--,n--,k2++)
{

sco1_nwse[i][j]+=5;
direction1[i][j]++;
}
while(m>=0&&n>=0&&condition[m][n]==EMPTY)
{
if(isadded=FALSE)
{
sco1_nwse[i][j]+=2;
isadded=TRUE;
}
k2++;
m--;
n--;
}
}
if(k1+k2<4) sco1_nwse[i][j]=0;


isadded=FALSE;
if(condition[i][j]==EMPTY) //se-attack
{
for(m=i+1,n=j+1,k1=0;m<=i+5&&m<15&&n<15&&condition[m][n]==COMPUTER;m++,n++,k1++)
{
sco2_nwse[i][j]+=5;
direction2[i][j]++;
}
while(m<15&&n<15&&condition[m][n]==EMPTY)
{
if(isadded==FALSE)
{
sco2_nwse[i][j]+=2;
isadded=TRUE;
}
k1++;
m++;
n++;
}

}

[解决办法]
一般不看别人的代码,如果可以,你可以参考我博客里面五子棋
[解决办法]
人机程序入门可看此书..《PC 游戏编程(人机博弈)》

博弈程序的构架基本就是:搜索算法+估值算法+走法生成算法

[解决办法]
人机博弈程序入门可看此书..《PC 游戏编程(人机博弈)》

博弈程序的构架基本就是:搜索算法+估值算法+走法生成算法

[解决办法]

探讨

人机博弈程序入门可看此书..《PC 游戏编程(人机博弈)》

博弈程序的构架基本就是:搜索算法+估值算法+走法生成算法

热点排行