public DefaultApp() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); var notifiableView = new NotifiableGameView();; this.view = notifiableView; var board = new SquareBoard(4); var game = new Game(notifiableView, board); this.controller = new DefaultGameController(game); mainWindow = new Window(view, controller); mainWindow.SetEventOnNewImageSelected(ChangePuzzleImage); var outputControl = FindControl(boardOutputControlName); var defaultImage = Image.FromFile(defaultImagePath); var cellFactory = new BoardCellFactory(controller, defaultImage); this.boardRenderer = new BoardRenderer(outputControl, board, cellFactory); view.SetEventOnCellMoved(boardRenderer.SwapCells); view.SetEventOnBoardChanged(boardRenderer.Render); boardRenderer.Render(board); }
private void ChangePuzzleImage(string path) { Image image = null; try { image = Image.FromFile(path); } catch (Exception e) { //do nothing if the path is invalid return; } var cellFactory = new BoardCellFactory(controller, image); boardRenderer.SetCellFactory(cellFactory); boardRenderer.Render(); }
public void SetCellFactory(BoardCellFactory cellFactory) { this.cellFactory = cellFactory; }
public BoardRenderer(Control outputControl, SquareBoard board, BoardCellFactory cellFactory) { this.outputControl = outputControl; this.board = board; this.cellFactory = cellFactory; }