Open menu

 

La classe HoleConsole est en fait quasi complète. En effet, quel que soit le jeu, les étapes de création et initialisation des objets sont presque identiques. Il n'y a globalement que 3 étapes qui dépendent du jeu :

  • l'ajout des joueurs au modèle,
  • l'enregistrement des noms des classes associées aux stages dans le StageFactory,
  • quel stage doit être utilisé lorsqu'une partie commence.

Ensuite, il suffit de lancer la partie et entrer dans la boucle de gestion du stage.

Cela donne :

    public static void main(String[] args) {
        ...
        if (mode == 0) {
            model.addHumanPlayer("player1");
            model.addHumanPlayer("player2");
        }
        else if (mode == 1) {
            model.addHumanPlayer("player");
            model.addComputerPlayer("computer");
        }
        else if (mode == 2) {
            model.addComputerPlayer("computer1");
            model.addComputerPlayer("computer2");
        }

        StageFactory.registerModelAndView("hole", "model.HoleStageModel", "view.HoleStageView");
        View holeView = new View(model);
        ControllerHole control = new ControllerHole(model,holeView);
        control.setFirstStageName("hole");
        try {
            control.startGame();
            control.stageLoop();
        }
        catch(GameException e) {
            System.out.println("Cannot start the game. Abort");
        }
    }