/// <summary> /// 計算式作成 /// </summary> /// <param name="parameter">計算式參數類</param> /// <returns>計算式對象</returns> /// <exception cref="ArgumentNullException"><paramref name="parameter"/>為NULL的情況</exception> public virtual Formula CreateFormula(ArithmeticParameter parameter) { Guard.ArgumentNotNull(parameter, "parameter"); Formula = new Formula(); // 随机下限值 MinimumLimit = parameter.MinimumLimit; // 默認填空項是答案項 Formula.Gap = GapFilling.Answer; if (parameter.QuestionType == QuestionType.GapFilling) { // 對在等式中的三個數值隨機產生填空項(用於填空題型) Formula.Gap = CommonUtil.GetRandomNumber(GapFilling.Left, GapFilling.Answer); } return(Formula); }
/// <summary> /// 由計算結果推算出計算式(使用場景:水果連連看) /// </summary> /// <param name="parameter">計算式參數類</param> /// <param name="answer">計算結果</param> /// <returns>計算式對象</returns> /// <exception cref="ArgumentNullException"><paramref name="parameter"/>為NULL的情況</exception> public virtual Formula CreateFormulaWithAnswer(ArithmeticParameter parameter, int answer) { Guard.ArgumentNotNull(parameter, "parameter"); return(CreateFormula(parameter)); }
/// <summary> /// 構造用於計算接龍題型(即:計算式左邊值等於上一個計算式的結果值) /// </summary> /// <param name="parameter">計算式參數類</param> /// <param name="previousFormula">前次推算的計算式對象</param> /// <returns>計算式對象</returns> /// <exception cref="ArgumentNullException"><paramref name="parameter"/>為NULL的情況</exception> public virtual Formula CreateFormula(ArithmeticParameter parameter, Formula previousFormula) { Guard.ArgumentNotNull(parameter, "parameter"); return(CreateFormula(parameter)); }