Loading controller/binaryTreeToPlanarTree.py +1 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ class BinaryTreeToPlanarTree(LevelController): self.menuController.menu.displayLauncher(self.launcher) def launchLevel(self): print("yes") self.levelGui = BinaryTreeToPlanarTreeGui(self) self.levelGui.okButton.clicked.connect(self.nextLevel) self.levelGui.cancelButton.clicked.connect(self.sameLevel) Loading controller/menuController.py +6 −16 Original line number Diff line number Diff line Loading @@ -9,29 +9,18 @@ from view.menu import Menu class MenuController: def __init__(self, menu: Menu): def __init__(self): self.levelGui = None self.level = None self.menu = menu self.menu = Menu(self) self.game = None self.diaplayMenu() def lauchApplication(self): self.menu.window.show() def diaplayMenu(self): self.menu.displayGames() self.menu.menuAction.triggered.connect(self.diaplayMenu) for gameButton in self.menu.gameButtons: if gameButton.game == GameEnum.DYCK_WORD_TO_BINARY_TREE: gameButton.clicked.triggered.connect(self.on_DyckWordToBinaryTree_Button_Pressed) elif gameButton.game == GameEnum.BINARY_TREE_TO_DYCK_WORD: gameButton.clicked.triggered.connect(self.on_binaryTreeToDyckWord_Button_Pressed) elif gameButton.game == GameEnum.BINARY_TREE_TO_PLANAR_TREE: gameButton.clicked.triggered.connect(self.on_binaryTreeToPlanarTree_Button_Pressed) elif gameButton.game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: gameButton.clicked.triggered.connect(self.on_planarTreeToBinaryTree_Button_Pressed) elif gameButton.game == GameEnum.PLANAR_TREE_TO_DYCK_WORD: gameButton.clicked.triggered.connect(self.on_PlanarTreeToDyckWord_Button_Pressed) elif gameButton.game == GameEnum.DYCK_WORD_TO_PLANAR_TREE: gameButton.clicked.triggered.connect(self.on_DyckWordToPlanarTree_Button_Pressed) def on_DyckWordToBinaryTree_Button_Pressed(self): self.game = DyckWordToBinaryTree(self) Loading @@ -40,6 +29,7 @@ class MenuController: self.game = BinaryTreeToDyckWord(self) def on_binaryTreeToPlanarTree_Button_Pressed(self): print("OK") self.game = BinaryTreeToPlanarTree(self) def on_planarTreeToBinaryTree_Button_Pressed(self): Loading main.py +2 −3 Original line number Diff line number Diff line Loading @@ -10,9 +10,8 @@ from view.menu import Menu def launchApplication(): qapp = QApplication(sys.argv) app = Menu() controller = MenuController(app) app.window.show() controller = MenuController() controller.lauchApplication() qapp.exec_() Loading view/launcherGame.py +1 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ def title(game: GameEnum): return "Jeu: Arbre binaire - > Mot de Dyck" elif game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: return "Jeu: Arbre planaire - > Arbre binaire" elif game == GameEnum.BINARY_TREE_TO_DYCK_WORD: elif game == GameEnum.PLANAR_TREE_TO_DYCK_WORD: return "Jeu: Arbre planaire - > Mot de Dyck" else: return "Jeu: Mot de Dyck - > Arbre planaire" Loading view/menu.py +8 −60 Original line number Diff line number Diff line import sys from math import sqrt from PyQt5.QtWidgets import * from model.GameEnum import nbGames, GameEnum from view.gameButton import GameButton from view.menuWidget import BinaryTreeWidget, DyckWordWidget, PlanarTreeWidget, ArrowWidget from view.menuWidget import MenuWidget class MyWindow(QMainWindow): Loading @@ -12,8 +9,7 @@ class MyWindow(QMainWindow): super(QMainWindow, self).__init__(*args, **kwargs) def resizeEvent(self, e): #print(self.size()) pass self.setMaximumHeight(int(0.7 * self.width())) """def closeEvent(self, event): msgBox = QMessageBox() Loading @@ -30,17 +26,19 @@ class MyWindow(QMainWindow): msgBox.exec()""" class Menu: def __init__(self): def __init__(self, controller): self.controller = controller self.launcher = None self.levelGui = None self.gamesLayout = None self.gamesWidget = None self.window = MyWindow(None) self.window.setMinimumSize(1000, 500) self.window.setMaximumHeight(self.window.width()) self.window.setCentralWidget(QWidget()) self.gameButtons = [] self.centralLayout = QHBoxLayout(self.window.centralWidget()) self.paramWindow(1200, 600, "Initiation au parcours d'arbre") self.paramWindow(1200, 600, "Bijamacc") self.addSubMenus() self.displayGames() self.shortCutAction = QAction() Loading @@ -48,8 +46,6 @@ class Menu: self.shortCutAction.triggered.connect(self.window.close) self.window.addAction(self.shortCutAction) def resizeEvent(self, e): pass # function to change parameters of the window (size, title, color...) def paramWindow(self, width, high, title): Loading @@ -66,6 +62,7 @@ class Menu: # we add actions to the submenu self.menuAction = QAction("&Menu", self.window) self.menuAction.triggered.connect(self.displayGames) self.leaveAction = QAction("&Quitter", self.window) self.leaveAction.triggered.connect(self.window.close) self.helpAction = QAction("&Aide", self.window) Loading @@ -76,58 +73,9 @@ class Menu: help.addAction(self.helpAction) info.addAction(self.infoAction) # function to put the central widget in the menu """def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QGridLayout() nbSteps = int(sqrt(nbGames())) nbColumns = [] for i in range(nbSteps): nbColumns.append(int(nbGames() / nbSteps)) nbGamesToAdd = nbGames() - nbSteps * int(nbGames() / nbSteps) cptRow = 0 while nbGamesToAdd > 0: nbColumns[cptRow] += 1 cptRow += 1 nbGamesToAdd -= 1 cptRow = 0 cptColumn = 0 for i in range(nbGames()): game = GameEnum(i) buttonGame = GameButton(game) self.gameButtons.append(buttonGame) self.gamesLayout.addWidget(buttonGame, cptRow, cptColumn) if cptColumn + 1 >= nbColumns[cptRow]: cptRow += 1 cptColumn = 0 else: cptColumn += 1 self.gamesWidget.setLayout(self.gamesLayout) self.centralLayout.addWidget(self.gamesWidget)""" def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QHBoxLayout() """binary_tree_widget = BinaryTreeWidget() self.gamesLayout.addWidget(binary_tree_widget, 0, 2) arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree, 1, 1) planar_tree_widget = PlanarTreeWidget() self.gamesLayout.addWidget(planar_tree_widget, 2, 0) dyck_word_widget = DyckWordWidget() self.gamesLayout.addWidget(dyck_word_widget, 2, 4)""" arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree) self.gamesWidget.setLayout(self.gamesLayout) self.gamesWidget = MenuWidget(self.controller) self.centralLayout.addWidget(self.gamesWidget) def displayLevel(self, levelGui): Loading Loading
controller/binaryTreeToPlanarTree.py +1 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ class BinaryTreeToPlanarTree(LevelController): self.menuController.menu.displayLauncher(self.launcher) def launchLevel(self): print("yes") self.levelGui = BinaryTreeToPlanarTreeGui(self) self.levelGui.okButton.clicked.connect(self.nextLevel) self.levelGui.cancelButton.clicked.connect(self.sameLevel) Loading
controller/menuController.py +6 −16 Original line number Diff line number Diff line Loading @@ -9,29 +9,18 @@ from view.menu import Menu class MenuController: def __init__(self, menu: Menu): def __init__(self): self.levelGui = None self.level = None self.menu = menu self.menu = Menu(self) self.game = None self.diaplayMenu() def lauchApplication(self): self.menu.window.show() def diaplayMenu(self): self.menu.displayGames() self.menu.menuAction.triggered.connect(self.diaplayMenu) for gameButton in self.menu.gameButtons: if gameButton.game == GameEnum.DYCK_WORD_TO_BINARY_TREE: gameButton.clicked.triggered.connect(self.on_DyckWordToBinaryTree_Button_Pressed) elif gameButton.game == GameEnum.BINARY_TREE_TO_DYCK_WORD: gameButton.clicked.triggered.connect(self.on_binaryTreeToDyckWord_Button_Pressed) elif gameButton.game == GameEnum.BINARY_TREE_TO_PLANAR_TREE: gameButton.clicked.triggered.connect(self.on_binaryTreeToPlanarTree_Button_Pressed) elif gameButton.game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: gameButton.clicked.triggered.connect(self.on_planarTreeToBinaryTree_Button_Pressed) elif gameButton.game == GameEnum.PLANAR_TREE_TO_DYCK_WORD: gameButton.clicked.triggered.connect(self.on_PlanarTreeToDyckWord_Button_Pressed) elif gameButton.game == GameEnum.DYCK_WORD_TO_PLANAR_TREE: gameButton.clicked.triggered.connect(self.on_DyckWordToPlanarTree_Button_Pressed) def on_DyckWordToBinaryTree_Button_Pressed(self): self.game = DyckWordToBinaryTree(self) Loading @@ -40,6 +29,7 @@ class MenuController: self.game = BinaryTreeToDyckWord(self) def on_binaryTreeToPlanarTree_Button_Pressed(self): print("OK") self.game = BinaryTreeToPlanarTree(self) def on_planarTreeToBinaryTree_Button_Pressed(self): Loading
main.py +2 −3 Original line number Diff line number Diff line Loading @@ -10,9 +10,8 @@ from view.menu import Menu def launchApplication(): qapp = QApplication(sys.argv) app = Menu() controller = MenuController(app) app.window.show() controller = MenuController() controller.lauchApplication() qapp.exec_() Loading
view/launcherGame.py +1 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ def title(game: GameEnum): return "Jeu: Arbre binaire - > Mot de Dyck" elif game == GameEnum.PLANAR_TREE_TO_BINARY_TREE: return "Jeu: Arbre planaire - > Arbre binaire" elif game == GameEnum.BINARY_TREE_TO_DYCK_WORD: elif game == GameEnum.PLANAR_TREE_TO_DYCK_WORD: return "Jeu: Arbre planaire - > Mot de Dyck" else: return "Jeu: Mot de Dyck - > Arbre planaire" Loading
view/menu.py +8 −60 Original line number Diff line number Diff line import sys from math import sqrt from PyQt5.QtWidgets import * from model.GameEnum import nbGames, GameEnum from view.gameButton import GameButton from view.menuWidget import BinaryTreeWidget, DyckWordWidget, PlanarTreeWidget, ArrowWidget from view.menuWidget import MenuWidget class MyWindow(QMainWindow): Loading @@ -12,8 +9,7 @@ class MyWindow(QMainWindow): super(QMainWindow, self).__init__(*args, **kwargs) def resizeEvent(self, e): #print(self.size()) pass self.setMaximumHeight(int(0.7 * self.width())) """def closeEvent(self, event): msgBox = QMessageBox() Loading @@ -30,17 +26,19 @@ class MyWindow(QMainWindow): msgBox.exec()""" class Menu: def __init__(self): def __init__(self, controller): self.controller = controller self.launcher = None self.levelGui = None self.gamesLayout = None self.gamesWidget = None self.window = MyWindow(None) self.window.setMinimumSize(1000, 500) self.window.setMaximumHeight(self.window.width()) self.window.setCentralWidget(QWidget()) self.gameButtons = [] self.centralLayout = QHBoxLayout(self.window.centralWidget()) self.paramWindow(1200, 600, "Initiation au parcours d'arbre") self.paramWindow(1200, 600, "Bijamacc") self.addSubMenus() self.displayGames() self.shortCutAction = QAction() Loading @@ -48,8 +46,6 @@ class Menu: self.shortCutAction.triggered.connect(self.window.close) self.window.addAction(self.shortCutAction) def resizeEvent(self, e): pass # function to change parameters of the window (size, title, color...) def paramWindow(self, width, high, title): Loading @@ -66,6 +62,7 @@ class Menu: # we add actions to the submenu self.menuAction = QAction("&Menu", self.window) self.menuAction.triggered.connect(self.displayGames) self.leaveAction = QAction("&Quitter", self.window) self.leaveAction.triggered.connect(self.window.close) self.helpAction = QAction("&Aide", self.window) Loading @@ -76,58 +73,9 @@ class Menu: help.addAction(self.helpAction) info.addAction(self.infoAction) # function to put the central widget in the menu """def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QGridLayout() nbSteps = int(sqrt(nbGames())) nbColumns = [] for i in range(nbSteps): nbColumns.append(int(nbGames() / nbSteps)) nbGamesToAdd = nbGames() - nbSteps * int(nbGames() / nbSteps) cptRow = 0 while nbGamesToAdd > 0: nbColumns[cptRow] += 1 cptRow += 1 nbGamesToAdd -= 1 cptRow = 0 cptColumn = 0 for i in range(nbGames()): game = GameEnum(i) buttonGame = GameButton(game) self.gameButtons.append(buttonGame) self.gamesLayout.addWidget(buttonGame, cptRow, cptColumn) if cptColumn + 1 >= nbColumns[cptRow]: cptRow += 1 cptColumn = 0 else: cptColumn += 1 self.gamesWidget.setLayout(self.gamesLayout) self.centralLayout.addWidget(self.gamesWidget)""" def displayGames(self): self.removeCentralLayout() self.gamesWidget = QWidget() self.gamesLayout = QHBoxLayout() """binary_tree_widget = BinaryTreeWidget() self.gamesLayout.addWidget(binary_tree_widget, 0, 2) arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree, 1, 1) planar_tree_widget = PlanarTreeWidget() self.gamesLayout.addWidget(planar_tree_widget, 2, 0) dyck_word_widget = DyckWordWidget() self.gamesLayout.addWidget(dyck_word_widget, 2, 4)""" arrowBinaryTreeToPlanarTree = ArrowWidget(10, 10, 10, GameEnum.BINARY_TREE_TO_PLANAR_TREE) self.gameButtons.append(arrowBinaryTreeToPlanarTree) self.gamesLayout.addWidget(arrowBinaryTreeToPlanarTree) self.gamesWidget.setLayout(self.gamesLayout) self.gamesWidget = MenuWidget(self.controller) self.centralLayout.addWidget(self.gamesWidget) def displayLevel(self, levelGui): Loading