Millisecond Forums

How to redraw same items from list?

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

By gracethenoob - 8/24/2016

I have an experiment in which I show participant the images that have been drawn from a larger pool of images. After the participants have seen them once, they do another task, and then they are supposed to see these images again (basically).
I have selected the images through a list function but I don't know how to index the same list when I want to show participants the images again. For example, Johnny gets "Good3" in the first task and so he should see "Good3" again in the second task. Please advise :-)

Abridged code is as follows:

<item pool_of_pos>
/1 = "good1"
/2 = "good2"
/3 = "good3"
/4 = "good4"
/5 = "good5"
/6 = "good6"
/7 = "good7"
/8 = "good8"
/9 = "good9"
/10 = "good10"
/11 = "good11"
/12 = "good12"
/13 = "good13"
/14 = "good14"
/15 = "good15"
/16 = "good16"
</item>

<item pool_of_neg>
/1 = "bad1"
/2 = "bad2"
/3 = "bad3"
/4 = "bad4"
/5 = "bad5"
/6 = "bad6"
/7 = "bad7"
/8 = "bad8"
/9 = "bad9"
/10 = "bad10"
/11 = "bad11"
/12 = "bad12"
/13 = "bad13"
/14 = "bad14"
/15 = "bad15"
/16 = "bad16"
</item>

#############################################
<list nitems>
/ poolsize = 16
/ selectionmode = random
/ selectionrate = always
</list>

<list self_pos_items>
</list>

<list self_neg_items>
</list>

#############################################
<text self_pos>
/ items = pool_of_pos
/ select = list.self_pos_items.nextvalue
</text>

<text self_neg>
/ items = pool_of_neg
/ select = list.self_neg_items.nextvalue
</text>

############################################# This is the first time they see the images
<trial self_pos>
/pretrialpause = 250
/ontrialbegin = [values.numberoftrialsrun = values.numberoftrialsrun+ 1]
/stimulustimes = [0 = erasefixation, self_question, key_reminder_yes, key_reminder_no; 500 = self_pos]
/validresponse = ("E", "P")
</trial>

<trial self_neg>
/pretrialpause = 250
/ontrialbegin = [values.numberoftrialsrun = values.numberoftrialsrun+ 1]
/stimulustimes = [0 = erasefixation, self_question, key_reminder_yes, key_reminder_no; 500 = self_neg]
/validresponse = ("E", "P")
</trial>

#############################################This is the second time they see the images

<trial self_pos_mem>
/pretrialpause = 250
/ontrialbegin = [values.numberoftrialsrun= values.numberoftrialsrun+ 1]
/stimulustimes = [0 = self_pos, key_reminder_memory]
/validresponse = ("F", "N")
/correctresponse = ("F")
</trial>


<trial self_neg_mem>
/pretrialpause = 250
/ontrialbegin = [values.numberoftrialsrun= values.numberoftrialsrun+ 1]
/stimulustimes = [0 = self_neg, key_reminder_memory]
/validresponse = ("F", "N")
/correctresponse = ("F")
</trial>

#############################################
<block training>
/ trials = [1-8 = noreplacenorepeat(self_pos, self_pos, other_pos, other_pos, self_neg, self_neg, other_neg, other_neg)]
</block>

<block memory>
/ trials = [1-8 = noreplacenorepeat(self_pos_mem, self_pos_mem, other_pos_mem, other_pos_mem, self_neg_mem, self_neg_mem, other_neg_mem, other_neg_mem,)]
</block>

#############################################
<expt>
/ onexptbegin = [list.self_pos_items.appenditem(list.nitems.nextindex);
    list.self_neg_items.appenditem(list.nitems.nextindex);
    list.other_pos_items.appenditem(list.nitems.nextindex);
    list.other_neg_items.appenditem(list.nitems.nextindex);
list.self_pos_items.appenditem(list.nitems.nextindex);
    list.self_neg_items.appenditem(list.nitems.nextindex);
    list.other_pos_items.appenditem(list.nitems.nextindex);
    list.other_neg_items.appenditem(list.nitems.nextindex);
[...] continue adding to list until it's the right number of times...
/blocks = [1 = training; 2 = memory]
</expt>



By Dave - 8/24/2016

This has been covered numerous times, see e.g. https://www.millisecond.com/forums/FindPost13295.aspx or https://www.millisecond.com/forums/FindPost13410.aspx

The gist of it is that you need to record the item numbers used in the 1st part in one or several <list>s and then use those lists for stimulus selection in the 2nd part.