﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Millisecond Forums » Millisecond Forums » Inquisit 5  » custom correct response &amp; image position with counter</title><generator>InstantForum 2017-1 Final</generator><description>Millisecond Forums</description><link>https://forums.millisecond.com/</link><webMaster>Millisecond Forums</webMaster><lastBuildDate>Wed, 16 Sep 2026 13:41:28 GMT</lastBuildDate><ttl>20</ttl><item><title>custom correct response &amp; image position with counter</title><link>https://forums.millisecond.com/Topic22547.aspx</link><description>Hi,&lt;br/&gt;&lt;br/&gt;I have an experiment where participants have to choose which of three images they have seen before. Each image has a number underneath (1,2 and 3 - always in the same locations) they enter the number on the keyboard that corresponds to the number underneath the correct image - but the location of the images is random.&lt;br/&gt;&lt;br/&gt;I've done this by setting the image positions with a counter - see below&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D&amp;gt;&lt;br/&gt;/ items = ("D.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D2&amp;gt;&lt;br/&gt;/ items = ("D2.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture Dcorrect&amp;gt;&lt;br/&gt;/ items = ("Dcorrect.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;counter poscounter&amp;gt;&lt;br/&gt;/ items = (25, 50, 75)&lt;br/&gt;/ select = noreplace&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/counter&amp;gt;&lt;br/&gt;&lt;br/&gt;So this means the correct response will vary on every trial depending on which location picture.Dcorrect is allocated to. I have tried to record the correct response based on location in an expression update in the trial. But I can't get this to work, the data records expressions.correctpos as 1 every time and always thinks the correct response is pressed even when it's not. The trial is below...&lt;br/&gt;&lt;br/&gt;&amp;lt;trial doughnut&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;values.category= "food"&lt;br/&gt;]&lt;br/&gt;/ ontrialbegin = [if (picture.Dcorrect.hposition= 25) expressions.correctpos = "1"&lt;br/&gt;else if(picture.Dcorrect.hposition= 50) expressions.correctpos = "2"&lt;br/&gt;else if(picture.Dcorrect.hposition= 75) expressions.correctpos = "3"]&lt;br/&gt;/ stimulusframes = [1=D, D2, Dcorrect, no1, no2, no3]&lt;br/&gt;/ validresponse = ("1", "2", "3")&lt;br/&gt;/ iscorrectresponse = [expressions.correctpos]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;if (trial.doughnut.correct) {&lt;br/&gt;values.foodcorrect +=1&lt;br/&gt;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;- In addition two of the images seem to overlap sometimes - but not consistently?&lt;br/&gt;&lt;br/&gt;Any help would be appreciated. I have attached a shortened version of the script too.&lt;br/&gt;&lt;br/&gt;Thank you</description><pubDate>Fri, 22 Sep 2017 10:32:31 GMT</pubDate><dc:creator>jm560@sussex.ac.uk</dc:creator></item><item><title>RE: custom correct response &amp; image position with counter</title><link>https://forums.millisecond.com/Topic22548.aspx</link><description>&lt;div data-id="22547" class="if-quote-wrapper" unselectable="on" data-guid="1506100163287"&gt;&lt;a class="quote-para" unselectable="on" style="display: none;" href="#" data-id="22547" title="Move Cursor Below" contenteditable="false"&gt;&lt;span unselectable="on"&gt;+&lt;/span&gt;&lt;/a&gt;&lt;a class="quote-delete" unselectable="on" style="display: none;" href="#" data-id="22547" title="Delete Quote" contenteditable="false"&gt;&lt;span unselectable="on"&gt;x&lt;/span&gt;&lt;/a&gt;&lt;span unselectable="on" class="quote-markup"&gt;[quote]&lt;/span&gt;&lt;div unselectable="on" class="if-quote-header" contenteditable="false"&gt;&lt;div unselectable="on" class="if-quote-toggle-wrapper"&gt;&lt;a class="if-quote-toggle quote-link" href="#" data-id="22547" title=" "&gt;&lt;/a&gt;&lt;/div&gt;&lt;span unselectable="on" class="quote-markup"&gt;[b]&lt;/span&gt;&lt;a href="mailto:jm560@sussex.ac.uk"&gt;jm560@sussex.ac.uk&lt;/a&gt; - Friday, September 22, 2017&lt;span unselectable="on" class="quote-markup"&gt;[/b]&lt;/span&gt;&lt;/div&gt;&lt;div class="if-quote-message if-quote-message-22547"&gt;&lt;div class="if-quote-message-margin"&gt;Hi,&lt;br/&gt;&lt;br/&gt;I have an experiment where participants have to choose which of three images they have seen before. Each image has a number underneath (1,2 and 3 - always in the same locations) they enter the number on the keyboard that corresponds to the number underneath the correct image - but the location of the images is random.&lt;br/&gt;&lt;br/&gt;I've done this by setting the image positions with a counter - see below&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D&amp;gt;&lt;br/&gt;/ items = ("D.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D2&amp;gt;&lt;br/&gt;/ items = ("D2.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture Dcorrect&amp;gt;&lt;br/&gt;/ items = ("Dcorrect.png")&lt;br/&gt;/ hposition = counter.poscounter.selectedvalue&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;counter poscounter&amp;gt;&lt;br/&gt;/ items = (25, 50, 75)&lt;br/&gt;/ select = noreplace&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/counter&amp;gt;&lt;br/&gt;&lt;br/&gt;So this means the correct response will vary on every trial depending on which location picture.Dcorrect is allocated to. I have tried to record the correct response based on location in an expression update in the trial. But I can't get this to work, the data records expressions.correctpos as 1 every time and always thinks the correct response is pressed even when it's not. The trial is below...&lt;br/&gt;&lt;br/&gt;&amp;lt;trial doughnut&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;values.category= "food"&lt;br/&gt;]&lt;br/&gt;/ ontrialbegin = [if (picture.Dcorrect.hposition= 25) expressions.correctpos = "1"&lt;br/&gt;else if(picture.Dcorrect.hposition= 50) expressions.correctpos = "2"&lt;br/&gt;else if(picture.Dcorrect.hposition= 75) expressions.correctpos = "3"]&lt;br/&gt;/ stimulusframes = [1=D, D2, Dcorrect, no1, no2, no3]&lt;br/&gt;/ validresponse = ("1", "2", "3")&lt;br/&gt;/ iscorrectresponse = [expressions.correctpos]&lt;br/&gt;/ ontrialend = [&lt;br/&gt;if (trial.doughnut.correct) {&lt;br/&gt;values.foodcorrect +=1&lt;br/&gt;}&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;- In addition two of the images seem to overlap sometimes - but not consistently?&lt;br/&gt;&lt;br/&gt;Any help would be appreciated. I have attached a shortened version of the script too.&lt;br/&gt;&lt;br/&gt;Thank you&lt;a class="if-quote-goto quote-link" href="#" data-id="22547"&gt;&lt;span class="goto"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="quote-markup"&gt;[/quote]&lt;/span&gt;&lt;/div&gt;&lt;br/&gt;There are syntax mistakes in your expression, your /iscorrectresponse attribute as well as in the way you use the position counter (because it is set to /selectionrate always, it will return a new position every time you query the picture element's hposition attribute; you should only perform a selection once /ontrialbegin and store the positions in &amp;lt;values&amp;gt;). Finally, the response property returns a key's numerical scancode, not the symbol (letter, digit) printed on the respective key. In sum, adjusting your code like so&lt;br/&gt;&lt;br/&gt;&amp;lt;values&amp;gt;&lt;br/&gt;/category = 0&lt;br/&gt;/foodcorrect = 0&lt;br/&gt;&lt;strong&gt;/ d1_h = 0%&lt;br/&gt;/ d2_h = 0%&lt;br/&gt;/ correct_h = 0%&lt;br/&gt;/correctpos = ""&lt;/strong&gt;&lt;br/&gt;&amp;lt;/values&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;**************************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RESPONSES&lt;br/&gt;**************************************************************&lt;br/&gt;&lt;br/&gt;&amp;lt;text no1&amp;gt;&lt;br/&gt;/ items = ("1")&lt;br/&gt;/ position = (25, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text no2&amp;gt;&lt;br/&gt;/ items = ("2")&lt;br/&gt;/ position = (50, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text no3&amp;gt;&lt;br/&gt;/ items = ("3")&lt;br/&gt;/ position = (75, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D&amp;gt;&lt;br/&gt;/ items = ("D.png")&lt;br/&gt;&lt;strong&gt;/ hposition = values.d1_h&lt;/strong&gt;&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture D2&amp;gt;&lt;br/&gt;/ items = ("D2.png")&lt;br/&gt;&lt;strong&gt;/ hposition = values.d2_h&lt;/strong&gt;&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;picture Dcorrect&amp;gt;&lt;br/&gt;/ items = ("Dcorrect.png")&lt;br/&gt;&lt;strong&gt;/ hposition = values.correct_h&lt;/strong&gt;&lt;br/&gt;/ vposition = 50&lt;br/&gt;&amp;lt;/picture&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;counter poscounter&amp;gt;&lt;br/&gt;/ items = (25%, 50%, 75%)&lt;br/&gt;/ select = noreplace&lt;br/&gt;/ selectionrate = always&lt;br/&gt;&amp;lt;/counter&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;//numerical scancodes for the digit keys "1", "2", and "3"&lt;br/&gt;// are 2, 3, and 4 respectively:&lt;/strong&gt;&lt;br/&gt;&amp;lt;trial doughnut&amp;gt;&lt;br/&gt;/ ontrialbegin = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.category= "food";&lt;br/&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.d1_h = counter.poscounter.selectedvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.d2_h = counter.poscounter.selectedvalue;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values.correct_h = counter.poscounter.selectedvalue;&lt;/strong&gt;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;br/&gt;&lt;strong&gt;/ ontrialbegin = [if (picture.Dcorrect.hposition==25%) values.correctpos = 2&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(picture.Dcorrect.hposition==50%) values.correctpos = 3&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if(picture.Dcorrect.hposition==75%) values.correctpos = 4;&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/strong&gt;&lt;br/&gt;/ stimulusframes = [1=D, D2, Dcorrect, no1, no2, no3]&lt;br/&gt;&lt;strong&gt;/ validresponse = (2, 3, 4)&lt;/strong&gt;&lt;br/&gt;&lt;strong&gt;/ iscorrectresponse = [trial.doughnut.response == values.correctpos]&lt;/strong&gt;&lt;br/&gt;/ ontrialend = [&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (trial.doughnut.correct) {&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; values.foodcorrect +=1&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br/&gt;]&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;*******&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;****************************************************&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXAMPLE TRIAL&lt;br/&gt;****************************************************&lt;br/&gt;&lt;br/&gt;&amp;lt;shape examplecorrect&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = green&lt;br/&gt;/ position = (25, 50)&lt;br/&gt;/ size = (50, 50)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text examplenum1&amp;gt;&lt;br/&gt;/ items = ("1")&lt;br/&gt;/ position = (25, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape example2&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = yellow&lt;br/&gt;/ position = (50, 50)&lt;br/&gt;/ size = (50, 50)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text examplenum2&amp;gt;&lt;br/&gt;/ items = ("2")&lt;br/&gt;/ position = (50, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;shape example&amp;gt;&lt;br/&gt;/ shape = circle&lt;br/&gt;/ color = red&lt;br/&gt;/ position = (75, 50)&lt;br/&gt;/ size = (50, 50)&lt;br/&gt;&amp;lt;/shape&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text examplenum3&amp;gt;&lt;br/&gt;/ items = ("3")&lt;br/&gt;/ position = (75, 62)&lt;br/&gt;/ color = black&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;text exampleinstruct&amp;gt;&lt;br/&gt;/items= ("This is an example, none of these shapes appeared during the experiment&lt;br/&gt;&lt;br/&gt;If you recognised the green circle from the experiment,&lt;br/&gt;you would press 1 on your keyboard&lt;br/&gt;&lt;br/&gt;Press 1 on your keyboard to move on to the actual trials &lt;br/&gt;you will now be shown images you have seen previously") &lt;br/&gt;/ position = (50%, 20%)&lt;br/&gt;&amp;lt;/text&amp;gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;trial examplemem&amp;gt;&lt;br/&gt;/ stimulusframes = [1=example, example2, examplecorrect, examplenum1, examplenum2, examplenum3, exampleinstruct]&lt;br/&gt;/ validresponse = ("1", "2", "3")&lt;br/&gt;/ correctresponse = ("1")&lt;br/&gt;&amp;lt;/trial&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page instructions&amp;gt;&lt;br/&gt;^^ You will now be asked to recognise the distractor images presented in the task.&lt;br/&gt;&lt;br/&gt;^^ You will be shown three similar images, one of which was presented during the task.&lt;br/&gt;^^Press the key corresponding to the image you think you saw during the task.&lt;br/&gt;&lt;br/&gt;^^Press space to see an example trial.&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;page end&amp;gt;&amp;nbsp; &lt;br/&gt;^^You have finished the computer task.&lt;br/&gt;&lt;br/&gt;^^Thank you!&lt;br/&gt;&amp;lt;/page&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;instruct&amp;gt;&lt;br/&gt;/ nextkey = (" ")&lt;br/&gt;/ prevkey = ("6")&lt;br/&gt;/ screencolor = darkgrey&lt;br/&gt;/ txcolor = black&lt;br/&gt;&amp;lt;/instruct&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;defaults &amp;gt;&lt;br/&gt;/ screencolor = darkgrey&lt;br/&gt;/ txbgcolor = darkgrey&lt;br/&gt;/canvasaspectratio = (4,3)&lt;br/&gt;/ canvassize = (98%, 98%)&lt;br/&gt;&amp;lt;/defaults&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;list trials&amp;gt;&lt;br/&gt;/ items = (trial.doughnut)&lt;br/&gt;/ selectionmode = random&lt;br/&gt;&amp;lt;/list&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;block memory&amp;gt;&lt;br/&gt;/ trials = [1 = examplemem; 2 = list.trials]&lt;br/&gt;/ preinstructions = (instructions)&lt;br/&gt;/ postinstructions = (end)&lt;br/&gt;&amp;lt;/block&amp;gt;&lt;br/&gt;&lt;br/&gt;&amp;lt;data&amp;gt;&lt;br/&gt;/ columns = (date, time, group, subject, trialcode, blockcode, correct, stimulus, values.category, values.foodcorrect, values.correctpos, response)&lt;br/&gt;/ separatefiles = true&lt;br/&gt;&amp;lt;/data&amp;gt;&lt;br/&gt;&lt;br/&gt;should do the trick.&lt;br/&gt;</description><pubDate>Fri, 22 Sep 2017 10:32:31 GMT</pubDate><dc:creator>Dave</dc:creator></item></channel></rss>