分析函数表示电路板的当前状态。它可能/可能不包括最后一步,任何先前的移动或到达棋盘位置的移动顺序。它还应该考虑轮到谁玩。
我的意思是,同一块棋盘对白/黑来说可能是好是坏,这取决于轮到谁。(称为象棋中的zugzwang情况)。
此外,同一个棋盘可以通过多种移动序列到达,因此,是否要将其包含在分析中取决于游戏的类型。(高级国际象棋引擎肯定包括移动顺序,虽然不是用于计算当前棋盘,但用于进一步分析到达该位置的可能性)。然而,在这个游戏中,我认为您的分析功能不需要包含最后或任何先前的移动(顺序)。
编辑:
分析函数示例:
value = 10000*W(4) - 10000*W(3) + 200*W(2.1) + 200*W(1.2) + 100*W(2) + 100*W(1.1) + 2*W(1e) + 10*W(1m) + 30*W(1c) - (10000*B(4) - 10000*B(3) + 200*B(2.1) + 200*B(1.2) + 100*B(2) + 100*B(1.1) + 2*B(1e) + 10*B(1m) + 30*B(1c))
在哪里:
W = white
B = black pieces
4 = made line of 4 pieces
3 = made line of 3 pieces
2 = made line of 2 pieces having possibility of getting extended to 4 from atleast one side
. = blank (ie, 1.2 = W.WW on the board)
1.1 = Piece|Blank|Piece and possibility of extending to 4 from atleast one side
e|m|c = edge|middle|center of board, and possibility of extending to 4 from either sides
该分析函数的正值表示白方较好,0表示平衡板,负值表示黑方有优势。您可以根据将要执行的测试结果更改权重。然而,找到所有可能的组合是一项艰巨的任务,但游戏就是这样 :)