How about something like this....
Following the first two phases create a list for the learningphase called.. relearningphaselist (or something the like) that has two levels. Set the weight for both levels on 30 and set the list to random order. Now into these two levels nest two lists called phase1rememberedlist and phase1notrememberedlist (again... or something the like). Give them 1 attribute called stimulus (or whatever name you like to store your stimuluswords in) and leave them empty and single-leveled.
On the user tab of script window create two variables that will keep track of the number of items that were remembered and not remembered:
***
dim nremembered as integer
dim nnotremembered as integer
****
Now following the slide in which it is determined whether someone did or did not remember, add an inline that will write that current trials' value of "stimulus" (or whatever name you use for the attribute that holds your stimuluswords) to either of the two lists based on correct response to that slide (which I suppose is what you want).
****
If testslide.acc = 1 Then
nremembered = nremembered + 1
phase1rememberedlist.AddLevel
phase1rememberedlist.SetWeight nremembered, "1"
phase1rememberedlist.SetProc nremembered, "trialproc"
phase1rememberedlist.SetAttrib nremembered, "stimulus", c.getattrib "stimulus"
End If
If testslide.acc = 0 Then
nnotremembered = nnotremembered + 1
phase1notrememberedlist.AddLevel
phase1notrememberedlist.SetWeight nnotremembered, "1"
phase1notrememberedlist.SetProc nnotremembered, "trialproc"
phase1notrememberedlist.SetAttrib nnotremembered, "stimulus", c.getattrib "stimulus"
End If
*****
What I think the above script will do is add a level to either one of the two lists and set all the values that need to be set. The count variables (nremembered and nnonremembered) tell the script which level of the lists are being altered and this is dependent on the number of correctly or incorrectly remembered items.
Now only one thing is still needed before the start of phase three (that uses the newly created lists). These should be 'reimplemented' which is done by the following code that tells e-prime the amount of levels (nremembered/nnotremembered) and that these form a single cycle. At the reset command e-prime will reload the new lists (rather than using the empty lists that it generated when the run was initiated). Put this code in an inline inbetween the testphaselist and the relearningphaselist on the procedure that holds both lists (presumably sessionproc).
****
Set phase1rememberedlist.TerminateCondition = Cycles(1)
Set phase1rememberedlist.ResetCondition = Samples(nremembered)
phase1rememberedlist.Reset
Set phase1notrememberedlist.TerminateCondition = Cycles(1)
Set phase1notrememberedlist.ResetCondition = Samples(nnotremembered)
phase1notrememberedlist.Reset
****
I dare not make much promises, I based this code from other posts on similar problems (mainly Gilis code here:
https://groups.google.com/forum/?fromgroups#!topic/e-prime/elFvbnRAA7I ) and I can't test it from were I am now, but I think the above should work or almost (and that's often the tricky part >.<) work.
Please let me know,
Anne-Wil