我正试图在静态搜索算法中实现一个[医]消旋,用于连接四个游戏。
该算法用于国际象棋游戏如下:
int Quiesce( int alpha, int beta ) {
int stand_pat = Evaluate();
if( stand_pat >= beta )
return beta;
if( alpha < stand_pat )
alpha = stand_pat;
until( every_capture_has_been_examined ) {
MakeCapture();
score = -Quiesce( -beta, -alpha );
TakeBackMove();
if( score >= beta )
return beta;
if( score > alpha )
alpha = score;
}
return alpha;
}我明白这个想法,但不幸的是,这篇文章没有更多的细节。我不明白“直到( every_capture_has_been_examined )”这句话:这是怎么做的连接四局吗?在这样的游戏中,人们将如何评估沉默的举动?此外,没有深度参数,这是否意味着静态搜索只适用于单个深度?据我所知,似乎是这样。
下面是我的connect游戏的一个示例输出,其中发生了地平线效应(如果我正确理解的话):

发布于 2022-08-09 08:16:09
静态不需要深度参数(例如,如果您的评估需要它),但是它会越来越深,因此它有一个真正的深度。
在这里,你需要与国际象棋不同的想法,在国际象棋中,它不仅是捕捉移动,而且所有的动作都被认为是“响亮的”,例如强迫移动。连接4中的静止状态很可能是有强制反应的位置,就像对手连续3次而你需要阻挡一样。或者如果您只能在1列中放置,因为所有其他列都已满。
https://stackoverflow.com/questions/72827113
复制相似问题