Пример #1
0
void DecisionTree::setAntTreeAfraid(){
	DecisionTreeNode defaultNode;
	m_rootNode = new DecisionTreeNode(1, &defaultNode, "root -> State:VIEW");
	DecisionTreeNode* lView = new DecisionTreeNode(2, &defaultNode, "lView -> T:HOME");
	DecisionTreeNode* rView = new DecisionTreeNode(3, &defaultNode, "rView -> State:HUNGER");
	DecisionTreeNode* lHunger = new DecisionTreeNode(4, &defaultNode, "lHunger -> T:FOOD");
	DecisionTreeNode* rHunger = new DecisionTreeNode(5, &defaultNode, "rHunger -> T:HOME");

	m_rootNode->setStateID(States::VIEW);

	m_rootNode->setLeftNode(lView);
	lView->setCondition(true);
	lView->setLeaf(true);
	lView->setTarget(TreeOutput::HOME); 

	m_rootNode->setRightNode(rView);
	rView->setCondition(false);
	rView->setStateID(States::HUNGER);

	rView->setLeftNode(lHunger);
	lHunger->setCondition(true);
	lHunger->setLeaf(true);
	lHunger->setTarget(TreeOutput::FOOD);

	rView->setRightNode(rHunger);
	rHunger->setCondition(false);
	rHunger->setLeaf(true);
	rHunger->setTarget(TreeOutput::HOME);

	m_currentNode = m_rootNode;
}
Пример #2
0
void DecisionTree::setAntTreeAggressiv(){
	DecisionTreeNode defaultNode;
	m_rootNode = new DecisionTreeNode(1, &defaultNode);
	DecisionTreeNode* lView = new DecisionTreeNode(2, &defaultNode);
	DecisionTreeNode* rView = new DecisionTreeNode(3, &defaultNode);
	DecisionTreeNode* lHunger = new DecisionTreeNode(4, &defaultNode);
	DecisionTreeNode* rHunger = new DecisionTreeNode(5, &defaultNode);

	m_rootNode->setStateID(States::VIEW);

	m_rootNode->setLeftNode(lView);
	lView->setCondition(true);
	lView->setLeaf(true);
	lView->setTarget(TreeOutput::PLAYER);

	m_rootNode->setRightNode(rView);
	rView->setCondition(false);
	rView->setStateID(States::HUNGER);

	rView->setLeftNode(lHunger);
	lHunger->setCondition(true);
	lHunger->setLeaf(true);
	lHunger->setTarget(TreeOutput::FOOD);

	rView->setRightNode(rHunger);
	rHunger->setCondition(false);
	rHunger->setLeaf(true);
	rHunger->setTarget(TreeOutput::PATROL);

	m_currentNode = m_rootNode;
}