Test with time limit

David McFarlane mcfarla9 at msu.edu
Mon Mar 29 18:32:07 UTC 2010


Mich,

Did you by any chance mean for step 1 to read,

1) Set exit list to the 15 minutes option
?

Otherwise it seems like this just enforces the 46 
trial limit in two different ways at once.  Also, 
wouldn't trialnum have to be declared 
globally?  Just checking my understanding in case I missed something.

Alternatively, one might set the List to exit at 
46 trials, and then use code to enforce the time limit, thus,

1) Create a global time-to-exit variable in the User Script Area:
Dim  tExit as Long
2) Set Exit List to the 46 trials option.
3) Initialize the time-to-exit in inline code just before the List starts:
Const  ListTimeLimit as Long = 15 * 60 * 1000
tExit = Clock.Read + ListTimeLimit
4) In another inline within every trial, check 
whether the List time limit has passed and exit the List if this happens:
If Clock.Read >= tExit Then MyList.Terminate 
'where MyList is the name of your List
(or if you prefer to write that in a way that works with any List name,
If Clock.Read >= tExit Then _
     CList( Rte.GetObject( c.GetAttrib("Running") ) ).Terminate
)


Now that I have outlined all that, I think I 
prefer the first "Exit List set to 15 minutes" 
approach since that takes care of all the tricky 
timing issues for you.  But I am a die-hard 
academic and I always like to lay out all the 
options and mull these things over whenever I code.

Finally, I wonder if PST has an example of how to 
do this in their Samples area on the web?

-- David McFarlane, Professional Faultfinder


At 3/29/2010 11:43 AM Monday, you wrote:
>Hi Ben,
>1) set exit list to the 46 trials option
>2) insert a trial counter inline code before the list is encountered:
>Dim trialnum as integer
>3) add one to the trialnum with every trial, by 
>inserting another inline at the start of every trial (i.e. within this list)
>trialnum = trialnum + 1
>4) check, every trial, whether 46 trials have 
>passed and exit list if this happens:
>If trialnum = 46 then myList.Terminate 'where myList is the name of your list.
>
>...
>That's the coding for beginners part, which I 
>think works better as a tutorial. Far more 
>elegant, however, is the way explained in the ebasic help:
>
>'Stop running the list after the third trial
>If c.GetAttrib(c.GetAttrib("Running") & ".Sample") = 46 Then myList.Terminate
>
>Cheers,
>Mich
>
>
>
>Michiel Spapé
>Research Fellow
>Perception & Action group
>University of Nottingham
>School of Psychology
>
>
>-----Original Message-----
>From: e-prime at googlegroups.com 
>[mailto:e-prime at googlegroups.com] On Behalf Of lamchunpan2108
>Sent: 29 March 2010 16:07
>To: E-Prime
>Subject: Test with time limit
>
>Hi all,
>
>I am not sure if it is an easy question since I am still very new to e-
>prime. I am creating a speed test version of an intelligence test (15
>minutes time limit). There are 46 trials in a Block and participants
>can either finish all the trials within 15 minutes or the program will
>jump to the next procedure after 15 minutes. I know that we can input
>something similar in the Reset/Exit of Block options. However, the 2
>options cannot co-exist, i.e., 1.) Exit after 600 seconds, and 2.)
>Exit after 46 trials. I would like to know how can I do so in e-prime.
>
>Thanks a lot for any help!!!
>
>Regards,
>Ben Lam

-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To post to this group, send email to e-prime at googlegroups.com.
To unsubscribe from this group, send email to e-prime+unsubscribe at googlegroups.com.
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.



More information about the Eprime mailing list