Millisecond Forums

Noreplace across two picture types

https://forums.millisecond.com/Topic16213.aspx

By JodieK - 5/3/2015

Hi all,
I'm trying to code a task where two stimuli appear on the screen at the same time, one on the left and one on the right. Because a picture can appear on the left or the right, I have defined two types of <picture>'s to determine position on the screen and these draw from the same pool of items. 
In my trials, though, some pictures are appearing more than once, even though I have used the noreplace function - I think because two types of pictures are each separately not replacing from the pool of items rather than the pool of items not replacing across both locations. Is there any way to fix this?
I'm new to Inquisit and so have used a pretty basic (probably not the best) way of coding - I haven't used list elements, just defined my pictures and then used trials with /stimulustimes to determine what appears when.

Any help would be much appreciated! Thanks very much.

Jodie
By Dave - 5/3/2015

The two <picture> elements need to have a single, shared selection pool. That's established via a <list>. Having them reference the same <item> element does *not* establish a common selection pool. Example (using <text> elements; works the same for <picture>s):

<block myblock>
/ trials = [1-2=mytrial]
</block>

<trial mytrial>
/ stimulusframes = [1=left, right]
/ validresponse = (57)
</trial>

<text left>
/ items = myitems
/ position = (40%, 50%)
/ select = list.mylist.nextindex
</text>

<text right>
/ items = myitems
/ position = (60%, 50%)
/ select = list.mylist.nextindex
</text>

<list mylist>
/ poolsize = 4
/ selectionrate = always
</list>

<item myitems>
/ 1 = "A"
/ 2 = "B"
/ 3 = "C"
/ 4 = "D"
</item>

By JodieK - 5/5/2015

Thanks Dave! So helpful and a quick response. I have created the lists. Just wondering what the   / select = list.mylist.nextindex   tells the program to do - I can't find the 'list.mylist.nextindex' it in the manual and just wanted to try and understand how it works. I found 'currentindex' but didn't really understand what they meant either.

Sorry for the naive questions.
By Dave - 5/5/2015

list.mylist.nextindex simply samples a new index value from the respective list element. currentindex merely returns the current index *without* forcing the selection of a new value (i.e., it reads out the index value passively). You'll find both properties covered in the language reference for the <list> element.