diff --git a/NineChess/include/config.h b/NineChess/include/config.h index 4d6d7371..a5481cd6 100644 --- a/NineChess/include/config.h +++ b/NineChess/include/config.h @@ -59,11 +59,12 @@ //define DEEPER_IF_ONLY_ONE_LEGAL_MOVE #define HASH_MAP_ENABLE -#define CLEAR_HASH_MAP #ifdef HASH_MAP_ENABLE +#define CLEAR_HASH_MAP #define HASH_MAP_CUTDOWN -#endif /* HASH_MAP_ENABLE */ +//#define HASH_MAP_DEBUG +#endif #define MEMORY_POOL diff --git a/NineChess/src/ninechessai_ab.cpp b/NineChess/src/ninechessai_ab.cpp index e412388d..16990b87 100644 --- a/NineChess/src/ninechessai_ab.cpp +++ b/NineChess/src/ninechessai_ab.cpp @@ -53,12 +53,14 @@ NineChessAi_ab::NineChessAi_ab() : nodeCount(0), evaluatedNodeCount(0), #ifdef HASH_MAP_ENABLE +#ifdef HASH_MAP_DEBUG hashEntryCount(0), hashHitCount(0), hashInsertNewCount(0), hashAddrHitCount(0), hashReplaceCozDepthCount(0), hashReplaceCozHashCount(0), +#endif #endif requiredQuit(false) { @@ -834,7 +836,9 @@ int NineChessAi_ab::alphaBetaPruning(depth_t depth, value_t alpha, value_t beta, value_t probeVal = probeHash(hash, depth, alpha, beta, bestMove, type); if (probeVal != INT16_MIN /* TODO: valUNKOWN */ && node != rootNode) { +#ifdef HASH_MAP_DEBUG hashHitCount++; +#endif #ifdef DEBUG_AB_TREE node->isHash = true; #endif @@ -1118,7 +1122,9 @@ const char* NineChessAi_ab::bestMove() evaluatedNodeCount = 0; #ifdef HASH_MAP_ENABLE +#ifdef HASH_MAP_DEBUG qDebug() << "Hash hit count:" << hashHitCount; +#endif #endif //qDebug() << "sizeof(Node) = " << sizeof(Node); diff --git a/NineChess/src/ninechessai_ab.h b/NineChess/src/ninechessai_ab.h index 95fe7df3..0039052a 100644 --- a/NineChess/src/ninechessai_ab.h +++ b/NineChess/src/ninechessai_ab.h @@ -248,6 +248,7 @@ private: size_t evaluatedNodeCount; #ifdef HASH_MAP_ENABLE +#ifdef HASH_MAP_DEBUG // Hash 统计数据 size_t hashEntryCount; size_t hashHitCount; @@ -255,6 +256,7 @@ private: size_t hashAddrHitCount; size_t hashReplaceCozDepthCount; size_t hashReplaceCozHashCount; +#endif #endif // 局面数据栈