Beispiel #1
0
        /// <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();
        }