public void EvaluationFunction(BTNode node) { if (node.getYesNode() != null) { EvaluationFunction(node.getYesNode()); } if (node.getNoNode() != null) { EvaluationFunction(node.getNoNode()); } if (node.getYesNode() == null && node.getNoNode() == null) { node.value = (int)node.getMessage().LongCount(); Console.WriteLine(node.getMessage() + ": " + node.value + ": " + node.IsLeafNode(node)); } }
public int MiniMax(BTNode node, int depth) { if (node.IsLeafNode(node.getYesNode())) { if (depth % 2 == 0) { if (node.value == 0) { node.value = node.getYesNode().value; } else if (node.value < node.getYesNode().value) { node.value = node.getYesNode().value; } } else { if (node.value == 0) { node.value = node.getYesNode().value; } else if (node.value > node.getYesNode().value) { node.value = node.getYesNode().value; } } } if (node.IsLeafNode(node.getNoNode())) { if (depth % 2 == 0) { if (node.value == 0) { node.value = node.getNoNode().value; } else if (node.value < node.getNoNode().value) { node.value = node.getNoNode().value; } } else { if (node.value == 0) { node.value = node.getNoNode().value; } else if (node.value > node.getNoNode().value) { node.value = node.getNoNode().value; } } } if (!node.IsLeafNode(node.getYesNode()) && !node.IsLeafNode(node.getNoNode())) { if (node.getYesNode() != null) { node.value = MiniMax(node.getYesNode(), depth += 1); } if (node.getNoNode() != null) { node.value = MiniMax(node.getNoNode(), depth += 1); } } return(node.value); }