Select items but avoid something presented recently

Select items but avoid something presented recently
 Author Message kev_dent Group: Forum Members Posts: 21, Visits: 77 I wish to present participants with 16 digits in a sequence on one trial, with these 16 items selected from 8 possible digits.How can I set this up so that the sequence of digits participants see is such that any repetition of items is separated by at least 3 other intervening different items?Any help appreciated.BestKevin Dave posted Last Month ANSWER Group: Administrators Posts: 11K, Visits: 67K +x kev_dent - 2/27/2021I wish to present participants with 16 digits in a sequence on one trial, with these 16 items selected from 8 possible digits.How can I set this up so that the sequence of digits participants see is such that any repetition of items is separated by at least 3 other intervening different items?Any help appreciated.BestKevinYou may be able to adapt e.g. https://www.millisecond.com/forums/Topic7122.aspx Dave posted Last Month ANSWER Group: Administrators Posts: 11K, Visits: 67K +x Dave - 3/1/2021+x kev_dent - 2/27/2021I wish to present participants with 16 digits in a sequence on one trial, with these 16 items selected from 8 possible digits.How can I set this up so that the sequence of digits participants see is such that any repetition of items is separated by at least 3 other intervening different items?Any help appreciated.BestKevinYou may be able to adapt e.g. https://www.millisecond.com/forums/Topic7122.aspxActually, this should be easier with using a bunch of lists and /not constraints. Something like/ n1 = 0/ n2 = 0/ n3 = 0/ the_sequence = ""/ items = (1,2,3,4,5,6,7,8)/ not = (values.n1)/ not = (values.n2)/ not = (values.n3)/ selectionmode = random/ replace = true/ selectionrate = always/ selectionmode = sequence/ selectionrate = always/ ontrialbegin = [    values.n1 = 0;    values.n2 = 0;    values.n3 = 0;    values.the_sequence = "";    list.digits.reset();    list.digitsequence.reset();]/ ontrialbegin = [    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n2 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n3 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n2 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n3 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n2 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n3 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n2 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n3 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n2 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n3 = list.digits.currentvalue;    list.digitsequence.appenditem(list.digits.nextvalue);    values.n1 = list.digits.currentvalue;]/ ontrialbegin = [    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);    values.the_sequence = concat(values.the_sequence, list.digitsequence.nextvalue);]/ stimulusframes = [1=the_sequence]/ validresponse = (57)/ items = ("<%values.the_sequence%>")

Merge Selected

Merge into selected topic...

Merge into merge target...

Merge into a specific topic ID...