Hi All,
consider the following pseudo-code:
<item ITEM_same>
/ 1 = "pic_A1.jpg"
/ 2 = "pic_A2.jpg"
/ 3 = "pic_A3.jpg"
</item>
<item ITEM_diff>
/ 1 = "pic_B1.jpg"
/ 2 = "pic_B2.jpg"
/ 3 = "pic_B3.jpg"
/ 4 = "pic_B4.jpg"
</item>
<picture PIC_same1>
/ items = ITEM_same
/ select = noreplace
</picture>
<picture PIC_same2>
/ items = ITEM_same
/ select = noreplace
</picture>
<picture PIC_same3>
/ items = ITEM_same
/ select = noreplace
</picture>
<picture PIC_diff>
/ items = ITEM_diff
/ select = replacenorepeat
</picture>
<trial TRIAL_same>
/ stimulustimes = [0 = PIC_same1,PIC_same2,PIC_same3]
</trial>
<trial TRIAL_diff>
/ stimulustimes = [0 = PIC_diff,PIC_same1,PIC_same2]
</trial>
The problem is as follows. A "same" trial is supposed to present the three different pictures from ITEM_same simultaneously. A "diff" trial shows only two stimuli from ITEM_same and one stimulus from ITEM_diff.
It must
never happen that the same picture is shown twice in a "same" trial. This, however cannot be guaranteed with the current script setup. After the first "diff" trial, there will be one element left in ITEM_same. This element will be chosen first on the next trial, then Inquisit will refill the item. This introduces the very likely chance that the element drawn before the counter was empty will be chosen again on that trial.
I know this could be circumvented by adding a
\ ontrialbegin = [item.ITEM_same.reset]
to TRIAL_same and TRIAL_diff, but can it be done without resorting to expression language?
Best wishes,
Malte