+xHi there,
I am trying to design a task where participants will view different sets of images and messages and create combinations of them. I have been searching around the messages boards and I have come across different threads that are close or have elements of what I am looking for, but I have yet to be able to figure out exactly how to create this task. I am not an Inquisit expert, so I wonder if someone can just help me get started.
The task should proceed as follows:1a. On screen, four randomly selected images appear in a square-like grid. Each image (.jpg files) belongs to one of four categories ("RM", "RL", "UM", "UL") that include 10 images each. For any given trial, one randomly selected image should appear on screen from each of the four categories.
1b. Participants will select one image (ideally this mouse input could be recorded as their response).
2a. On the next screen, two randomly selected messages appear next to each other (.png files). Each message belongs to one of two categories ("MAX", "MIN") that include 10 messages each. For any given trial, one randomly selected message should appear on screen from each of the two categories.
2b. Participants will select one message (ideally the mouse input would be recorded as their response).
3. On a third screen, participants' selection of the image (e.g., "RM01") and message (e.g., "MAX15") will both appear on screen simultaneously, essentially to show participants the combination that they created.
The subsequent block would look identical, with four new (noreplace) images and two new (noreplace) messages followed by showing participants their selected combination, and this would go on until participants had worked through all of the image and message stimuli.
I am having trouble putting all of this together such that the images and messages are pulled from the different categories and displayed in different places each time (I think I need multiple picture elements to set this up), and I am not sure whether it is possible to use participants' mouse-click selections to record their data (I need to know the image number and message number they select).
I know this is a lot to ask, but if anyone could point me in the direction of threads that sound similar or provide any initial information to get this script started, it would be greatly appreciated.
Thank you in advance!
Ashley
You need four <picture> elements -- RM, RL, UM, UL -- with 10 items each. They can be assigned random posititions /ontrialbegin. The same is true for the two "random messages" -- here you need two picture elements, again their positions (left, right) can easily be randomized /ontrialbegin. In a nutshell, using <text> elements (it works the same with <picture>):
<values>
/ RL_x = 0%
/ RL_y = 0%
/ RM_x = 0%
/ RM_y = 0%
/ UL_x = 0%
/ UL_y = 0%
/ UM_x = 0%
/ UM_y = 0%
/ selectedcategory = ""
/ selectedcategoryitem = 0
/ MAX_x = 0%
/ MIN_x = 0%
/ selectedmessage = ""
/ selectedmessageitem = 0
</values>
// grid positions for part 1
<list grid_x>
/ items = (30%,70%,30%,70%)
/ selectionrate = always
</list>
<list grid_y>
/ items = (25%,25%,75%,75%)
/ selectionrate = always
/ selectionmode = list.grid_x.currentindex
</list>
// left / right positions for part 2
<list left_right>
/ items = (25%, 75%)
/ selectionrate = always
</list>
<block example>
/ trials = [1-10 = sequence(a,b,c)]
</block>
<trial a>
/ ontrialbegin = [
values.RL_x = list.grid_x.nextvalue;
values.RL_y = list.grid_y.nextvalue;
values.RM_x = list.grid_x.nextvalue;
values.RM_y = list.grid_y.nextvalue;
values.UL_x = list.grid_x.nextvalue;
values.UL_y = list.grid_y.nextvalue;
values.UM_x = list.grid_x.nextvalue;
values.UM_y = list.grid_y.nextvalue;
]
/ stimulusframes = [1=RL,RM,UL,UM]
/ inputdevice = mouse
/ validresponse = (RL,RM,UL,UM)
/ ontrialend = [
values.selectedcategory = trial.a.response;
if (values.selectedcategory == "RL"){
values.selectedcategoryitem = text.RL.currentitemnumber;
} else if (values.selectedcategory == "RM"){
values.selectedcategoryitem = text.RM.currentitemnumber;
} else if (values.selectedcategory == "UL"){
values.selectedcategoryitem = text.UL.currentitemnumber;
} else if (values.selectedcategory == "UM"){
values.selectedcategoryitem = text.UM.currentitemnumber;
};
]
</trial>
<trial b>
/ ontrialbegin = [
values.MAX_x = list.left_right.nextvalue;
values.MIN_x = list.left_right.nextvalue;
]
/ stimulusframes = [1=MAX,MIN]
/ inputdevice = mouse
/ validresponse = (MAX,MIN)
/ ontrialend = [
values.selectedmessage = trial.b.response;
if (values.selectedmessage == "MAX"){
values.selectedmessageitem = text.MAX.currentitemnumber;
} else if (values.selectedmessage == "MIN"){
values.selectedmessageitem = text.MIN.currentitemnumber;
};
]
</trial>
<trial c>
/ ontrialbegin = [
if (values.selectedcategory == "RL"){
text.category.item.1 = item.RL_items.item(values.selectedcategoryitem);
} else if (values.selectedcategory == "RM"){
text.category.item.1 = item.RM_items.item(values.selectedcategoryitem);
} else if (values.selectedcategory == "UL"){
text.category.item.1 = item.UL_items.item(values.selectedcategoryitem);
} else if (values.selectedcategory == "UM"){
text.category.item.1 = item.UM_items.item(values.selectedcategoryitem);
};
if (values.selectedmessage == "MAX") {
text.message.item.1 = item.MAX_items.item(values.selectedmessageitem);
} else if (values.selectedmessage == "MIN") {
text.message.item.1 = item.MIN_items.item(values.selectedmessageitem);
};
]
/ stimulusframes = [1=category, message]
/ inputdevice = mouse
/ validresponse = (lbuttondown)
</trial>
<text category>
/ items = ("BLANK")
/ position = (50%, 30%)
</text>
<text message>
/ items = ("BLANK")
/ position = (50%, 70%)
</text>
<text RL>
/ items = RL_items
/ hposition = values.RL_x
/ vposition = values.RL_y
</text>
<text RM>
/ items = RM_items
/ hposition = values.RM_x
/ vposition = values.RM_y
</text>
<text UL>
/ items = UL_items
/ hposition = values.UL_x
/ vposition = values.UL_y
</text>
<text UM>
/ items = UM_items
/ hposition = values.UM_x
/ vposition = values.UM_y
</text>
<item RL_items>
/ 1 = "RL_01"
/ 2 = "RL_02"
/ 3 = "RL_03"
/ 4 = "RL_04"
/ 5 = "RL_05"
/ 6 = "RL_06"
/ 7 = "RL_07"
/ 8 = "RL_08"
/ 9 = "RL_09"
/ 10 = "RL_10"
</item>
<item RM_items>
/ 1 = "RM_01"
/ 2 = "RM_02"
/ 3 = "RM_03"
/ 4 = "RM_04"
/ 5 = "RM_05"
/ 6 = "RM_06"
/ 7 = "RM_07"
/ 8 = "RM_08"
/ 9 = "RM_09"
/ 10 = "RM_10"
</item>
<item UL_items>
/ 1 = "UL_01"
/ 2 = "UL_02"
/ 3 = "UL_03"
/ 4 = "UL_04"
/ 5 = "UL_05"
/ 6 = "UL_06"
/ 7 = "UL_07"
/ 8 = "UL_08"
/ 9 = "UL_09"
/ 10 = "UL_10"
</item>
<item UM_items>
/ 1 = "UM_01"
/ 2 = "UM_02"
/ 3 = "UM_03"
/ 4 = "UM_04"
/ 5 = "UM_05"
/ 6 = "UM_06"
/ 7 = "UM_07"
/ 8 = "UM_08"
/ 9 = "UM_09"
/ 10 = "UM_10"
</item>
<text MAX>
/ items = MAX_items
/ hposition = values.MAX_x
/ vposition = 50%
</text>
<text MIN>
/ items = MIN_items
/ hposition = values.MIN_x
/ vposition = 50%
</text>
<item MAX_items>
/ 1 = "MAX_01"
/ 2 = "MAX_02"
/ 3 = "MAX_03"
/ 4 = "MAX_04"
/ 5 = "MAX_05"
/ 6 = "MAX_06"
/ 7 = "MAX_07"
/ 8 = "MAX_08"
/ 9 = "MAX_09"
/ 10 = "MAX_10"
</item>
<item MIN_items>
/ 1 = "MIN_01"
/ 2 = "MIN_02"
/ 3 = "MIN_03"
/ 4 = "MIN_04"
/ 5 = "MIN_05"
/ 6 = "MIN_06"
/ 7 = "MIN_07"
/ 8 = "MIN_08"
/ 9 = "MIN_09"
/ 10 = "MIN_10"
</item>