I am trying to figure out how I would structure an experiment where I have participants who need to make 30 choices from each of 20 different choice sets with the presentation of choice set being random.
So for example choice set 3 might be presented first with a participant making 30 choices in it with feedback about each choice, and then they might be presented with choice set 20 again making 30 choices, so on and so forth.
I though maybe defining blocks then randomly picking blocks but certainly there is a way to build 1 trial that does all of this in some kind of loop?
There are many ways to do this. However, the information you provide is to unspecific and vague to suggest a particular approach or strategy. If you can re-phrase your question in more concrete terms, I'll gladly add my $ 0.02.
So I have 20 choice sets. Each choice set contains two different gambles which are made up of two different outcomes which are probabilistically determined.
What I need is for each of the 20 choice sets to be presented randomly but 30 times once they are presented. So, if first gamble choice chosen at random was PAIR 1 I would chose between the options present in PAIR 1 30 times with feedback about the monetary outcome that occurred showing up after each choice. This monetary outcome should be determined by the probabilities present in the gamble selected. So, if I choose a gamble with 10% chance of 2 and 90% chance of 3 a random number between 1 and 100 should be drawn, if the number is 10 or less then feedback would be 2 else feedback would be 3.
Meaning -- within a given set -- the gamble choice is always the same?
Correct.
Then e.g.
<expt>/ blocks = [1-20=myblock]</expt><block myblock>/ trials = [1-30=mytrial]</block><trial mytrial>/ posttrialpause = 500/ stimulusframes = [1=A,B, debug]/ validresponse = (A,B)/ inputdevice = mouse</trial><text debug>/ items = ("Block: <%script.currentblocknumber%>| Trial: <%block.myblock.currenttrialnumber%>")/ position = (50%, 10%)/ erase = false</text><text A>/ items = choiceaitems/ select = noreplace/ selectionrate = block/ position = (40%, 50%)</text><text B>/ items = choicebitems/ select = current(A)/ position = (60%, 50%)</text><item choiceaitems>/ 1 = "Set1_ChoiceA"/ 2 = "Set2_ChoiceA"/ 3 = "Set3_ChoiceA"/ 4 = "Set4_ChoiceA"/ 5 = "Set5_ChoiceA"/ 6 = "Set6_ChoiceA"/ 7 = "Set7_ChoiceA"/ 8 = "Set8_ChoiceA"/ 9 = "Set9_ChoiceA"/ 10 = "Set10_ChoiceA"/ 11 = "Set11_ChoiceA"/ 12 = "Set12_ChoiceA"/ 13 = "Set13_ChoiceA"/ 14 = "Set14_ChoiceA"/ 15 = "Set15_ChoiceA"/ 16 = "Set16_ChoiceA"/ 17 = "Set17_ChoiceA"/ 18 = "Set18_ChoiceA"/ 19 = "Set19_ChoiceA"/ 20 = "Set20_ChoiceA"</item><item choicebitems>/ 1 = "Set1_ChoiceB"/ 2 = "Set2_ChoiceB"/ 3 = "Set3_ChoiceB"/ 4 = "Set4_ChoiceB"/ 5 = "Set5_ChoiceB"/ 6 = "Set6_ChoiceB"/ 7 = "Set7_ChoiceB"/ 8 = "Set8_ChoiceB"/ 9 = "Set9_ChoiceB"/ 10 = "Set10_ChoiceB"/ 11 = "Set11_ChoiceB"/ 12 = "Set12_ChoiceB"/ 13 = "Set13_ChoiceB"/ 14 = "Set14_ChoiceB"/ 15 = "Set15_ChoiceB"/ 16 = "Set16_ChoiceB"/ 17 = "Set17_ChoiceB"/ 18 = "Set18_ChoiceB"/ 19 = "Set19_ChoiceB"/ 20 = "Set20_ChoiceB"</item>
For advanced stuff such as scoring, see scripts like the Information Sampling Task or Columbia Card Task (available from the Task Library at millisecond.com).
Thanks but how would I make this random in terms of what choice set is presented? here it looks like it would go through in the order they are on the item list?
No. The <text> elements are set to 'noreplace', i.e. random selection without replacement. Run it and see for yourself.