/// <summary> /// Overrides the abstract method for popping. /// </summary> /// <param name="row">The currently active row.</param> /// <param name="col">The currently active column.</param> /// <param name="board">The game board.</param> /// <param name="cellValue">The initial balloon value.</param> protected override void PopBalloons(int row, int col, IBoard board, int cellValue) { if (board.IsValidPop(row, col) && board[row, col].Value == cellValue) { board[row, col] = Balloon.Default; this.PopBalloons(row - 1, col, board, cellValue); // Up this.PopBalloons(row + 1, col, board, cellValue); // Down this.PopBalloons(row, col + 1, board, cellValue); // Left this.PopBalloons(row, col - 1, board, cellValue); // Right } }