From f5a7f0ce22cd914b161d9cdf40f8cd356c5da5bd Mon Sep 17 00:00:00 2001 From: CalciteM Date: Sun, 30 Jun 2019 16:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A9=20rootNode=20=E4=B9=9F=E9=80=9A?= =?UTF-8?q?=E8=BF=87=20addNode()=20=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NineChess/src/ninechessai_ab.cpp | 12 ++++++------ NineChess/src/ninechessai_ab.h | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/NineChess/src/ninechessai_ab.cpp b/NineChess/src/ninechessai_ab.cpp index 2ae0176d..c21abc7b 100644 --- a/NineChess/src/ninechessai_ab.cpp +++ b/NineChess/src/ninechessai_ab.cpp @@ -26,13 +26,10 @@ NineChessAi_ab::~NineChessAi_ab() void NineChessAi_ab::buildRoot() { - rootNode = new Node; - rootNode->value = 0; - rootNode->move = 0; - rootNode->parent = nullptr; + rootNode = addNode(nullptr, 0, 0); } -void NineChessAi_ab::addNode(Node *parent, int value, int move) +struct NineChessAi_ab::Node *NineChessAi_ab::addNode(Node *parent, int value, int move) { Node *newNode = new Node; newNode->parent = parent; @@ -70,7 +67,10 @@ void NineChessAi_ab::addNode(Node *parent, int value, int move) newNode->cmd = cmd; #endif - parent->children.push_back(newNode); + if (parent) + parent->children.push_back(newNode); + + return newNode; } // 静态hashmap初始化 diff --git a/NineChess/src/ninechessai_ab.h b/NineChess/src/ninechessai_ab.h index 2a770834..2c21b4d0 100644 --- a/NineChess/src/ninechessai_ab.h +++ b/NineChess/src/ninechessai_ab.h @@ -93,7 +93,7 @@ protected: void buildRoot(); // 增加新节点 - void addNode(Node* parent, int value, NineChess::move_t move); + struct Node *addNode(Node *parent, int value, NineChess::move_t move); // 评价函数 int evaluate(Node *node);