David,
Thanks for all the new detail, but I am even more confused now
:). At first it looks like you just want E-Prime to randomize the
order of blocks, without randomizing the order of stimuli within each
block, which should not pose a big problem. But then it looks like
you use some inline code so that the stimulus for each trial is
contingent upon the response to earlier trials, which changes everything.
Just in case you really mean only to randomize the order of blocks
without randomizing stimulus order within each block, here is how you
might do that. Make a separate nested List for the fixed stimulus
order of each block, e.g., Block1StimList, Block2StimList, etc. Each
of these contains all the trial attributes for that block; set each
of these to run in Sequential order.
Then make a BlockList that looks like
Weight Nested Procedure StimList
1 BlockProc Block1StimList
1 BlockProc Block2StimList
1 BlockProc Block3StimList
... ... ...
Set this to run in Random order, so block order gets
randomized. BlockProc contains a TrialList, and TrialList looks like
Weight Nested Procedure
3 [StimList] TrialProc
So TrialList gets its stimulus List as an attribute reference
supplied by the BlockList. It should not matter in this case what
order TrialList runs in, because each StimList is already set to run
in Sequential order. Make sure that the Weight value here matches
the number of trials in each StimList.
You will see some "?" markers in your Structure this way, and your
Block#StimLists will end up in Unreferenced E-Objects (this is why I
am so emphatic about not leaving a mess in Unreferenced E-Objects;
there are also advanced techniques for getting these Lists to show up
back in the Structure).
Yes, you could do all this with a separate BlockProc for each
stimulus order, which may seem simpler at first but I think that gets
unwieldy. The method above keeps down the number of "moving parts".
I doubt that I answered your question, but I will be away until
Monday and so may not pick this up again. Maybe someone else here
can weigh in. Sorry.
-- David McFarlane
/----
Stock reminder: 1) I do not work for PST. 2) PST's trained staff
take any and all questions at
https://support.pstnet.com , and they
strive to respond to all requests in 24-48 hours, so make full use of
it. 3) In addition, PST offers several instructional videos on their
YouTube channel (
http://www.youtube.com/user/PSTNET ). 4) If you do
get an answer from PST staff, please extend the courtesy of posting
their reply back here for the sake of others.
\----
At 5/8/2014 02:46 PM Thursday, David Ruvolo wrote:
>Thanks for your help. I have provided more information about the
>task. See the attached pdf for more information about the list structure.
>
>
>This is quite a poor example, but hopefully the idea is there.
>
>Now for the randomization part. When the erun file is loaded and
>the instructions/practice are through, I would like the task to
>randomize the order of the lists. So using the same example as
>before, let's say the first list administered is list 2 and all the
>trials within this list are administered. The second list
>administered is list 1 and all the trials within this list are
>administered. Then to list 3 and so forth. However, that is not
>what happens. See below for where I am at now. I am using the same
>example. The total number of trials is 15 (3 lists, 5 trials per list).
>
>The task correctly displays the stimuli and keeps track of the
>adjusted value (left stimuli), but the blocks are varied.
>Interestingly the trials are administered in order but not one after
>another (Oops, I think I left this part out in my first post).
>
>Here is how the actual task runs:
># Trial 1
>Left Stimuli = 1 ; Right stimuli = 2; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 2 x 2 = 4
>
># Trial 2
>Left Stimuli = 1 ; Right stimuli = 3; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 2 x 2 = 4
>
># Trial 3
>Left Stimuli = 1 ; Right stimuli = 1; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 2 x 2 = 4
>
># Trial 4
>Left Stimuli = 4 ; Right stimuli = 3; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 4 x 8 = 32
>
># Trial 5
>Left Stimuli = 4 ; Right stimuli = 2; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 4 x 8 = 32
>
># Trial 6
>Left Stimuli = 32 ; Right stimuli = 3; Response= "yes" Then multiply
>the left stimuli by the value the reaction: 32 ^ 14 = a long number
>
>.... # and so forth
>
>I have tried choosing the Order in the list properties and varying
>the Reset/Exit options. The sequential option addresses fixes the
>one after another issue, but not the randomization of the blocks
>issue. The randomization option displays the lists randomly and the
>trials are not one after another. I have a feeling this is a simply
>fix. I am not sure if it an experiment structure issue, a missing
>presentation option, or I need to add another in-line script to
>control the order (which might be the best option). I wanted to see
>if anyone had experience with a task structure like this and what
>they have done in the past to address this issue.
>
>Hopefully this has made the task and the issue a little clearer.
>
>Thanks for your help,
>
>- David