PennController for IBEX › Forums › Support › Repeat trials until correct › Reply To: Repeat trials until correct
April 21, 2022 at 6:49 pm
#8096
Keymaster
Hi,
You have different ways of doing it, but what I would do would be to test the different words in separate trials, which I would generate using Template (I would list the words in a CSV table). Then I would use a global Var element to keep track of performance and, at the end of the series of trials, I would go back to the beginning of the series if they did not get everything right. Here is what it would look like:
Sequence("pre-verb", "verb", "post-verb")
newTrial("pre-verb",
newVar("verb-performance").global().set(true)
)
//Learning the verbs
Template("verbs.csv", row=>
newTrial("verb",
newText("question", "<p>What does '"+row.word+"' mean?</p>")
.center()
.print()
,
newText("guess1", row.guess1)
.print()
,
newText("guess2", row.guess2)
.print()
,
newSelector("choice")
.add(getText("guess1") , getText("guess2"))
.shuffle()
.frame("solid 2px purple")
.wait()
.log()
,
newButton("check_response", "Continue")
.center()
.print()
.wait(
getSelector("choice")
.test.selected( getText(row.correct) )
.failure(
getVar("verb-performance").set(false)
,
newText("Sorry, this is not the correct answer. Please select again.").print()
)
)
)
)
newTrial("post-verb",
getVar("verb-performance").global().test.is(true).failure( jump("pre-verb") )
)
With verbs.csv:
word,guess1,guess2,correct dax,Lift,Turn,guess1 zep,Lift,Turn,guess2
Jeremy