Avoid repeating similar trials

gilis giladsabo at gmail.com
Sun May 9 10:45:11 UTC 2010


Hi,

I have tried to built an experiment in which the same trial don't
repeat twice.

That's what I did:

First the experiment stracture goes like that:

Instructions (text object)
BlockList procedure (list object)

within the blocklist procedure:

Inline dubbed "first"

in this inline I only dimmed x as integer

triallist procedure (list object)

within the trial list the order of the trial goes like this:

inline which I dubbed "conditioncheck" and goes like that (pay
attention please):

'defining first variable as integer to count the number of trials for
each parmutations (as will be seen next)
dim cr as integer
cr=0+cr

'if this is the first trial you run set number attribute value as "d"
if cr=0 then c.setattrib "number", "D"

'defining another variable to help counting the number of each
permutation
dim dummy as integer
dummy=1


'defining initial value for each permutation saparetly

dim o as integer
o=o+0
dim t as integer
t=t+0
dim th as integer
th=th+0

'defining variable for randomization purpses
dim x as integer

'updating the number of repitations was made
dim counter as integer
counter=0
cr=cr+dummy


'if the first permutation was already presented twice, don't run it
again-if it didn't, you may choose it randomly

if o<=2 then
select case c.getattrib("number")
case "d"
x=random(1,3)
select case x

'if you choosed the first/second or third permutation, update it to
the number attribute and set text and correct attributes for the text
object display and for the text object "correct" response option.

case 1 'first permutation
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1

o=0+1 'update the number of times this permutation was selected

case 2 'second permutation
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1 'update the number of times this permutation was selected

case 3 'third permutation
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1 'update the number of times this permutation was selected
end select '
case "one" 'if the number attribute value is different than "d"
randomize from the permutation were not chosen in the previous trial
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
t=t+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
th=th+1
end select
end select
counter=1
else
counter=0
end if
if t<=2 and counter=0 then
select case c.getattrib("number")
case "d"
x=random(1,3)
select case x
case 1
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "one"
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
th=th+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
end select
end select
counter=1 'update counter to 1
else ' if you didn't run any of it, counter remain 0
counter=0
end if



if th<=2 and counter=0 then
select case c.getattrib("number")
' if the number attribute value is "d" then you can randomize for each
of the three permutatuions
case "d"
x=random(1,3)
select case x
case 1
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "one"
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 2
o=o+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
end select
end select
end if


'case cr=1 and above, "d' is not relevant

if cr<>0 then

if o<=2 then
select case c.getattrib("number")
case "one"
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
t=t+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
th=th+1
end select
end select
counter=1
else
counter=0
end if



if t<=2 and counter=0 then
select case c.getattrib("number")
case "d"
x=random(1,3)
select case x
case 1
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "one"
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
th=th+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
end select
end select
counter=1
else
counter=0
end if

if th<=2 and counter=0 then
select case c.getattrib("number")
case "d"
x=random(1,3)
select case x
case 1
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "one"
x=random(2,3)
select case x
case 2
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "two"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 2
o=o+1
case 3
c.setattrib "text", "three"
c.setattrib "number", "three"
c.setattrib "correct", 3
th=th+1
end select
case "three"
x=random(2,3)
select case x
case 2
c.setattrib "text", "one"
c.setattrib "number", "one"
c.setattrib "correct", 1
o=o+1
case 3
c.setattrib "text", "two"
c.setattrib "number", "two"
c.setattrib "correct", 2
t=t+1
end select
end select
end if
end if


after this inline comes text object with stimulus reciving its input
from the text object

The problem is that the program can't identify any "text" attribute,
and if I define one at some higer level (e.g., c.setattrib "text",
"text" just before the Trialist) then it will only run "text"as
stimulus.  I truely assume that my mistake is a very stupid one and
I'm pretty green with EPrime programing, but if anyone can assist, or
even suggest a better solution, it would be great.

Regards
Gilis

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