correct response via keys during learing trial


Author
Message
rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
Dear David, thank you very much for your kind help! It works perfectly! Best greetings and have a good day!

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K
Look at

/ branch = [if (openended.MVRVM.error && openended.MVRVM.count = 3) trial.konzentration]

Note that '=' is the *assignment operator*. It is not a *comparison operator* ('==', etc.), which is what you want / need here. Please refer to the "Operators" and "Conditional Statements" topics in the documentation for details.

Amend your code along the below lines:

<text a>
/ items = ("A")
/ position = (50%, 40%)
</text>

<text b>
/ items = ("B")
/ position = (50%, 40%)
</text>

<text c>
/ items = ("C")
/ position = (50%, 40%)
</text>

<text fixation>
/ items = ("+")
/ position = (50%, 40%)
</text>

<text mask>
/ items = ("   ")
/ position = (50%, 40%)
</text>

<text konzentration_erinnerung>
/ items = ("Bitte konzentrieren Sie sich!")
/ position = (50%, 40%)
</text>

<openended a>
/ stimulustimes = [0=fixation; 1000=a; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("a")
/ branch = [if (openended.a.error && openended.a.count < 3) openended.a]
/ branch = [if (openended.a.error && openended.a.count >= 3) trial.konzentration]
</openended>

<openended b>
/ stimulustimes = [0=fixation; 1000=b; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("b")
/ branch = [if (openended.b.error && openended.b.count < 3) openended.b]
/ branch = [if (openended.b.error && openended.b.count >= 3) trial.konzentration]
</openended>

<openended c>
/ stimulustimes = [0=fixation; 1000=c; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("c")
/ branch = [if (openended.c.error && openended.c.count < 3) openended.c]
/ branch = [if (openended.c.error && openended.c.count >= 3) trial.konzentration]
</openended>

<trial konzentration>
/ stimulustimes = [1=konzentration_erinnerung; 5000=mask]
/ validresponse = ("l")
/ correctresponse = ("l")
</trial>

<block training>
/ trials = [1-3 = noreplace(a,b,c)]
</block>

rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
Dear Dave, in regard to the above mentionned experiment I have another question: Participants are presented letter of strings. After the presentation they shall remember the presented string of letters (typing via keys). If participants do not remember the string correctly, the string of letters reappears. After any third incorrect entry, participants shall be reminded to try not to make mistakes (<text stimuli>) and, then, a NEW string shall be presented on the next trial. I tried to write a branch, in which the text stimuli appears after three incorrect answers. Unfortunatelly, it does not work. I think, I would have to integrate <trial konzentration> within the <block training>. But I do not know how. Furthermore, I am uncertain weather I am allowed to integrate a <trial> (trial konzentration) within an <openended> ?
Excuse me for those programming concerning non-logical questions! And thank you very much in advance for your help! Best greetings

<openended MVRVM>
/ stimulustimes = [0=fixation; 1000=MVRVM; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("MVRVM")
/ branch = [if (openended.MVRVM.error && openended.MVRVM.count < 3) openended.MVRVM]
/ branch = [if (openended.MVRVM.error && openended.MVRVM.count = 3) trial.konzentration]
</openended>

<openended VMRMVRV>
/ stimulustimes = [0=fixation; 1000=VMRMVRV; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("VMRMVRV")
/ branch = [if (openended.VMRMVRV.error && openended.VMRMVRV.count < 3) openended.VMRMVRV]
/ branch = [if (openended.VMRMVRV.error && openended.VMRMVRV.count = 3) trial.konzentration]
</openended>

<openended VMRMVXR>
/ stimulustimes = [0=fixation; 1000=VMRMVXR; 5000=mask]
/ validresponse = (anyresponse)
/ correctresponse = ("VMRMVXR")
/ branch = [if (openended.VMRMVXR.error && openended.VMRMVXR.count < 3) openended.VMRMVXR]
/ branch = [if (openended.VMRMVXR.error && openended.VMRMVXR.count = 3) trial.konzentration]
</openended>

<trial konzentration>
/ stimulustimes = [1=konzentration_erinnerung; 5000=mask]
/ validresponse = ("l")
/ correctresponse = ("l")
</trial>

<block training>
/ trials = [1-16 = noreplace(MXRVXT, VMTRRRR, MXTRRR, VXVRMXT, VXVRVM, VMRVVVV, MXRTMVR, VMRMXTR, MXR, VMRVXVR, MVRVM, VMRMVRV, VMRMVXR, MXRTVXT, MXRMVXR, MVXTR)]
/preinstructions = (wellcome, training_instruktion)
</block>

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K
Great!
rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
Dear Dave, thank you very much for your kind help. It works perfectly! Best greetings!

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K
<openended> elements' /stimulusframes and /stimulustimes attributes work exactly like <trial> elements'. And if your Inquisit installation is up-to-date, the box will not be shown until the last stimulus given in the attribute has been displayed.

/ stimulustimes = [0=FIXATION; 500=LETTERSTRING; 1000=MASK]

would display FIXATION at the start of the <openended> trial, a LETTERSTRING 500ms later and a MASK another 500ms later. The textbox will only show up after the MASK has been displayed.

rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
Dear Dave, your suggestions of following branches

<openended VXVRMXT>
/ stimulusframes = [1=fixation; 10=VXVRMXT]
/ validresponse = (anyresponse)
/ correctresponse = ("VXVRMXT")
/ branch = [if (openended.VXVRMXT.error && openended.VXVRMXT.count < 3) openended.VXVRMXT]
</openended>

<openended VXVRVM>
/ stimulusframes = [1=fixation; 10=VXVRVM]
/ validresponse = (anyresponse)
/ correctresponse = ("VXVRVM")
/ branch = [if (openended.VXVRVM.error && openended.VXVRVM.count < 3) openended.VXVRVM]
</openended>

<block training>
/ trials = [1-2=noreplace(VXVRMXT, VXVRVM)]
/ bgstim = (schreiben_erinnerung)
/preinstructions = (welcome, training_instruction)
</block>

are implemented now. Thank you very much for your help! I would like to ask you another question: Right now the string of rows (e.g. VXVRVM) and the little window, in which participants write down their remembered lettes are presented at the same time, over each other. I would like to programm it in a way that the letters are presented first, and afterwards the windown pops up, in which the participant writes down his remembered string of letters. I am not quite sure how I can programm that within <openended>, since it does not offer the same opportunity like <trials>. Therefore, do I have to combine a <trial> with an <openended> within one block, meaning presenting the string of letters within a <trial>, then masking the string of letters, and then starting an <openended> with the opportunity that the participant can write down the remembered string of words? Thank you very much in advance and all the best!




rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
Dear Dave, thank you very much for your help! I will implement your recommendations! Best greetings and have a good day.

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K
Well, no, those /branches won't do that. Particularly, nowhere in your syntax do you instruct the script to repeat a given trial in case of an incorrect response. The correct way to go about this is:

<block myblock>
/ trials = [1-2=noreplace(ab, cd)]
</block>

<openended AB>
/ stimulusframes = [1=typeAB]
/ validresponse = (anyresponse)
/ correctresponse = ("AB")
/ branch = [if (openended.ab.error && openended.ab.count < 3) openended.ab]
</openended>

<text typeAB>
/ items = ("Type the letters 'AB'")
/ position = (50%, 40%)
</text>

<openended CD>
/ stimulusframes = [1=typeCD]
/ validresponse = (anyresponse)
/ correctresponse = ("CD")
/ branch = [if (openended.cd.error && openended.cd.count < 3) openended.cd]
</openended>

<text typeCD>
/ items = ("Type the letters 'CD'")
/ position = (50%, 40%)
</text>


rouge
rouge
Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)Distinguished Member (3.5K reputation)
Group: Forum Members
Posts: 32, Visits: 73
And also: Thank you for the mark #4: this was a mistake!

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search