/// <summary> /// 计算式结果显示输出 /// </summary> /// <param name="formulas">计算式</param> public void ConsoleFormulas(EqualityLinkageFormula formulas) { LogUtil.LogDebug(MessageUtil.GetMessage(() => MsgResources.I0004T, "算式連一連")); int index = 0; formulas.LeftFormulas.ToList().ForEach(d => { Console.WriteLine(string.Format("左邊:{0} {1} {2} = {3} 容器編號:{4}", CommonUtil.GetValue(CommonLib.Util.GapFilling.Left, d.LeftParameter, d.Gap), d.Sign.ToOperationString(), CommonUtil.GetValue(CommonLib.Util.GapFilling.Right, d.RightParameter, d.Gap), CommonUtil.GetValue(CommonLib.Util.GapFilling.Answer, d.Answer, d.Gap), formulas.Seats[index++])); }); int seat = 0; formulas.Sort.ToList().ForEach(d => { Formula container = formulas.RightFormulas[d]; CommonLib.Util.GapFilling gap = container.Gap; Console.WriteLine(string.Format("右邊{0}:{1} {2} {3} = {4}", seat++, CommonUtil.GetValue(CommonLib.Util.GapFilling.Left, container.LeftParameter, gap), container.Sign.ToOperationString(), CommonUtil.GetValue(CommonLib.Util.GapFilling.Right, container.RightParameter, gap), CommonUtil.GetValue(CommonLib.Util.GapFilling.Answer, container.Answer, gap))); }); }
/// <summary> /// 題型構築 /// </summary> /// <param name="p">題型參數</param> public override void MarkFormulaList(EqualityLinkageParameter p) { // 算式連一連對象實例 EqualityLinkageFormula EqualityLinkageFormula = new EqualityLinkageFormula(); // 標準題型(指定單個運算符) if (p.FourOperationsType == FourOperationsType.Standard) { // 計算式作成(指定單個運算符實例) MarkFormulaList(p, () => { return(p.Signs[0]); }); } else { // 計算式作成(加減乘除運算符實例隨機抽取) MarkFormulaList(p, () => { return(p.Signs[CommonUtil.GetRandomNumber(0, p.Signs.Count - 1)]); }); } // 左邊計算式集合 EqualityLinkageFormula.LeftFormulas = _leftFormulas; // 右側計算式集合 EqualityLinkageFormula.RightFormulas = _rightFormulas; // 各計算式編號的集合并隨機排序 EqualityLinkageFormula.Sort = _seats.OrderBy(x => Guid.NewGuid()).ToList(); // 左邊計算式->右側計算式 擺放位置 EqualityLinkageFormula.Seats = GetNewSeats(EqualityLinkageFormula.Sort); // 結果設定 p.Formulas = EqualityLinkageFormula; }
/// <summary> /// 初期化參數 /// </summary> public override void InitParameter() { // 是否為縱向排列 QueueType = (JsonExtension.GetPropertyByJson(Reserve, "DivQueueType") == null) ? DivQueueType.Lengthways : (DivQueueType)Convert.ToInt32(JsonExtension.GetPropertyByJson(Reserve, "DivQueueType")); // 集合實例化 Formulas = new EqualityLinkageFormula(); }