private void OnCreateNewBoard(object parameter) { if (parameter == null) { this.Minesweeper = MinesweeperFactory.Create(this.Minesweeper); return; } if (parameter is BoardSize) { this.Minesweeper = MinesweeperFactory.Create((BoardSize)parameter); } else if (parameter is string) { var text = (string)parameter; if (text.StartsWith("*")) { var boardSize = new BoardSize(this.Minesweeper.Tiles.Width, this.Minesweeper.Tiles.Height, this.Minesweeper.MineCount); this.Minesweeper = MinesweeperFactory.Create(boardSize); } else { var boardSize = BoardSize.Parse(parameter.ToString()); this.Minesweeper = MinesweeperFactory.Create(boardSize); } } else { throw new ArgumentException("parameter must either be of type String or BoardSize, or be set to null."); } }
public MinesweeperViewModel() { this.gameTimer = new WinTimer(this.TimerProc, 1000); this.MenuViewModel = new MenuViewModel(); this.DisplayViewModel = new DisplayPanelViewModel(); this.TileBoardViewModel = new TileBoardViewModel(); this.Minesweeper = MinesweeperFactory.GetFromSettings(); }