parent
2e4d5c1bab
commit
c9cfd6321d
@ -0,0 +1,41 @@
|
||||
import main
|
||||
import math
|
||||
|
||||
'''
|
||||
// 负极大值算法
|
||||
int negamax(GameState S, int depth, int alpha, int beta) {
|
||||
// 游戏是否结束 || 探索的递归深度是否到边界
|
||||
if ( gameover(S) || depth == 0 ) {
|
||||
return evaluation(S);
|
||||
}
|
||||
// 依据预估(历史, 经验)对可行步, 进行排序
|
||||
sort (candidate list);
|
||||
// 遍历每一个候选步
|
||||
foreach ( move in candidate list ) {
|
||||
S' = makemove(S);
|
||||
value = -negamax(S', depth - 1, -beta, -alpha);
|
||||
unmakemove(S')
|
||||
if ( value > alpha ) {
|
||||
// alpha + beta剪枝点
|
||||
if ( value >= beta ) {
|
||||
return beta;
|
||||
}
|
||||
alpha = value;
|
||||
}
|
||||
}
|
||||
return alpha;
|
||||
}
|
||||
'''
|
||||
|
||||
def h(State):
|
||||
return 0
|
||||
def negaMax(State,depth,alpha,beta,moveList):
|
||||
if depth == 0:
|
||||
return h(State)
|
||||
moveList=sorted(moveList)
|
||||
for move in moveList:
|
||||
newState = State#update state
|
||||
value = -negaMax(newState,depth - 1,-beta,-alpha)
|
||||
|
||||
|
||||
|
Loading…
Reference in new issue