Exemple #1
0
        public bool showAnimalPage()
        {
            mPage.ClearAll();
            CompCentralText ct     = new CompCentralText();
            string          target = mGroups[mGrpAt].mTrails[mTraAt].memTarget;//GrpAt/////////////////////////////////////////////////////////

            ct.PutTextToCentralScreen(target,
                                      "Microsoft YaHei", 55, ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 255, 255));

            mPage.mRecorder.animal.Add(target);
            //mPage.mRecorder.groupID.Add(mCurTrailsCount);
            //mPage.mRecorder.subgroupID.Add(mCurTypeAt);

            if (mTraAt == mCurTrailsCount - 1)
            {
                route = showBlackPage2Order;
            }
            else
            {
                mTraAt++;
                route = showBlackPage2Equation;
            }

            //delay
            delayAndNext(1000);

            return(true);
        }
Exemple #2
0
        public bool showOrderPage()
        {
            SubPageOrderOS subPage = new SubPageOrderOS(ref mPage, this);

            mPage.ClearAll();

            //recorder
            //on time
            mPage.mRecorder.orderOn.Add(mPage.mTimer.GetElapsedTime());
            //the right order
            string rightOrderStr = "";
            int    len           = mGroups[mGrpAt].mTrails.Count;

            for (int i = 0; i < len; i++)
            {
                rightOrderStr += mGroups[mGrpAt].mTrails[i].memTarget;
            }
            mPage.mRecorder.rightOrder.Add(rightOrderStr);

            subPage.Show();

            if (mPractiseMode)
            {
                route = showReportPage;
            }
            else
            {
                route = showBlackPage2Title;
            }

            return(true);
        }
Exemple #3
0
        void symmPage_autoFlipped(object sender, ElapsedEventArgs e)
        {
            /*if (mIKnowBtnShower.Enabled)
             *  mIKnowBtnShower.Enabled = false;*/

            mfRoute = showOvertimePage;
            t_Elapsed(sender, e);
        }
Exemple #4
0
        public bool showBlackPage2Title()
        {
            mPage.ClearAll();
            route = showTitlePage;
            delayAndNext(1000);

            return(true);
        }
Exemple #5
0
 public void testEnd()
 {
     mPage.mRecorder.outputReport(FEITStandard.GetRepotOutputPath() + "symm\\" + mPage.interFilename,
                                  FEITStandard.GetRepotOutputPath() + "symm\\" + mPage.posFilename,
                                  FEITStandard.GetRepotOutputPath() + "symm\\" + mPage.pracSymmFilename,
                                  FEITStandard.GetRepotOutputPath() + "symm\\" + mPage.pracPosFilename);
     mfRoute = mPage.finish;
     mPage.nextStep();
 }
Exemple #6
0
        public bool showLongBlackPage2Equation()
        {
            mPage.ClearAll();

            route = showEquationPage;
            //delay
            delayAndNext(500);

            return(true);
        }
Exemple #7
0
        public bool showBlackPage2Order()
        {
            mPage.ClearAll();

            route = showOrderPage;
            //delay
            delayAndNext(500);

            return(true);
        }
Exemple #8
0
        public bool showBlackPage2Animal()
        {
            mPage.ClearAll();

            route = showAnimalPage;
            //delay
            delayAndNext(250);

            return(true);
        }
Exemple #9
0
        public bool showBlackPage2Determine()
        {
            mPage.ClearAll();

            route = showDeterminePage;
            //delay
            delayAndNext(250);

            return(true);
        }
Exemple #10
0
        void showBlackPageAndGo2Pos()
        {
            mPage.ClearAll();

            mfRoute = showPosistionPage;
            //delay
            Timer t = new Timer();

            t.Elapsed  += new ElapsedEventHandler(t_Elapsed);
            t.Interval  = 250;
            t.AutoReset = false;
            t.Enabled   = true;
        }
Exemple #11
0
        public void groupStatistics()
        {
            mOrderCorrectCount = getOrderCorrectCount();
            mMathCorrectCount  = getMathCorrectCount();
            mMathErrACC2      += mCurTrailsCount - mMathCorrectCount;

            //get span correct rate
            if (mGrpAt < mGroups.Count - 1)
            {
                int newTrailCount = mGroups[mGrpAt + 1].mTrails.Count;
            }

            if (mMathErrACC2 >= 2)
            {
                mValid       = false;
                mMathErrACC2 = 0;
            }
            else
            {
                mValid = true;
            }

            if (mOrderCorrectCount != mCurTrailsCount)
            {
                mSpanOrderErrCount++;
            }

            if (!mValid && !mPractiseMode)
            {
                route = showWarningPage;
            }

            //quit with error
            mAnswerGrp.Add(mAnswer);

            if (!mPractiseMode &&
                (mSpanOrderErrCount == 2 || getTotalMathCorrectRate() < 0.8) &&
                mGrpAt > 3 &&
                mCurTypeAt == mCurTypeMax)//quit beyond span2
            {
                route = quit;
            }
            else if (!mPractiseMode &&
                     (mSpanOrderErrCount == 4) &&
                     mGrpAt == 3)//quit in span2
            {
                route = quit;
            }
        }
Exemple #12
0
        //Timer mIKnowBtnShower;

        public void showSymmPage()
        {
            Mouse.OverrideCursor = Cursors.Hand;
            mPage.ClearAll();

            //control component
            System.Windows.Controls.Image img_ctrl = new System.Windows.Controls.Image();

            //uri resource loading
            Uri uriimage = new Uri(LoaderSymmSpan.GetBaseFolder() + "SYMM\\" +
                                   mContent[mGrpAt].Trails[mItemAt].FileName);

            //image
            BitmapImage img = new BitmapImage(uriimage);

            //set to control
            img_ctrl.Source = img;
            img_ctrl.Width  = 600;
            img_ctrl.Height = 450;

            mPage.mBaseCanvas.Children.Add(img_ctrl);
            Canvas.SetTop(img_ctrl, FEITStandard.PAGE_BEG_Y + (FEITStandard.PAGE_HEIGHT - img_ctrl.Height) / 2);
            Canvas.SetLeft(img_ctrl, FEITStandard.PAGE_BEG_X + (FEITStandard.PAGE_WIDTH - img_ctrl.Width) / 2);

            mfRoute = showDualDeterPage;

            if (!mPractise)
            {
                arrangeAutoIKnowAndAutoFlipperInSymmPage();
            }
            else
            {
                if (mGrpAt == 0)
                {
                    CompBtnNextPage btn = new CompBtnNextPage("看好了");
                    btn.Add2Page(mPage.mBaseCanvas, FEITStandard.PAGE_BEG_Y + 450);
                    btn.mfOnAction = nextStep;
                }
                else
                {
                    arrangeAutoIKnowAndAutoFlipperInSymmPage();
                }
            }

            //record
            mPage.mRecorder.symmOnTime.Add(mPage.mTimer.GetElapsedTime());
        }
Exemple #13
0
        public bool showDeterminePage()
        {
            mPage.mRecorder.mathOff.Add(mPage.mTimer.GetElapsedTime());
            mPage.mRecorder.displayedAnswer.Add(Int32.Parse(mGroups[mGrpAt].mTrails[mTraAt].result));

            SubPageDetermine subPage = new SubPageDetermine(ref mPage, this);

            mPage.ClearAll();
            subPage.setResult(mGroups[mGrpAt].mTrails[mTraAt].result);
            subPage.hideCorrectness(true);

            subPage.Show();

            route = showBlackPage2Animal;

            return(true);
        }
Exemple #14
0
        public void showReportPage()
        {
            mPage.ClearAll();

            CompCentralText ct0    = new CompCentralText();
            CompCentralText ct     = new CompCentralText();
            CompCentralText ct2    = new CompCentralText();
            CompCentralText ctWarn = new CompCentralText();

            if (mPractise)
            {
                ct0.PutTextToCentralScreen("这组题(共" + mContent[mGrpAt].Trails.Count + "个)中,你",
                                           "KaiTI", 32, ref mPage.mBaseCanvas, -40, Color.FromRgb(255, 255, 255));
                ct.PutTextToCentralScreen("记对了" + mOrderCorrectCount + "个位置",
                                          "KaiTi", 32, ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 255, 255));
                ct2.PutTextToCentralScreen("做对了" + mSymmCorrectCount + "个判断",
                                           "KaiTi", 32, ref mPage.mBaseCanvas, 40, Color.FromRgb(255, 255, 255));
                //LayoutInstruction li = new LayoutInstruction(ref mPage.mBaseCanvas);
            }

            if (mShowWarning)
            {
                ctWarn.PutTextToCentralScreen("请你注意判断的正确率!",
                                              "KaiTi", 30, ref mPage.mBaseCanvas, 110, Color.FromRgb(255, 0, 0));
                mShowWarning = false;
            }

            if (mPractise)
            {
                mfRoute = showSymmPage;
            }
            else
            {
                mfRoute = showTitlePage;
            }

            groupIterate();

            Timer t = new Timer();

            t.Elapsed  += new ElapsedEventHandler(t_Elapsed);
            t.Interval  = 3000;
            t.AutoReset = false;
            t.Enabled   = true;
        }
Exemple #15
0
        public void groupIterate()
        {
            mAnswer = new AnswerOpSpan();

            //statistics
            mOrderCorrectCount = 0;

            //cursor
            if (mGrpAt == 1 && mSpanOrderErrCount < 2 && !mPractiseMode)
            {
                mGrpAt += 3;
            }
            else
            {
                mGrpAt++;//go extra
                mExtraTrailDone = true;
            }

            mTraAt = 0;

            if (mGrpAt < mGroups.Count)
            {
                int newTrailCount = mGroups[mGrpAt].mTrails.Count;

                //when span iterates
                if (mCurTrailsCount != newTrailCount)
                {
                    mCurTrailsCount    = newTrailCount;
                    mCurTypeMax        = getCountOfType(mCurTrailsCount);
                    mCurTypeAt         = 1;
                    mSpanOrderErrCount = 0;
                }
                else
                {
                    mCurTypeAt++;
                }
            }
            else if (mGrpAt == mGroups.Count)
            {
                //test quit after iteration
                route = quit;
            }
        }
Exemple #16
0
        public bool showWarningPage()
        {
            mPage.ClearAll();

            CompCentralText cct  = new CompCentralText();
            CompCentralText cct2 = new CompCentralText();

            cct.PutTextToCentralScreen("请你注意", "KaiTi", 48,
                                       ref mPage.mBaseCanvas, -30, Color.FromRgb(255, 0, 0));
            cct2.PutTextToCentralScreen(" 保持心算的正确率!", "KaiTi", 48,
                                        ref mPage.mBaseCanvas, 30, Color.FromRgb(255, 0, 0));


            route = showBlackPage2Title;

            delayAndNext(2000);

            return(true);
        }
Exemple #17
0
        void showOvertimePage()
        {
            mfRoute = showBlackPageAndGo2Pos;

            CompCentralText ct0 = new CompCentralText();

            ct0.PutTextToCentralScreen("观察超时",
                                       "KaiTI", 48, ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 0, 0));

            mPage.mRecorder.symmOffTime.Add(mPage.mTimer.GetElapsedTime());
            mPage.mRecorder.choiceShownTime.Add(-1);
            mPage.mRecorder.choiceMadeTime.Add(-1);
            mPage.mRecorder.symmJudgeCorrectness.Add(false);

            Timer t = new Timer();

            t.Elapsed  += new ElapsedEventHandler(t_Elapsed);
            t.Interval  = 1500;
            t.AutoReset = false;
            t.Enabled   = true;
        }
Exemple #18
0
        public void showPosistionPage()
        {
            Mouse.OverrideCursor = Cursors.None;
            //record
            mPage.mRecorder.inters.Add(mContent[mGrpAt].Trails[mItemAt]);
            //mRecorder.segmentID.Add(mCurSpanAt + 1);

            SubPageOrderSS sp_pos = new SubPageOrderSS(ref mPage, this);

            sp_pos.mCheckComponent.mTouchActivated = false;
            sp_pos.PutNumCheckToScreen(271, 160, 4, 4, 600, 240);
            ((UIGroupNumChecksSS)sp_pos.mCheckComponent).setPositionMode(true);
            ((UIGroupNumChecksSS)sp_pos.mCheckComponent).setMarked(
                mContent[mGrpAt].Trails[mItemAt].Position);

            if (mItemAt == mContent[mGrpAt].Trails.Count - 1)
            {
                mfRoute = showOrderPage;
            }
            else
            {
                mfRoute = showSymmPage;
            }

            mItemAt++;

            Timer t = new Timer();

            t.Elapsed += new ElapsedEventHandler(showBlackPage);
            if (mPractise && mGrpAt == 0)
            {
                t.Interval = 2000;
            }
            else
            {
                t.Interval = 1000;
            }
            t.AutoReset = false;
            t.Enabled   = true;
        }
Exemple #19
0
        public void showDualDeterPage()
        {
            Mouse.OverrideCursor = Cursors.Hand;
            //record
            mPage.mRecorder.symmOffTime.Add(mPage.mTimer.GetElapsedTime());

            mPage.ClearAll();
            CompDualDetermine dualPad = new CompDualDetermine();

            dualPad.setButtonText("是", "否");
            dualPad.setCorrectness(mContent[mGrpAt].Trails[mItemAt].IsSymm);
            dualPad.setResult("");
            dualPad.HideCorrecteness(true);
            dualPad.mConfirmMethod = DualDeterConfirmMethod;
            dualPad.mDenyMethod    = DualdeterDenyMethod;

            if (mPage.mMainWindow.mbEngiMode)
            {
                dualPad.BorderBrush = new SolidColorBrush(Color.FromRgb(50, 50, 50));
            }

            dualPad.BorderThickness = new Thickness(1.0);
            mPage.mBaseCanvas.Children.Add(dualPad);
            Canvas.SetTop(dualPad, FEITStandard.PAGE_BEG_Y +
                          (FEITStandard.PAGE_HEIGHT - CompDualDetermine.OUTHEIGHT) / 2 + 65);
            Canvas.SetLeft(dualPad, FEITStandard.PAGE_BEG_X +
                           (FEITStandard.PAGE_WIDTH - CompDualDetermine.OUTWIDTH) / 2);

            CompCentralText ct = new CompCentralText();

            ct.PutTextToCentralScreen("是否对称", "KaiTi", 45,
                                      ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 255, 255));

            mfRoute = showBlackPageAndGo2Pos;

            //record
            mPage.mRecorder.choiceShownTime.Add(mPage.mTimer.GetElapsedTime());
        }
Exemple #20
0
        public OrganizerTrailSS(PageSymmSpan _page, bool isPractise,
                                List <TrailsGroupSS> content, ref List <AnswerSSST> answer)
        {
            mContent   = content;
            mPage      = _page;
            mPractise  = isPractise;
            mCurAnswer = new AnswerSSST();

            if (mPractise)
            {
                mfRoute = showSymmPage;
            }
            else
            {
                mfRoute = showTitlePage;
            }

            mAnswer = answer;

            mOrderPage = new SubPageOrderSS(ref mPage, this);

            mCurSpanGroupsCount = getCurSpanGroupsCount();
        }
Exemple #21
0
        public void showTitlePage()
        {
            mPage.ClearAll();

            CompCentralText ct0 = new CompCentralText();

            ct0.PutTextToCentralScreen("判对称,记位置",
                                       "KaiTi", 50, ref mPage.mBaseCanvas, 0, Color.FromRgb(0, 255, 0));

            CompCentralText ct = new CompCentralText();

            ct.PutTextToCentralScreen("[" + mContent[mGrpAt].Trails.Count + "-" + (mCurSpanAt + 1) + "]",
                                      "KaiTi", 50, ref mPage.mBaseCanvas, 100, Color.FromRgb(0, 255, 0));

            mfRoute = showSymmPage;

            Timer t = new Timer();

            t.Elapsed  += new ElapsedEventHandler(tx_Elapsed);
            t.Interval  = 1000;
            t.AutoReset = false;
            t.Enabled   = true;
        }
Exemple #22
0
        public bool showTitlePage()
        {
            mPage.ClearAll();

            CompCentralText ct = new CompCentralText();

            ct.PutTextToCentralScreen("做心算,记属相",
                                      "KaiTi", 50, ref mPage.mBaseCanvas, 0, Color.FromRgb(0, 255, 0));

            CompCentralText ct2 = new CompCentralText();

            ct2.PutTextToCentralScreen("[" + mCurTrailsCount + "-" + mCurTypeAt + "]",
                                       "KaiTi", 32, ref mPage.mBaseCanvas, 100, Color.FromRgb(255, 255, 255));

            route = showLongBlackPage2Equation;

            //clickable
            //new FEITClickableScreen(ref mPage.mBaseCanvas, mPage.nextStep);

            //delay
            delayAndNext(2000);

            return(true);
        }
Exemple #23
0
        public bool showReportPage()//only in practise
        {
            mPage.ClearAll();

            CompCentralText ct  = new CompCentralText();
            CompCentralText ct2 = new CompCentralText();
            CompCentralText ct3 = new CompCentralText();

            ct.PutTextToCentralScreen("这组题(共" + mCurTrailsCount + "个)中,你",
                                      "KaiTi", 32, ref mPage.mBaseCanvas, -30, Color.FromRgb(255, 255, 255));
            ct2.PutTextToCentralScreen("记对了" + mOrderCorrectCount + "个属相",
                                       "KaiTi", 32, ref mPage.mBaseCanvas, 4, Color.FromRgb(255, 255, 255));
            ct3.PutTextToCentralScreen("做对了" + mMathCorrectCount + "个心算",
                                       "KaiTi", 32, ref mPage.mBaseCanvas, 36, Color.FromRgb(255, 255, 255));

            if (mGrpAt == mGroups.Count - 1)
            {
                //quit practise
                route = quit;
            }
            else
            {
                groupIterate();
                route = showLongBlackPage2Equation;
            }

            //new FEITClickableScreen(ref mPage.mBaseCanvas, mPage.nextStep);
            //delayAndNext(2000);

            CompBtnNextPage btn = new CompBtnNextPage("继续");

            btn.Add2Page(mPage.mBaseCanvas, FEITStandard.PAGE_BEG_Y + 470);
            btn.mfOnAction = mPage.nextStep;

            return(true);
        }
Exemple #24
0
        public bool showOvertimePage()
        {
            mPage.mRecorder.mathOff.Add(mPage.mTimer.GetElapsedTime());
            mPage.mRecorder.displayedAnswer.Add(Int32.Parse(mGroups[mGrpAt].mTrails[mTraAt].result));

            route = showBlackPage2Animal;

            mPage.ClearAll();
            CompCentralText ct = new CompCentralText();

            ct.PutTextToCentralScreen("心算超时",
                                      "KaiTi", 55, ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 0, 0));

            //fill a wrong answer and no sense data
            mAnswer.Confirm.Add(!currentCorrectness());
            mPage.mRecorder.choiceShowTime.Add(-1);
            mPage.mRecorder.choiceMadeTime.Add(-1);
            mPage.mRecorder.choice.Add("null");
            mPage.mRecorder.correctness.Add(false);

            delayAndNext(1500);

            return(true);
        }
Exemple #25
0
        public bool showEquationPage()
        {
            mPage.ClearAll();

            if (!mPage.mbFixedItemMode)//if not fixed gen random
            {
                if (mPractiseMode)
                {
                    mOSEM.GenEquation(ref mEquation, ref mEquationResult, EquationType.NonCarry);
                }
                else
                {
                    if (mGrpAt < 2)//non-carry
                    {
                        mOSEM.GenEquation(ref mEquation, ref mEquationResult, EquationType.NonCarry);
                    }
                    else//carry
                    {
                        mOSEM.GenEquation(ref mEquation, ref mEquationResult, EquationType.Carry);
                    }
                }

                Random rdm = new Random();
                if (rdm.Next(0, 2) == 0)//set incorrect to show
                {
                    mGroups[mGrpAt].mTrails[mTraAt].result      = rdm.Next(0, 200).ToString();
                    mGroups[mGrpAt].mTrails[mTraAt].correctness = false;
                }
                else//set correct to show
                {
                    mGroups[mGrpAt].mTrails[mTraAt].result      = mEquationResult.ToString();
                    mGroups[mGrpAt].mTrails[mTraAt].correctness = true;
                }

                mGroups[mGrpAt].mTrails[mTraAt].equation = mEquation;
            }

            mGroups[mGrpAt].mTrails[mTraAt].equation += " ?";

            CompCentralText ct = new CompCentralText();

            ct.PutTextToCentralScreen(mGroups[mGrpAt].mTrails[mTraAt].equation,
                                      "Batang", 74, ref mPage.mBaseCanvas, 0, Color.FromRgb(255, 255, 255));

            route = showBlackPage2Determine;

            //record
            Timer t = null;

            //save rec
            mPage.mRecorder.mathOn.Add(mPage.mTimer.GetElapsedTime());
            mPage.mRecorder.mathExpression.Add(mGroups[mGrpAt].mTrails[mTraAt].equation);

            if (!mPractiseMode)
            {
                //overtime!
                t           = new Timer();
                t.Elapsed  += new ElapsedEventHandler(t_Overtime);
                t.Interval  = mPage.mMeanRT * 2;
                t.AutoReset = false;
                t.Enabled   = true;
            }

            //new FEITClickableScreen(ref mPage.mBaseCanvas, mPage.nextStep, ref t);
            CompBtnNextPage btn = new CompBtnNextPage("算好了", t);

            btn.Add2Page(mPage.mBaseCanvas, FEITStandard.PAGE_BEG_Y + 400);
            btn.mfOnAction = mPage.nextStep;

            return(true);
        }
Exemple #26
0
        public void groupStatistics()
        {
            //record
            mPage.mRecorder.posOffTime.Add(mPage.mTimer.GetElapsedTime());
            //symm answers` statistics
            int symErrCompare = mSymmErrorACC;

            if (mGrpAt != 2 && mGrpAt != 3)//addtional trails not count in
            {
                mSymmErrorACC += mContent[mGrpAt].Trails.Count - mSymmCorrectCount;
            }

            if (mSymmErrorACC - symErrCompare > 1)
            {
                mShowWarning = true;
            }

            //sudden death
            bool everWrong = false;

            List <int> userInputOrder = new List <int>();

            //order answers` statistics
            for (int i = 0; i < mContent[mGrpAt].Trails.Count; i++)
            {
                //keep record
                if (!mPractise)
                {
                    mCurAnswer.Order.Add(mContent[mGrpAt].Trails[i].Position);
                }

                //correctness
                if (mOrderPage.mCheckComponent.mOrder.Count > i)
                {
                    if (mContent[mGrpAt].Trails[i].Position ==
                        mOrderPage.mCheckComponent.mOrder[i])
                    {
                        if (!mPractise)
                        {
                            mCurAnswer.OrderCorrectness.Add(true);
                        }

                        mOrderCorrectCount++;
                    }
                    else
                    {
                        if (!mPractise)
                        {
                            mCurAnswer.OrderCorrectness.Add(false);
                        }

                        everWrong = true;
                    }
                }
                else
                {
                    if (!mPractise)
                    {
                        mCurAnswer.OrderCorrectness.Add(false);
                    }

                    everWrong = true;
                }
            }

            //sudden death
            if (everWrong)
            {
                mOrderErrorACC++;
            }

            //routing

            if (mSymmCorrectWarningMark > 1)
            {
                mShowWarning            = true;
                mSymmCorrectWarningMark = 0;
            }

            //record
            mPage.mRecorder.shownPosition.Add(mCurAnswer.Order);
            List <int> bufferOrder = new List <int>();

            for (int i = 0; i < mOrderPage.mCheckComponent.mOrder.Count; i++)
            {
                bufferOrder.Add(mOrderPage.mCheckComponent.mOrder[i]);
            }
            mPage.mRecorder.userSelPosition.Add(bufferOrder);
            mPage.mRecorder.posCorrectness.Add(!everWrong);

            //routing
            if (mPractise)
            {
                //route
                mfRoute = showReportPage;
            }
            else//not practise
            {
                //mRecorder.elementInArray.Add(mContent[mGrpAt].Trails.Count);

                //routing
                if (mShowWarning)
                {
                    mfRoute = showReportPage;
                }
                else
                {
                    mfRoute = showTitlePage;
                    groupIterate();
                }
            }
        }
Exemple #27
0
        public void groupIterate()
        {
            mGrpAt++;
            mItemAt                 = 0;
            mSymmCorrectCount       = 0;
            mSymmCorrectWarningMark = 0;
            mOrderCorrectCount      = 0;

            if (mCurSpanAt == mCurSpanGroupsCount - 1)//end of span
            {
                if (!mPractise)
                {
                    if (mOrderErrorACC > 1 && mGrpAt - 1 >= 4)
                    {
                        mbDead = true;
                    }
                    else if (mOrderErrorACC > 3 && mGrpAt - 1 < 4)
                    {
                        mbDead = true;
                    }

                    if ((((float)mSymmErrorACC /
                          (float)(mCurSpanGroupsCount * mPage.mTestGroupScheme[mGrpAt - 1])) > 0.2) &&
                        mGrpAt - 1 >= 4)
                    {
                        mbDead = true;
                    }
                }

                mCurSpanGroupsCount = getCurSpanGroupsCount();
                mOrderErrorACC      = 0;
                //mSymmErrorACC = 0;
                mCurSpanAt = 0;
            }
            else
            {
                mCurSpanAt++;
            }



            //length2 addtional 2 items
            if (mGrpAt == 2 && !mPractise)
            {
                /*int posErrCount = 0;
                 * for (int i = 0; i < mPage.mRecorder.posCorrectness.Count; i++)
                 * {
                 *  if (mPage.mRecorder.posCorrectness[i] == false)
                 *      posErrCount++;
                 * }*/

                /*int symmErrCount = 0;
                 * for (int j = 0; j < mRecorder.symmJudgeCorrectness.Count; j++)
                 * {
                 *  if (mRecorder.symmJudgeCorrectness[j] == false)
                 *      symmErrCount++;
                 * }*/

                if (mPage.mRecorder.posCorrectness[2] == true ||
                    mPage.mRecorder.posCorrectness[3] == true)//not gonna have extra
                {
                    mGrpAt += 2;
                    mCurSpanGroupsCount = getCurSpanGroupsCount();
                    mCurSpanAt          = 0;
                    mOrderErrorACC      = 0;
                    //mSymmErrorACC = 0;
                }
            }

            if (mGrpAt == mContent.Count && !mPractise)
            {
                mfRoute = testEnd;
            }
            else if (mGrpAt == mContent.Count && mPractise)
            {
                mfRoute = mPage.nextStep;
            }

            if (mbDead)
            {
                mfRoute = testEnd;
            }

            //new answer struct
            mAnswer.Add(mCurAnswer);
            mCurAnswer = new AnswerSSST();

            mOrderPage.mCheckComponent.reset();
        }
Exemple #28
0
 public void showBlackPage2Overtime()
 {
     mPage.ClearAll();
     route = showOvertimePage;
     delayAndNext(250);
 }