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); }
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); }
void symmPage_autoFlipped(object sender, ElapsedEventArgs e) { /*if (mIKnowBtnShower.Enabled) * mIKnowBtnShower.Enabled = false;*/ mfRoute = showOvertimePage; t_Elapsed(sender, e); }
public bool showBlackPage2Title() { mPage.ClearAll(); route = showTitlePage; delayAndNext(1000); return(true); }
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(); }
public bool showLongBlackPage2Equation() { mPage.ClearAll(); route = showEquationPage; //delay delayAndNext(500); return(true); }
public bool showBlackPage2Order() { mPage.ClearAll(); route = showOrderPage; //delay delayAndNext(500); return(true); }
public bool showBlackPage2Animal() { mPage.ClearAll(); route = showAnimalPage; //delay delayAndNext(250); return(true); }
public bool showBlackPage2Determine() { mPage.ClearAll(); route = showDeterminePage; //delay delayAndNext(250); return(true); }
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; }
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; } }
//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()); }
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); }
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; }
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; } }
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); }
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; }
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; }
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()); }
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(); }
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; }
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); }
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); }
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); }
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); }
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(); } } }
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(); }
public void showBlackPage2Overtime() { mPage.ClearAll(); route = showOvertimePage; delayAndNext(250); }