depth: 飞棋的深度固定为9且如果双方都进入飞子阶段则深度再减半
This commit is contained in:
parent
ab716466dd
commit
4961c0cafe
|
@ -117,6 +117,8 @@ Depth AIAlgorithm::changeDepth()
|
|||
};
|
||||
#endif /* ENDGAME_LEARNING */
|
||||
|
||||
const Depth flyingDepth = 9;
|
||||
|
||||
if (pos->phase & PHASE_PLACING) {
|
||||
if (rule.nTotalPiecesEachSide == 12) {
|
||||
d = placingDepthTable_12[rule.nTotalPiecesEachSide * 2 - pos->getPiecesInHandCount(BLACK) - pos->getPiecesInHandCount(WHITE)];
|
||||
|
@ -141,6 +143,19 @@ Depth AIAlgorithm::changeDepth()
|
|||
if (d == 0) {
|
||||
d = movingDepthTable[pieces];
|
||||
}
|
||||
|
||||
// Can fly
|
||||
if (rule.allowFlyWhenRemainThreePieces) {
|
||||
if (pb == rule.nPiecesAtLeast ||
|
||||
pw == rule.nPiecesAtLeast) {
|
||||
d = flyingDepth;
|
||||
}
|
||||
|
||||
if (pb == rule.nPiecesAtLeast &&
|
||||
pw == rule.nPiecesAtLeast) {
|
||||
d = flyingDepth / 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (unlikely(d > reduce)) {
|
||||
|
@ -155,6 +170,8 @@ Depth AIAlgorithm::changeDepth()
|
|||
d = FIX_DEPTH;
|
||||
#endif
|
||||
|
||||
assert(d <= 32);
|
||||
|
||||
loggerDebug("Depth: %d\n", d);
|
||||
|
||||
return d;
|
||||
|
|
Loading…
Reference in New Issue