By-experiment randomization of text locations


Author
Message
AndrewJSchoen
AndrewJSchoen
Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)Partner Member (547 reputation)
Group: Forum Members
Posts: 2, Visits: 33
Hi all,

I have a task that I am creating, during which the participant selects a choice from a set of 6 text-buttons, arranged in two columns (2x3). Therefore, there are 6 possible locations for the buttons, and locations cannot be repeated. Right now, the locations are statically set, but I would like to set them at the beginning of the experiment, and then use those locations for the rest of the experiment. Here is a snippet of the text code:

<text happiness>
/ items = ("Happiness")
/ hjustify = center
/ vjustify = center
/ fontstyle = ("Arial",5%, false, false, false, false, 5, 1)
/ txcolor = white
/ txbgcolor = grey
/ position = (30%, 20%) #As you read ahead, this will have to be set from values.happiness_position, or something similar...
/ size = (20%, 10%)
/erase = false
</text>


In order to do it, I thought I may make some variables as such:

<values>
/ anger_position = (0%,0%)
/ happiness_position = (0%,0%)
/ sadness_position = (0%,0%)
/ fear_position = (0%,0%)
/ disgust_position = (0%,0%)
/ surprise_position = (0%,0%)
</values>


And then also have some locations:

<list button_position_1>
/ items = (30%, 20%)
</list>

<list button_position_2>
/ items = (30%, 50%)
</list>

<list button_position_3>
/ items = (30%, 80%)
</list>

<list button_position_4>
/ items = (70%, 20%)
</list>

<list button_position_5>
/ items = (70%, 50%)
</list>

<list button_position_6>
/ items = (70%, 80%)
</list>



 Finally, I thought a noreplace would be the solution to set the values, but I do not have the syntax correct:


/ onexptbegin = [values.anger_position, values.happness_position, values.sadness_position, values.fear_position, values.disgust_position, values.surprise_position = noreplace(list.button_position_1.items, list.button_position_2.items, list.button_position_3.items, list.button_position_4.items, list.button_position_5.items,list.button_position_6.items)]



Any suggestions or solutions would be greatly appreciated!
Thanks!

Andy

Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 12K, Visits: 98K
#1: You need separate <values> entries (variables) for each <text> element's x and y position.

<values>
/ anger_x = 0%
/ anger_y= 0%
/ happiness_x = 0%
/ happiness_y = 0%
...
</values>

#2: Reference those in your <text> elements like this:

<text happiness>
/ items = ("Happiness")
/ hjustify = center
/ vjustify = center
/ fontstyle = ("Arial",5%, false, false, false, false, 5, 1)
/ txcolor = white
/ txbgcolor = grey
/ hposition = values.happlness_x
/ vposition = values.happiness_y

/ size = (20%, 10%)
/erase = false
</text>

#3: You need two paired <list>s. One holding the x-positions, another one holding the corresponding y-positions:
<list button_x>
/ items = (30%, 30%, 30%, 70%, 70%, 70%)
/ selectionrate = always
</list>

<list button_y>
/ items = (20%, 50%, 80%, 20%, 50%, 80%)
/ selectionmode = list.button_x.currentindex
/ selectionrate = always
</list>

#4: Finally, you need to set the <values> to items sampled from those lists /onexptbegin:

/ onexptbegin = [values.anger_x = list.button_x.nextvalue; values.anger_y = list.button_y.nextvalue;
values.happiness_x = list.button_x.nextvalue; values.happiness_y = list.button_y.nextvalue; ...]
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search