FAYXGKV6PUEUYD7BKKV27RKCIJ44WD4L4ZO5ICC5XD5KK5I7X2LQC
RSTSRBUU5TMYSKYBYC3APFOPDMCAPUG4ZLJS2TTAH4EBKAPKB5ZQC
UXWFBRYCNZIYOGP6MGMT5KGY6NFS566QDDJJZIP3YJODQI5QIHDAC
U3JHTSEMJLXNKOMAQJQPZKRW6GRPHYLG6DK53XVADIETKVCS2MFQC
WN26XTZ7IZN4WNAVXZ4NKD4CXIU7IC6V7BFNVICNMQUVHBZXBNCAC
6X6DDDY32EIHOKTZ2PXAE4G7DJGRC46MCQGWNV2EATJUAHHUDSUAC
O325HSUUTHFZ2BM23FLJVHZKYV742BLUWCDYSYDMIEAZRU6RRO7AC
}
PlayerType? getShortcutWinner(int currentDepth, Config config,
Node<MoveType, PlayerType?> currentNode) {
if (config.nnpv != null &&
config.useValueAfterDepth != null &&
config.valueThreshold != null) {
if (currentDepth > config.useValueAfterDepth!) {
double currentValue = config.nnpv!.getValue(
currentNode.gameState as GameState<MoveType, PlayerType?>);
if (currentValue >= config.valueThreshold!) {
return currentNode.gameState!.currentPlayer;
}
}
}
return null;