超出邊界搜索和不超出邊界的搜索

前文說過,一個點的分值不可以低於其兄弟點分值,否則觸發剪裁。假如兄弟點最佳分值爲8(left值),那麼當前點分值不高於8都可觸發剪裁。當前點可以返回其具體分值(7、6、5、4....)這叫超出邊界(left == 8)。也可以返回8,這叫不超出邊界。

function dynamism(depth,upperLeft,left)
{
	if(depth >= MAXDEPTH){
		return quiescence();
	}		
        else{
            var arr = getMoves();
            var val = upperLeft;
 
            for(var i=0;i<arr.length;++i){
 
                var v = dynamism(depth+1,left,val);
                if(v >= -left){
                    return -v;//超出邊界的搜索
                    //return left;//不超出邊界的搜索
                }
            
                if(v > val){
                    val = v; 
                }
            }
            return -val;
        }
}

兩者在效率和結果上是一樣的。至於對置換表命中效率的影響,也難有定論。 所以只需要知道這個概念即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章