SlideImage Subobject

David McFarlane mcfarla9 at msu.edu
Wed Apr 25 16:01:32 UTC 2012


Just another thought, your memory experiment sounds a bit like the 
Study-Recall example that you may download from the PST web site, you 
might see how that works and adapt it to your use.

Also, as a more generic piece of advice, anytime that I see Random() 
or PRNG.Random used in inline code, I remember that EP Lists already 
provide very good randomizing facilities, so I try to think how I can 
do more with Lists instead of inline code.

And as always, you can run your design by PST Web Support at 
http://support.pstnet.com/e%2Dprime/support/login.asp .

-----
David McFarlane
E-Prime training 
online:  http://psychology.msu.edu/Workshops_Courses/eprime.aspx
Twitter:  @EPrimeMaster (twitter.com/EPrimeMaster)


At 4/25/2012 04:35 AM Wednesday, Michiel Sovijarvi-Spape wrote:
>Hi,
>I'm sorry, going through your code mainly gives me a headache. Most times
>people do coding on slide "sub-objects" lead to this giant mess of code, and
>unless one is working with Tobii eye-tracking, it seems seldom necessary.
>For instance, how about 1) instead of NOT showing an image, it would be
>preferable to read the same amount of data, so, just make a white picture
>using ms paint and call that NoImage.BMP. Coders dislike this type of
>strategy (since it's intentionally inefficient), but it makes perfect
>experimental sense. 2) instead of showing 3 images and making one invisible,
>you could just add a number of slide-states with sometimes one missing.
>
>Otherwise, I'd really suggest cleaning up your own code first, and then
>having others to work out what is going wrong. For instance:
>
>If (pos = 1) And (OldStim = 1) And (stim = 1) Then
>     pos1 = pos1 + 1
>     OldStim1 = OldStim1 + 1
>     If pos1 > 10 Then
>         GoTo SelectPosition
>         If OldStim1 > 10 Then
>             GoTo SelectOld
>         Else
>             RImg1.X = 441
>             RImg1.Y = 384
>             NImg.X = 589
>             NImg.Y = 384
>             c.SetAttrib "Location", "1"
>             c.SetAttrib "PosOld", "1"
>             Debug.Print c.GetAttrib("PosOld")
>         End If
>     End If
>End If
>
>.... is exactly the same as what you write, but without code that is
>commented out (did you have that working in there?), indentation that makes
>it slightly clear what is being end-iffed. Also note that RImg1.X should not
>be a string value.
>
>Finally, you'll be thankful to yourself if you'd collapse some of the code,
>that is, if you write "If pos = 1 And OldStim = 1 And stim = 1 Then" and a
>bit later on "If pos = 1 And OldStim = 1 And stim = 1 Then", then you can
>see that quite a lot of code is duplicate and not adding an awful lot.
>
>Hope that helps,
>Michiel
>
>-----Original Message-----
>From: e-prime at googlegroups.com [mailto:e-prime at googlegroups.com] On Behalf
>Of MARILY ILLESCAS
>Sent: 25 April 2012 08:49
>To: E-Prime
>Subject: SlideImage Subobject
>
>Hello! Hope you can help me.
>I'm making a memory experiment, in the encoding phase are two images that
>should be classified as same or different.  In the recognition phase are two
>images, one must decide which image is old or if both are new. The problem
>is that in the recognition phase I want the program select randomly one of
>the two images presented in the previous stage to be presented with a new
>image. Use a slide with three objects, each corresponding to the three
>options (old image 1, old image 2 and new image). I use this script to
>select randomly the old image and the position (is only a part):
>
>
>Set RImg1 =
>CSlideImage(EstimulosR.States(EstimulosR.ActiveState).Objects("RIm1"))
>Set RImg2 =
>CSlideImage(EstimulosR.States(EstimulosR.ActiveState).Objects("RIm2"))
>Set NImg =
>CSlideImage(EstimulosR.States(EstimulosR.ActiveState).Objects("NIm"))
>
>stims = c.GetAttrib("StimType") If stims = "1" Then stim = 1 Else stim = 2
>End If
>
>SelectPosition:
>pos = PRNG.Random(1, 2)         'Select a position
>
>SelectOld:
>OldStim = PRNG.Random(1, 2)             'Select a old image
>
>If pos = 1 And OldStim = 1 And stim = 1 Then
>         pos1= pos1 + 1
>         OldStim1 = OldStim1 + 1
>         If pos1 > 10 Then
>         GoTo SelectPosition
>         If OldStim1 > 10 Then
>         GoTo SelectOld
>         Else
>         'RImg1.Filename = c.GetAttrib("RImagen1")
>         'RImg1.Draw
>         RImg1.X = "441"
>         RImg1.Y = "384"
>         'NImg.Filename =c.GetAttrib("NImagen")
>         'NImg.Draw
>         NImg.X = "589"
>         NImg.Y = "384"
>         c.SetAttrib "Location", "1"
>         c.SetAttrib "PosOld", "1"
>         Debug.Print c.GetAttrib("PosOld")
>     End If
>         End If
>End If
>
>
>If pos = 2 And OldStim = 1 And stim = 1 Then
>     pos2= pos2 + 1
>     OldStim1 = OldStim1 + 1
>         If pos2 > 10 Then
>         GoTo SelectPosition
>         If OldStim1 > 10 Then
>         GoTo SelectOld
>         Else
>         'NImg.Filename =c.GetAttrib("NImagen")
>         'NImg.Draw
>         NImg.X = "441"
>     NImg.Y = "384"
>'       RImg1.Filename = c.GetAttrib("RImagen1")
>         'RImg1.Draw
>         RImg1.X = "589"
>         RImg1.Y = "384"
>         c.SetAttrib "Location", "2"
>         c.SetAttrib "PosOld", "1"
>         Debug.Print c.GetAttrib("PosOld")
>         End If
>End If
>End If
>
>
>The problem is that the script does not work, the program displays the three
>images. I do not know how to make the program ignored the image should not
>be presented.
>
>Can anyone help me?

-- 
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