コード例 #1
0
        private FieldCell[,] GetPlayingField()
        {
            FieldCell[,] result = new FieldCell[DefaultField.BoardSize, DefaultField.BoardSize];
            var random = new Random();

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 8; j++)
                {
                    var cell = GameBoardConroller.GenerateNewFieldCell(j, i, random, Cell_Click);
                    result[i, j] = cell;
                }
            }

            return(result);
        }
コード例 #2
0
        public override void Update(GameTime gameTime)
        {
            if (IsTimerEnded(gameTime))
            {
                _gameOverWindow?.Update(gameTime);

                return;
            }

            GameBoardConroller.MatchAndClear(GameField);

            UpdateActivatedBonuses();

            UpdateDestroyers(gameTime);

            BonusController.BlowActivatedBombs();

            BonusController.UseDestoyers();

            if (Destroyers.Count == 0)
            {
                GemsController.MoveGems(GameField);

                GemsController.GenerateNewGems(GameField);
            }

            if (IsCurrentMoveImposible())
            {
                return;
            }

            foreach (var cell in GameField)
            {
                cell.Update(gameTime);
                cell.Gem?.Update(gameTime);
            }
        }