From bae40a0360949b1b98aeddf060af840f485841fb Mon Sep 17 00:00:00 2001 From: CalciteM Team Date: Sat, 6 Jul 2019 16:15:31 +0800 Subject: [PATCH] =?UTF-8?q?AI:=20=E6=9B=B4=E6=94=B9=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=90=8D=E4=BB=A5=E6=9B=B4=E8=A1=A8=E6=84=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NineChess/src/ninechessai_ab.cpp | 8 ++++---- NineChess/src/ninechessai_ab.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/NineChess/src/ninechessai_ab.cpp b/NineChess/src/ninechessai_ab.cpp index 2c3824e6..bc1764b5 100644 --- a/NineChess/src/ninechessai_ab.cpp +++ b/NineChess/src/ninechessai_ab.cpp @@ -94,7 +94,7 @@ struct NineChessAi_ab::Node *NineChessAi_ab::addNode(Node *parent, int value, in mutex NineChessAi_ab::hashMapMutex; unordered_map NineChessAi_ab::hashmap; -void NineChessAi_ab::buildChildren(Node *node) +void NineChessAi_ab::generateLegalMoves(Node *node) { // 如果有子节点,则返回,避免重复建立 if (node->children.size()) { @@ -185,7 +185,7 @@ void NineChessAi_ab::buildChildren(Node *node) } } -void NineChessAi_ab::sortChildren(Node *node) +void NineChessAi_ab::sortLegalMoves(Node *node) { // 这个函数对效率的影响很大,排序好的话,剪枝较早,节省时间,但不能在此函数耗费太多时间 @@ -583,7 +583,7 @@ int NineChessAi_ab::alphaBetaPruning(int depth, int alpha, int beta, Node *node) #endif /* HASH_MAP_ENABLE */ // 生成子节点树,即生成每个合理的着法 - buildChildren(node); + generateLegalMoves(node); // 排序子节点树 //sortChildren(node); @@ -683,7 +683,7 @@ int NineChessAi_ab::alphaBetaPruning(int depth, int alpha, int beta, Node *node) #endif // 排序子节点树 - sortChildren(node); + sortLegalMoves(node); // 返回 return node->value; diff --git a/NineChess/src/ninechessai_ab.h b/NineChess/src/ninechessai_ab.h index 16bcc9dd..0615e672 100644 --- a/NineChess/src/ninechessai_ab.h +++ b/NineChess/src/ninechessai_ab.h @@ -86,11 +86,11 @@ public: void clearHashMap(); protected: - // 建立子节点 - void buildChildren(Node *node); + // 生成所有合法的着法并建立子节点 + void generateLegalMoves(Node *node); - // 子节点排序 - void sortChildren(Node *node); + // 对合法的着法降序排序 + void sortLegalMoves(Node *node); // 清空节点树 void deleteTree(Node *node);