public IEnumerable <View> RunTrial(string tst, string ans, int numstim, StreamWriter logWriter, StreamWriter anslog) { IViewResult result; var vocabView = new VocabView(tst, ans, settings.DisplayTime, settings.DelayTime, false, anslog, out result); yield return(vocabView); //No feedback in original Karpicke and Roediger, but I'm leaving the option //yield return new TextView((bool)result.Value ? "Correct" : "Incorrect", settings.FeedbackTime, GUIUtils.Constants.DISPLAY_FONT); int towrite = 0; if ((bool)result.Value) { towrite = 1; } logWriter.WriteLine(numstim + ", " + towrite); //if (needToRerun) //{ // foreach (var view in RunTrial(index, tst, ans, dataWriter, logWriter, currentTrialEntries, pres)) // { // yield return view; // } //} }
public FormMain(SCIPackage package, SCIPackage translate) { _package = package; _translate = translate; InitializeComponent(); Text = package.GameDirectory; SetStyle(ControlStyles.OptimizedDoubleBuffer, true); sc.Panel2.Controls.Add(hexViewer = new HexViewer()); sc.Panel2.Controls.Add(textViewer = new TextViewer()); sc.Panel2.Controls.Add(fontView = new FontView()); sc.Panel2.Controls.Add(scriptView = new ScriptView()); sc.Panel2.Controls.Add(vocabView = new VocabView()); sc.Panel2.Controls.Add(msgView = new MsgView()); sc.Panel2.Controls.Add(picView = new PicView()); foreach (ResType resType in Enum.GetValues(typeof(ResType))) { var resources = package.GetResources(resType); if (!resources.Any()) { continue; } TreeNode tnRes = tv.Nodes.Add(ResTypeName(resType)); tnRes.ImageKey = "folder"; tnRes.SelectedImageKey = tnRes.ImageKey; foreach (var res in resources) { TreeNode tnRec = tnRes.Nodes.Add(res.ToString()); tnRec.ImageKey = ResTypeKey(resType); tnRec.SelectedImageKey = tnRec.ImageKey; tnRec.Tag = res; } } if (_translate == null) { tsbTranslated.Checked = false; tsbTranslated.Visible = false; tsbSave.Visible = false; } }
/// <summary> /// The enumerator implementation /// </summary> public override IEnumerator <View> GetEnumerator() { IViewResult result; yield return(new ChoiceView(new string[] { "Start Training Phase" }, out result) { Text = "Click When Ready" }); for (int j = 0; j < comp.Count; j++) { yield return(new TextView(comp[j], 3000, GUIUtils.Constants.DISPLAY_FONT_LARGE)); yield return(new RestView(1500)); } yield return(new ChoiceView(new string[] { "Begin Testing" }, out result) { Text = "Click When Ready" }); //Display each block of stimuli for (int j = 0; j < (settings.NumBlocks * 2); j++) { int limit = blocks[j].Count; for (int k = 0; k < limit; k++) { //Rest yield return(new RestView(this.settings.BlinkTime)); //Fixate yield return(new FixationView(this.settings.FixationTime)); var stimulus = blocks[j].RemoveRandom(); //Generate stimulus view yield return(new TextView(stimulus, 2000, GUIUtils.Constants.DISPLAY_FONT_LARGE)); yield return(new TextView(stimulus + "*", 1000, GUIUtils.Constants.DISPLAY_FONT_LARGE)); } yield return(new ChoiceView(new string[] { "Ready for next block" }, out result)); } yield return(new ChoiceView(new string[] { "Start Study Phase" }, out result)); foreach (var stim in study) { yield return(new TextView(stim, this.settings.PresentationTime, GUIUtils.Constants.DISPLAY_FONT_LARGE)); yield return(new RestView(this.settings.RestTime)); } yield return(new ChoiceView(new string[] { "Start Practice Phase" }, out result)); //Present all the stimuli for practice foreach (var stimulus in presentation) { yield return(new RestView(this.settings.RestTime)); yield return(new FixationView(this.settings.FixationTime)); if (stimulus.isStudy) { yield return(new TextView(stimulus.test, this.settings.PresentationTime, GUIUtils.Constants.DISPLAY_FONT_LARGE)); } else { VocabView vocabView = new VocabView(stimulus.test, stimulus.answer, this.settings.PresentationTime, this.settings.DelayTime, false, out result); yield return(vocabView); } } }