package ge.edu.freeuni.sdp.snake.view; import ge.edu.freeuni.sdp.snake.presenter.*; public class ViewController { private ViewFactory _viewFactory; private PresenterFactory _presenterRegistry; public ViewController(ViewFactory viewFactory) { this(viewFactory, new PresenterFactory()); } public ViewController(ViewFactory viewFactory, PresenterFactory presenterRegistry) { _viewFactory = viewFactory; _presenterRegistry = presenterRegistry; } public void run() { while(true){ LevelPresenter levelPresenter = _presenterRegistry.getLevelPresenter(); LevelView levelView = _viewFactory.getLevelView(levelPresenter); levelView.show(); MazePresenter mazePresenter = _presenterRegistry.getMazePresenter(); MazeView mazeView = _viewFactory.getMazeView(mazePresenter); mazeView.show(); HighScorePresenter highPresenter = _presenterRegistry.getHighScorePresenter(); HighScoreView highScoreView = _viewFactory.getHighScoreView(highPresenter); highScoreView.show(); GameOverPresenter gameOverPresenter = _presenterRegistry.getGameOverPresenter(); GameOverView gameOverView = _viewFactory.getGameOverView(gameOverPresenter); gameOverView.show(); if(!gameOverView.continueGameOrNot()){ break; } } } }