Sam,
OK, the next step gets tricky and takes some advanced use of nested
Lists, colon syntax, and nested attribute references, and it all comes
out quite nicely at the end.
Let's now call our main List "MemoryProbeList" (instead of
"SixDigitList"). We will end up with two or more rows in this List, but
let's start by structuring the first row.
Add a second nested List to the first (and so far only) row in
MemoryProbeList, and let's call that nested List "DigitPresentList".
Set up DigitPresentList with six rows. Add a column (i.e., attribute)
called "ProbePick", and fill it with the numbers 0-5 row by row -- we
will use this with colon syntax to pick one of the memorized digits,
remember that colon syntax starts from 0 instead of 1. Leave Nested &
Procedure empty, and set Selection to "Random with Replacement".
Go back to MemoryProbeList. Add an attribute (i.e., column) and let's
call it "ProbeDigit". Fill in the cell as follows (without the quote
marks): "[Digit:[ProbePick]]". This will use ProbePick to pick a
randomized offset from 0 to 5 into Digit, and then pick that randomized
Digit from DigitList. Neat huh? While we are at it, let's also add a
column named "ProbeType", and fill that in with "Present" -- this is
just information for us, it has no bearing on the actual operation of
the program (Michiel Spape calls these "latent" attributes, as opposed
to the "manifest" attributes that actually have an effect on the running
program).
You might as well pause at this point and see how this works so far.
You see where this is going by now. Next add a second row to
MemoryProbeList. Fill it in mostly just like the first row, except add
"DigitAbsentList" for the extra nested List (instead of
DigitPresentList), and set ProbeType to Absent. Then you have to set up
DigitAbsentList. For this one you want just three rows, with entries 6,
7, and 8, and again set Selection to "Random with Replacement". Now
this will randomly pick one of the three digits that was not memorized.
Finally, back at MemoryProbeList, give the same Weight to both the
"Present" & "Absent" rows, and set Selection to "Random". Note that you
can play some interesting randomization games here -- e.g., for 20 total
trials you could specify 10 trials of each kind and then randomize those
all at once, or specify 5 trials of each, randomizing 10 trials at a
time and then running two blocks of 10 trials, etc.
That should do it all, very compact and using no code at all! I will
send you separately a demo program to illustrate all this. This made
for an interesting little exercise to stretch my mind.
-- David McFarlane