Loading model/levelDyckWordToPlanarTree.py +6 −26 Original line number Diff line number Diff line from model.level import Level from model.levelEnum import getTreeDyckWordToPlanarTree from model.node import IncompleteNode, planarTreeToBinaryTree, checkPlanarNode from model.node import IncompleteNode, planarTreeToBinaryTree, checkPlanarNode, binaryTreeToPlanarTree from model.tree import Tree Loading @@ -8,6 +8,7 @@ class LevelDyckWordToPlanarTree(Level): def __init__(self, index): super().__init__(index) self.answer = getTreeDyckWordToPlanarTree(index) self.planarAnswer = Tree(binaryTreeToPlanarTree(self.answer.root)) self.tree = None self.score = None self.initialize() Loading @@ -23,29 +24,9 @@ class LevelDyckWordToPlanarTree(Level): self.tree.root.addNode(index, nodeType) def checkTree(self, index: int, nodeType: str): copyTree = self.tree.copyTree() if nodeType == "branch": copyTree.completeNode(index, nodeType) copyTree = Tree(planarTreeToBinaryTree(copyTree.root)) if self.answer.root.checkNodeBis(copyTree.root): self.tree.completeNode(index, nodeType) return True else: return False else: print(index) print(copyTree.root) depth = copyTree.root.getDepthFromIndex(index) print("depth: ") print(depth) nbChildren = copyTree.root.getNbChildrenFromIndex(index) print("children: ") print(nbChildren) copyTree.root.numberNodes() print("index: ") print(copyTree.root.index) print(checkPlanarNode(self.answer.dyckWord, copyTree.root.index, depth)) if checkPlanarNode(self.answer.dyckWord, copyTree.root.index, depth): copy = self.tree.copyTree() copy.completeNode(index, nodeType) if self.planarAnswer.root.checkNode(copy.root): self.tree.completeNode(index, nodeType) return True else: Loading @@ -56,5 +37,4 @@ class LevelDyckWordToPlanarTree(Level): self.tree = Tree(IncompleteNode([])) def finished(self): root = planarTreeToBinaryTree(self.tree.root) return self.answer.root.isEqual(root) return self.planarAnswer.root.isEqual(self.tree.root) No newline at end of file model/node.py +1 −1 Original line number Diff line number Diff line Loading @@ -623,7 +623,7 @@ class IncompleteNode(PlanarNode): self.children[0].numberIncompleteNodes(index + 1, newBrothers) def getIndex(self, incompleteNodeIndex: int): pass def getDepthFromIndexRec(self, index, brothers=None): if brothers is None: Loading Loading
model/levelDyckWordToPlanarTree.py +6 −26 Original line number Diff line number Diff line from model.level import Level from model.levelEnum import getTreeDyckWordToPlanarTree from model.node import IncompleteNode, planarTreeToBinaryTree, checkPlanarNode from model.node import IncompleteNode, planarTreeToBinaryTree, checkPlanarNode, binaryTreeToPlanarTree from model.tree import Tree Loading @@ -8,6 +8,7 @@ class LevelDyckWordToPlanarTree(Level): def __init__(self, index): super().__init__(index) self.answer = getTreeDyckWordToPlanarTree(index) self.planarAnswer = Tree(binaryTreeToPlanarTree(self.answer.root)) self.tree = None self.score = None self.initialize() Loading @@ -23,29 +24,9 @@ class LevelDyckWordToPlanarTree(Level): self.tree.root.addNode(index, nodeType) def checkTree(self, index: int, nodeType: str): copyTree = self.tree.copyTree() if nodeType == "branch": copyTree.completeNode(index, nodeType) copyTree = Tree(planarTreeToBinaryTree(copyTree.root)) if self.answer.root.checkNodeBis(copyTree.root): self.tree.completeNode(index, nodeType) return True else: return False else: print(index) print(copyTree.root) depth = copyTree.root.getDepthFromIndex(index) print("depth: ") print(depth) nbChildren = copyTree.root.getNbChildrenFromIndex(index) print("children: ") print(nbChildren) copyTree.root.numberNodes() print("index: ") print(copyTree.root.index) print(checkPlanarNode(self.answer.dyckWord, copyTree.root.index, depth)) if checkPlanarNode(self.answer.dyckWord, copyTree.root.index, depth): copy = self.tree.copyTree() copy.completeNode(index, nodeType) if self.planarAnswer.root.checkNode(copy.root): self.tree.completeNode(index, nodeType) return True else: Loading @@ -56,5 +37,4 @@ class LevelDyckWordToPlanarTree(Level): self.tree = Tree(IncompleteNode([])) def finished(self): root = planarTreeToBinaryTree(self.tree.root) return self.answer.root.isEqual(root) return self.planarAnswer.root.isEqual(self.tree.root) No newline at end of file
model/node.py +1 −1 Original line number Diff line number Diff line Loading @@ -623,7 +623,7 @@ class IncompleteNode(PlanarNode): self.children[0].numberIncompleteNodes(index + 1, newBrothers) def getIndex(self, incompleteNodeIndex: int): pass def getDepthFromIndexRec(self, index, brothers=None): if brothers is None: Loading