Millisecond Forums

Stroop task - no repeated color of words in consecutive trials

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

By fifi - 11/22/2015

Hi :) I m currently preparing for a modified Stroop task. Anyone knows what functions I should use in the script to make sure no repeated color of the word stimuli would be presented in consecutive trials? great thanks! :) 
By Dave - 11/22/2015

You would have to use a <list> for color selection and use its /maxrunsize attribute to impose the no-repetition constraint.
By fifi - 11/22/2015

Thanks a lot for your reply Dave! I have actually tried that but it seems that it's still not working :( 
I have already used <list> and included /maxrunsize as follow: 

<list neutralwords_selectcolor>
/items = (values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color1, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color2, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color3, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4, values.color4)
/replace = false
/maxrunsize = 1
/ selectionmode = random
/selectionrate = trial
</list>

In my design, I have four word lists (blocks) with each containing 80 trials (20 words and each word printed in one color) except the practice blocks consisting of 20 trials. The above shows one of the experimental block (with neutral words). As each word is printed into one color, so I include 80 colors as items under the <list>, and as each color of each word can only appear once in each block - I use /maxrunsize = 1, but the outcome still shows words with same color in consecutive trials. Is there anything I miss in the script? 
By Dave - 11/22/2015

> Is there anything I miss in the script?

I can't tell you whether you're missing anything in the script based on the <list> alone. What I can tell you is that using <list>s works if done *properly*. The below example uses 4 colors and 5 word items, i.e., 4 x 5 = 20 pairs (20 trials), with no display color repeating on consecutive trials (if possible):

<block myblock>
/ screencolor = (black)
/ trials = [1-20=mytrial]
</block>

<trial mytrial>
/ ontrialbegin = [text.mytext.textcolor=list.displaycolor.nextvalue; ]
/ stimulusframes = [1=mytext]
/ validresponse = (57)
/ posttrialpause = 500
</trial>

*** the two lists pair display color and word items ***
*** 4 colors x 5 items = 20 pairs ***
<list displaycolor>
/ items = (red, red, red, red, red,
    green, green, green, green, green,
    blue, blue, blue, blue, blue,
    yellow, yellow, yellow, yellow, yellow)
/ replace = false
/ maxrunsize = 1
/ selectionmode = random
/ selectionrate = trial
</list>

<list worditem>
/ items = (1,2,3,4,5,
    1,2,3,4,5,
    1,2,3,4,5,
    1,2,3,4,5)
/ selectionmode = list.displaycolor.currentindex
</list>

<text mytext>
/ items = myitems
/ select = list.worditem.nextvalue
/ fontstyle = ("Arial", 10%, true)
/ txbgcolor = (black)
</text>

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



By fifi - 11/23/2015

I do not know why but the color still repeats on consecutive trials though it only happens for few times. 
By Dave - 11/23/2015

Repeats can happen if there are no more elements left to sample that *don't* violate the /maxrunsize constraint, as detailed in the documentation:

"Random selection is done on the fly, so if multiple selection constraints such as not or replace are in place, it may not be possible to satisfy them all on a give trial, especially if there are only a few remaining items in the selection pool. In that case, the list will suspend one of the constraints and try again. If it still can not satisfy the remaining constraints, it suspends another and tries again, and so forth. By default, the maxrunsize constraint is suspended first, then replace, and finally the not constraints."