Liwenna,<div><br></div><div>That is actually quite clever! So I want to see if I understand this. See below.</div><br>On Wednesday, January 12, 2011 3:00:44 AM UTC-8, liwenna wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Hi Caleb,
<br>
<br>Thank's for your explanation!
<br>
<br>I'd like to add another way to implement pretty much the same thing in
<br>a different way for those that for some reason or another want to cut
<br>on their use of inlines.
<br>
<br><a href="http://images.redial.net/crespbasedonversion.jpg" target="_blank">http://images.redial.net/<wbr>crespbasedonversion.jpg</a>
<br>
<br>See the image linked above.
<br>This list contains (among others) the attributes cresp, crespa, and
<br>crespb . The slideobject should be refered to the attribute cresp for
<br>the correctresponse (in the slide object properties fill in [cresp]
<br>for correct response). As one can see cresp is then referred further
<br>to [cresp[version]] . The attribute version can have either value A or
<br>B, so that [cresp[version]] actually means either [crespA] or [crespB]
<br>and thus for cresp the value of either attribute crespa or crespb will
<br>be implemented. The attribute "version" can be a startup
<br>variable(create this in the menu that is found under the e-prime logo
<br>at the top of your experiment tree). </blockquote><div>So E-Prime does the following:</div><div>1) Select a Trial.</div><div>2) Collect a response.</div><div>3) Compare the response to [cresp] attribute. [cresp] is set to the "Correct: " property field of the SlideObject.</div><div>4) The [cresp] attribute references [cresp[version]].</div><div>5) [version] is resolved based on the startup attribute "version" (c.getattrib("version"), with choices of either 'A' or 'B'.</div><div>6) Thus, based on the version, the SlideObject references either [crespa] or [crespb], within the same List1 Object.</div><div> </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Another option, for a simple odd/
<br>even randomisation, is to add an inline with the following two lines
<br>at the start of your experiment:
<br>
<br>if c.getattrib ("subject") mod 2 = 1 then c.setattrib "version", "A"
<br>if c.getattrib ("subject") mod 2 = 0 then c.setattrib "version", "B"
<br>
<br>This inline will assign value A to the attribute "version" for all odd
<br>subject numbers and version B to all even subject numbers so that you
<br>don't have to manually assign a version at start up. </blockquote><div>So E-Prime will take the remainder of the Ss# divided by 2. If the remainder is 1, then assign version A. If the remainder is 0, assign version B.</div><div>Again, very clever! </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"> </blockquote><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>In addition: when using this the way I did (randomizing the response
<br>buttons, i.e. button 1 for answer a and 2 for answer b in half the
<br>participants and vice versa in the other half) you'll also need to
<br>adjust the instructions based on the assigned version. This is easily
<br>done by creating two states in your instructionslide(s). One state
<br>should be named A and the other state B and contain the according
<br>instructions. In the instruction slide properties fill in [version] in
<br>the box activestate and the program will show either state A or state
<br>B according to the value of "version".
<br></blockquote><div>In the past, I've always created two separate Instruction SlideObjects, but this solution seems less messy and easier to handle. Thanks! </div><blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">
<br>Best,
<br>
<br>AW
<br>
<br>On Jan 12, 3:02 am, "Caleb J. Picker" <<a>dbzgtf...@gmail.com</a>> wrote:
<br>> Hello all,
<br>>
<br>> I would just like to post a solution to this problem because I had
<br>> difficulty finding it.
<br>>
<br>> Just to clarify, the problem is this. You have a slide object that collects
<br>> input responses (e.g. TestSlide) with allowable response 'F' and 'J'. Based
<br>> on your List object (this presumably houses your stimuli and the correct
<br>> responses), you have an attribute for correct responses (let's say
<br>> "CorrectResp"). However, now let's say you have two similar experiments
<br>> with two different Correct Responses. In your List object, you might then
<br>> have two attributes (CorrectResp1 and CorrectResp2). Each attribute
<br>> corresponds to a different experiment (say, Expt1 and Expt2).
<br>>
<br>> In an inline (placed before the TestSlide runs), you need to change your
<br>> 'Correct:' property of your TestSlide based upon which experiment is
<br>> selected at startup. One solution I came up with is as follows:
<br>>
<br>> Select Case c.getattrib("Group")
<br>> Case "Expt1"
<br>> TestSlide.InputMasks.Add Keyboard.CreateInputMask("fj", *
<br>> c.GetAttrib("CorrectResp1"*),_
<br>> CLng(TestSlide.Duration), CLng("1"), ebEndResponseActionTerminate,
<br>> CLogical("Yes"),_
<br>> "", "", "ResponseMode:All ProcessBackspace:Yes")
<br>> Case "Expt2"
<br>> TestSlide.InputMasks.Add Keyboard.CreateInputMask("fj", *
<br>> c.GetAttrib("CorrectResp2"*),_
<br>> CLng(TestSlide.Duration), CLng("1"), ebEndResponseActionTerminate,
<br>> CLogical("Yes"),_
<br>> "", "", "ResponseMode:All ProcessBackspace:Yes")
<br>> Case Else
<br>> MsgBox "Set correct response Error!"
<br>> End Select
<br>>
<br>> The only way I found out how to do to this was by inputing an attribute
<br>> within the 'Correct: ' field on the TestSlide object. I then generated the
<br>> script, and searched for the line where E-Prime 'sets up' the Slide Object.
<br>> From my understanding, what this line actually does is create allowable
<br>> responses (in this case a keyboard with keys 'f' and 'j'), correct
<br>> attribute, sets the duration, and then sets up the rest of the properties.
<br>> This list is pretty much all of the properties for any given slide object.
<br>> The only way to change these properties directly is by using this inline,
<br>> figuring out which property is which, and then making the adjustments
<br>> accordingly.
<br>>
<br>> There is also another way. Instead of creating two attributes, you can have
<br>> one "CorrectResp" attribute (this way, you will not need to use the above
<br>> inline). Then you will need an inline that says the following:
<br>>
<br>> dim y as integer
<br>>
<br>> For y = 1 to List1.Size
<br>> Select Case c.getattrib ("Group")
<br>> Case "Expt1"
<br>> If List1.getattrib("Stimulus") = "Property1" then
<br>> List1.setattrib(y, "CorrectResp"), "F"
<br>> Elseif List1.getattrib("Stimulus")="<wbr>Property2" then
<br>> List1.setattrib(y, "CorrectResp")="J"
<br>> Else
<br>> MsgBox "Set Correct Response Error Expt 1"
<br>>
<br>> Then just repeat this for Case "Expt2"
<br>>
<br>> You just need to place this before you run your testing procedure and set
<br>> the TestSlide 'Correct: ' Property field to [CorrectResp].
<br>>
<br>> I hope this helps. If anyone else has more elegant solutions than this
<br>> (this is admittedly basic), please feel free to post.
<br>>
<br>> Caleb J. Picker</blockquote>
<p></p>
-- <br />
You received this message because you are subscribed to the Google Groups "E-Prime" group.<br />
To post to this group, send email to e-prime@googlegroups.com.<br />
To unsubscribe from this group, send email to e-prime+unsubscribe@googlegroups.com.<br />
For more options, visit this group at http://groups.google.com/group/e-prime?hl=en.<br />