コード例 #1
0
ファイル: MineField.cs プロジェクト: devowl/minesweeper
        private void CellDataProviderChanged(ICellDataProvider oldProvider, ICellDataProvider newProvider)
        {
            RemoveUnactualField(oldProvider);

            if (newProvider == null)
            {
                CellDataProvider = new EmptyCellDataProvider();
            }

            CellDataProvider.Gameover       += OnGameOver;
            _mineFieldLogic.CellDataProvider = newProvider;
            DrawNewField();
        }
コード例 #2
0
        private void NewGame()
        {
            if (DataProvider != null)
            {
                DataProvider.Gameover -= OnGameover;
            }

            CurrentEmotionType = EmotionType.Common;
            DataProvider       = _fieldGenerator[_currentMode]();
            SecondsGone        = 0;
            BombsLeft          = DataProvider.BombsCount;
            _timer.Stop();
        }
コード例 #3
0
ファイル: MineField.cs プロジェクト: devowl/minesweeper
        private void RemoveUnactualField(ICellDataProvider oldProvider)
        {
            if (oldProvider == null)
            {
                return;
            }

            RowDefinitions.Clear();
            ColumnDefinitions.Clear();

            _buttons.ForEach(RemoveLogicalChild);
            _buttons.ForEach(
                (button =>
            {
                RemoveLogicalChild(button);
                button.InputBindings.Clear();
            }));

            _buttons = null;
        }