Alpha-Beta搜索算法

来自WHY42
imported>Soleverlee2015年4月27日 (一) 02:45的版本 (以“<source lang="cpp"> int CBoard::AlphaBetaSearch(int depth, int alpha, int beta){ int value; STRUCT_MOVEMENT MoveArray[128]; STRUCT_MOVEMENT mv; int i; if(depth...”为内容创建页面)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
int CBoard::AlphaBetaSearch(int depth, int alpha, int beta){
	int value;
	STRUCT_MOVEMENT MoveArray[128];
	STRUCT_MOVEMENT mv;
	int i;

	if(depth ==0)
		return Eval();

	int num = GenAllMove(MoveArray);
	for(i = 0 ; i<num; i++){
		mv = MoveArray[i];
		MakeMove(mv);
		value = -AlphaBetaSearch(depth -1, -beta, -alpha);
		UnMakeMove();
		if(value >= beta)
			return beta;
		if(value > alpha){
			alpha = value;
			if(depth == MaxDepth)
				BestMove = mv;
		}
	}
	return alpha;
}