Millisecond Forums

Feedback screen

https://forums.millisecond.com/Topic35405.aspx

By raven - 5/30/2023

Hi Dave,
I have a script running a block of 10 trials where each trial displays a stimulus on screen.
Participants need to press "Y" if they think the stimulus will be correct, or "N" if incorrect. After their input is entered, a feedback screen should be shown after each if the trials, which displays their score of correct guesses and overall accuracy.
However, even after using the /branch function, I can't seem to get the feedback screen to display as it just goes straight to the next trial after input.
Any ideas?
By Dave - 5/30/2023

raven - 5/30/2023
Hi Dave,
I have a script running a block of 10 trials where each trial displays a stimulus on screen.
Participants need to press "Y" if they think the stimulus will be correct, or "N" if incorrect. After their input is entered, a feedback screen should be shown after each if the trials, which displays their score of correct guesses and overall accuracy.
However, even after using the /branch function, I can't seem to get the feedback screen to display as it just goes straight to the next trial after input.
Any ideas?

Provide your code, then I can tell you where and what your mistakes are.
By raven - 5/30/2023

Hi Dave,

Here's the section of code that doesn't branch to the feedback screen:

<trial one>
/ clearscreen
/ stimulusframes = [1=stimulusa, stimulusb, stimulusc]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
    if (trial.one == "n") {
        trial.fb
    }
]
/ timeout = 3000
</trial>

And here's the code for the feedback screen:

<trial fb>
/ clearscreen
/ stimulusframes = [1=fbscreen]
/ timeout = 8000
</trial>

Thanks!
By Dave - 5/30/2023

raven - 5/31/2023
Hi Dave,

Here's the section of code that doesn't branch to the feedback screen:

<trial one>
/ clearscreen
/ stimulusframes = [1=stimulusa, stimulusb, stimulusc]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
    if (trial.one == "n") {
        trial.fb
    }
]
/ timeout = 3000
</trial>

And here's the code for the feedback screen:

<trial fb>
/ clearscreen
/ stimulusframes = [1=fbscreen]
/ timeout = 8000
</trial>

Thanks!

/ branch = [
  if (trial.one == "n") {
   trial.fb
  }
]

trial.one returns nothing, and especially not the response given.

What you want is the trial's responsetext property, i.e. trial.one.responsetext.

/ branch = [
  if (trial.one.responsetext == "n") {
   trial.fb
  }
]

https://www.millisecond.com/support/docs/current/html/language/properties/responsetext.htm
By raven - 5/30/2023

Thanks Dave, that works perfectly!

Do you have any ideas on how to go about displaying the score and accuracy on the feedback screen?

For example, something that says they got 8 out of 10 responses correct so far. But, the feedback screen needs to update after each trial.
By Dave - 5/30/2023

raven - 5/31/2023
Thanks Dave, that works perfectly!

Do you have any ideas on how to go about displaying the score and accuracy on the feedback screen?

For example, something that says they got 8 out of 10 responses correct so far. But, the feedback screen needs to update after each trial.

This has been covered countless times here; also see the "Programming with IQScript" chapter in the programmer's manual ( https://www.millisecond.com/support/Inquisit%20Programmer's%20Manual.pdf ).

In short:

<values>
/ n = 0
/ ncorrect = 0
</values>

<block example>
/ trials = [1-10 = trial.one]
</block>

<trial one>
/ ontrialend = [
    values.n += 1;
    values.ncorrect += trial.one.correct;
]
/ stimulusframes = [1=clearscreen, stimulusa, stimulusb, stimulusc]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
    if (trial.one.responsetext == "n") {
    trial.fb
    }
]
/ timeout = 3000
</trial>

<trial fb>
/ stimulusframes = [1=clearscreen, fbscreen]
/ timeout = 8000
</trial>

<text stimulusa>
/ items = ("A")
/ position = (40%, 50%)
</text>

<text stimulusb>
/ items = ("B")
/ position = (50%, 50%)
</text>

<text stimulusc>
/ items = ("C")
/ position = (60%, 50%)
</text>

<text fbscreen>
/ items = ("So far, you got <%values.ncorrect%> out of <%values.n%> trials correct.")
</text>


All the ingredients of the above, by the way, are things we have discussed before e.g. here: https://forums.millisecond.com/Topic35358.aspx
By raven - 5/30/2023

Thanks Dave!
By raven - 6/15/2023

Hi Dave,

Following on from the previous query, is there a better/more efficient way to display the difference between the last and current score on the feedback page?

For example, if I have the following code, it doesn't seem to give the correct difference value on the feedback screen for each consecutive trial. Perhaps because it doesn't reset the difference back to 0 properly after each trial, even though I've included  values.difference = 0.

<values>
/ n = 0
/ ncorrect = 0
/ difference = 0
</values>

<list lista>
/ items = (1, 1, -1) 
/ selectionmode = random                            
/ replace = false
</list>

<list listb>
/ items = (1, -1, -1)
/ selectionmode = random         
/ replace = false
</list>

<block start>
/ trials = [1-10 = noreplace(trial.one, trial.two)]
</block>

<trial one>
/ ontrialend = [
  values.n += 1;
  values.ncorrect += trial.one.correct;

  if (trial.one.correct) {
   values.multiplier = list.lista.nextvalue;
        values.score += values.multiplier * 500; // if response is correct, increase the score by 500
        values.difference = 0;
        values.difference += 500; // this should reflect the difference between the new and old score, either +500 or -500
  }
    else {
        values.multiplier = list.lista.nextvalue;
        values.score += values.multiplier * 250; // if response is incorrect, increase the score by only 250
        values.difference = 0;
        values.difference += 250;
    }
    ]
]
/ stimulusframes = [1=clearscreen, stimulusa, stimulusb, stimulusc]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
  if (trial.one.responsetext == "n") {
  trial.fb
  }
]
/ timeout = 3000
</trial>

<trial two>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.one.correct;

if (trial.two.correct) {
 values.multiplier = list.listb.nextvalue;
   values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
   values.difference = 0;
   values.difference -= 500; // this should reflect the difference between the new and old score, either +500 or -500
}
  else {
   values.multiplier = list.listb.nextvalue;
   values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
   values.difference = 0;
   values.difference -= 250;
  }
  ]
]
/ stimulusframes = [1=clearscreen, stimulusa, stimulusb, stimulusc]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.one.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>
<trial fb>
/ stimulusframes = [1=clearscreen, fbscreen]
/ timeout = 8000
</trial>

<text stimulusa>
/ items = ("A")
/ position = (40%, 50%)
</text>

<text stimulusb>
/ items = ("B")
/ position = (50%, 50%)
</text>

<text stimulusc>
/ items = ("C")
/ position = (60%, 50%)
</text>

<text fbscreen>
/ items = ("So far, you got <%values.ncorrect%> out of <%values.n%> trials correct.")
/ items = ("The difference between the last score and current score is <%values.difference%>.")
</text>
By raven - 6/15/2023

Also, I forgot to ask if there is a way to have it so that the score for some participants, goes up 3/4 or 1/4 times as per the respective lista or listb in stimulusa, stimulusb, or stimulusc, and for others it will be different. For example, it should be different for even numbered participants compared to odd numbered participants, to reduce the chance of participants telling each other which is which. I was looking into how to do that with the /expt element, but haven't had much luck in getting that to work so far. Any ideas?

Thanks in advance!
By Dave - 6/15/2023


First, the code you provided is incomplete and thus not useful. Provide complete, actually runnable code.
Second, yes, of course it's possible to implement different between-subjects conditions.

By raven - 6/15/2023

Hi Dave,

Try this:

<values>
/ n = 0
/ ncorrect = 0
/ difference = 0
/ multiplier = 0
/ score = 0
</values>

<list lista>
/ items = (1, 1, -1)
/ selectionmode = random         
/ replace = false
</list>

<list listb>
/ items = (1, -1, -1)
/ selectionmode = random   
/ replace = false
</list>

<list listc>
/ items = (1, -1)
/ selectionmode = random   
/ replace = false
</list>

<block start>
/ trials = [1-20 = noreplace(trial.one, trial.two)]
</block>

<trial one>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.one.correct;

if (trial.one.correct) {
 values.multiplier = list.lista.nextvalue;
   values.score += values.multiplier * 500; // if response is correct, increase the score by 500
   values.difference = 0;
   values.difference += 500; // this should reflect the difference between the new and old score, either +500 or -500
}
  else {
   values.multiplier = list.lista.nextvalue;
   values.score += values.multiplier * 250; // if response is incorrect, increase the score by only 250
   values.difference = 0;
   values.difference += 250;
  }
  ]

/ stimulusframes = [1=clearscreen, stimulusa, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("y")
/ branch = [
if (trial.one.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>

<trial two>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.two.correct;

if (trial.two.correct) {
values.multiplier = list.listb.nextvalue;
 values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
 values.difference = 0;
 values.difference -= 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
 values.multiplier = list.listb.nextvalue;
 values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
 values.difference = 0;
 values.difference -= 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.two.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>




<trial three>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.three.correct;

if (trial.three.correct) {
values.multiplier = list.listc.nextvalue;
 values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
 values.difference = 0;
 values.difference -= 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
 values.multiplier = list.listc.nextvalue;
 values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
 values.difference = 0;
 values.difference -= 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.three.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>


<trial fb>
/ stimulusframes = [1=clearscreen, fbscreen]
/ timeout = 8000
</trial>


<text stimulusa>
/ items = ("A")
/ position = (40%, 50%)
</text>

<text stimulusb>
/ items = ("B")
/ position = (50%, 50%)
</text>

<text stimulusc>
/ items = ("C")
/ position = (60%, 50%)
</text>

<text fbscreen>
/ items = ("So far, you got <%values.ncorrect%> out of <%values.n%> trials correct.")
/ items = ("The difference between the last score and current score is <%values.difference%>.")
</text>

<text score>
/ items = ("Score: <%values.score%>")
/ erase = false
/ position = (10%, 90%)
</text>
By Dave - 6/15/2023

raven - 6/15/2023
Hi Dave,

Try this:

<values>
/ n = 0
/ ncorrect = 0
/ difference = 0
/ multiplier = 0
/ score = 0
</values>

<list lista>
/ items = (1, 1, -1)
/ selectionmode = random         
/ replace = false
</list>

<list listb>
/ items = (1, -1, -1)
/ selectionmode = random   
/ replace = false
</list>

<list listc>
/ items = (1, -1)
/ selectionmode = random   
/ replace = false
</list>

<block start>
/ trials = [1-20 = noreplace(trial.one, trial.two)]
</block>

<trial one>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.one.correct;

if (trial.one.correct) {
 values.multiplier = list.lista.nextvalue;
   values.score += values.multiplier * 500; // if response is correct, increase the score by 500
   values.difference = 0;
   values.difference += 500; // this should reflect the difference between the new and old score, either +500 or -500
}
  else {
   values.multiplier = list.lista.nextvalue;
   values.score += values.multiplier * 250; // if response is incorrect, increase the score by only 250
   values.difference = 0;
   values.difference += 250;
  }
  ]

/ stimulusframes = [1=clearscreen, stimulusa, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("y")
/ branch = [
if (trial.one.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>

<trial two>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.two.correct;

if (trial.two.correct) {
values.multiplier = list.listb.nextvalue;
 values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
 values.difference = 0;
 values.difference -= 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
 values.multiplier = list.listb.nextvalue;
 values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
 values.difference = 0;
 values.difference -= 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.two.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>




<trial three>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.three.correct;

if (trial.three.correct) {
values.multiplier = list.listc.nextvalue;
 values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
 values.difference = 0;
 values.difference -= 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
 values.multiplier = list.listc.nextvalue;
 values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
 values.difference = 0;
 values.difference -= 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.three.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>


<trial fb>
/ stimulusframes = [1=clearscreen, fbscreen]
/ timeout = 8000
</trial>


<text stimulusa>
/ items = ("A")
/ position = (40%, 50%)
</text>

<text stimulusb>
/ items = ("B")
/ position = (50%, 50%)
</text>

<text stimulusc>
/ items = ("C")
/ position = (60%, 50%)
</text>

<text fbscreen>
/ items = ("So far, you got <%values.ncorrect%> out of <%values.n%> trials correct.")
/ items = ("The difference between the last score and current score is <%values.difference%>.")
</text>

<text score>
/ items = ("Score: <%values.score%>")
/ erase = false
/ position = (10%, 90%)
</text>

Well, the difference is sometimes wrong because your math is wrong.

Look, suppose score is zero, and you randomly draw multiplier -1 here:

<list lista>
/ items = (1, 1, -1)
/ selectionmode = random
/ replace = false
</list>

if (trial.one.correct) {
values.multiplier = list.lista.nextvalue;
values.score += values.multiplier * 500; // if response is correct, increase the score by 500

So, score goes from 0 to -500, i.e. 0 + (-1 * 500). But then you go on to simply add 500 to 0 to calculate the difference, i.e. you always get 500, no matter if you drew the positive (1) or negative (-1) multiplier.

values.difference = 0;
values.difference += 500; // this should reflect the difference between the new and old score, either +500 or -500
}


The exact same goes for all the other cases. You fail to account for the multiplier.

I'm honestly not sure what the point of this calculation is even supposed to be.


By raven - 6/15/2023


Ok, that makes sense, I see where the issue in the code/math is and have corrected that now.

As I'm new to Inquisit, I'm trying a few different scenarios to improve my skills, so thanks for all your help so far.

Regarding the other question, can you give me some guidance on how to go about different participants seeing different conditions for each trial?

Thanks again!
By Dave - 6/15/2023

raven - 6/15/2023

Ok, that makes sense, I see where the issue in the code/math is and have corrected that now.

As I'm new to Inquisit, I'm trying a few different scenarios to improve my skills, so thanks for all your help so far.

Regarding the other question, can you give me some guidance on how to go about different participants seeing different conditions for each trial?

Thanks again!

> Regarding the other question, can you give me some guidance on how to go about different participants seeing different conditions for each trial?

Spell out the exact multiplier values you want for each condition in the respective lists and then I can show you.
By raven - 6/15/2023

Ok, let's say trial.one has 1,1,-1 for the multipliers * 500; trial.two has -1,-1,1 * 500; and trial.three has 1,-1, 2, -2 * 500.
By Dave - 6/15/2023

raven - 6/15/2023
Ok, let's say trial.one has 1,1,-1 for the multipliers * 500; trial.two has -1,-1,1 * 500; and trial.three has 1,-1, 2, -2 * 500.

You were asking about between-subjects conditions, but what you are describing here is within-subjects conditions. So what is it supposed to be? Please be precise and specific.
By Dave - 6/15/2023

Dave - 6/15/2023
raven - 6/15/2023
Ok, let's say trial.one has 1,1,-1 for the multipliers * 500; trial.two has -1,-1,1 * 500; and trial.three has 1,-1, 2, -2 * 500.

You were asking about between-subjects conditions, but what you are describing here is within-subjects conditions. So what is it supposed to be? Please be precise and specific.

Assuming 2 between-subjects conditions, assigned based on subject number ("[...] to have it so that the score for some participants, goes up 3/4 or 1/4 times as per the respective lista or listb in stimulusa, stimulusb, or stimulusc, and for others it will be different. For example, it should be different for even numbered participants compared to odd numbered participants [...]"), here's the information I want from you:

Between subjects condition 1 (odd subject IDs)
List A multipliers: [list the multipliers here]
List B multipliers: [list the multipliers here]
List C multipliers: [list the multipliers here]

Between subjects condition 2 (even subject IDs)
List A multipliers: [list the multipliers here]
List B multipliers: [list the multipliers here]
List C multipliers: [list the multipliers here]
By raven - 6/17/2023

Between subjects condition 1 (odd subject IDs)
List A multipliers: [1,1,-1 * (500)]
List B multipliers: [1,-1,-1 * (500)]
List C multipliers: [1,-1 * (500)]

Between subjects condition 2 (even subject IDs)
List A multipliers: [1,-1,-1 * (500)]
List B multipliers: [1,-1 * (500)] 
List C multipliers: [1,1,-1 * (500)]
By Dave - 6/19/2023

raven - 6/17/2023
Between subjects condition 1 (odd subject IDs)
List A multipliers: [1,1,-1 * (500)]
List B multipliers: [1,-1,-1 * (500)]
List C multipliers: [1,-1 * (500)]

Between subjects condition 2 (even subject IDs)
List A multipliers: [1,-1,-1 * (500)]
List B multipliers: [1,-1 * (500)] 
List C multipliers: [1,1,-1 * (500)]

<expt condition1>
/ onexptbegin = [
// set the multipliers for list A in condition 1
// these are 1,1, and -1
    list.lista.appenditem(1);
    list.lista.appenditem(1);
    list.lista.appenditem(-1);
// set the multipliers for list B in condition 1
// these are 1,-1, and -1
    list.listb.appenditem(1);
    list.listb.appenditem(-1);
    list.listb.appenditem(-1);
// set the multipliers for list C in condition 1
// these are 1, and -1
    list.listc.appenditem(1);
    list.listc.appenditem(-1);
]
/ blocks = [1 = block.start]
/ subjects = (1 of 2)
</expt>

<expt condition2>
/ onexptbegin = [
// set the multipliers for list A in condition 2
// these are 1,-1, and -1
    list.lista.appenditem(1);
    list.lista.appenditem(-1);
    list.lista.appenditem(-1);
// set the multipliers for list B in condition 1
// these are 1, and -1
    list.listb.appenditem(1);
    list.listb.appenditem(-1);
// set the multipliers for list C in condition 1
// these are 1, 1, and -1
    list.listc.appenditem(1);
    list.listc.appenditem(1);
    list.listc.appenditem(-1);
]
/ blocks = [1 = block.start]
/ subjects = (2 of 2)
</expt>

<values>
/ n = 0
/ ncorrect = 0
/ difference = 0
/ multiplier = 0
/ score = 0
</values>

<list lista>
// multiplier items are determined /onexptbegin, depending on the condtion assigned
/ selectionmode = random
/ replace = false
</list>

<list listb>
// multiplier items are determined /onexptbegin, depending on the condtion assigned
/ selectionmode = random
/ replace = false
</list>

<list listc>
// multiplier items are determined /onexptbegin, depending on the condtion assigned
/ selectionmode = random
/ replace = false
</list>

<block start>
/ trials = [1-24 = (trial.one, trial.two, trial.three)]
</block>

<trial one>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.one.correct;

if (trial.one.correct) {
values.multiplier = list.lista.nextvalue;
values.score += values.multiplier * 500; // if response is correct, increase the score by 500
values.difference = 0;
values.difference = values.multiplier * 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
values.multiplier = list.lista.nextvalue;
values.score += values.multiplier * 250; // if response is incorrect, increase the score by only 250
values.difference = 0;
values.difference = values.multiplier * 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusa, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("y")
/ branch = [
if (trial.one.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>

<trial two>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.two.correct;

if (trial.two.correct) {
values.multiplier = list.listb.nextvalue;
values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
values.difference = 0;
values.difference = values.multiplier * 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
values.multiplier = list.listb.nextvalue;
values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
values.difference = 0;
values.difference values.multiplier * 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.two.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>


<trial three>
/ ontrialend = [
values.n += 1;
values.ncorrect += trial.three.correct;

if (trial.three.correct) {
values.multiplier = list.listc.nextvalue;
values.score -= values.multiplier * 500; // if response is correct, decrease the score by 500 3/4 times or increase by 500 1/4 as per listb
values.difference = 0;
values.difference = values.multiplier * 500; // this should reflect the difference between the new and old score, either +500 or -500
}
else {
values.multiplier = list.listc.nextvalue;
values.score -= values.multiplier * 250; // if response is incorrect, decrease the score by only 250
values.difference = 0;
values.difference = values.multiplier * 250;
}
]

/ stimulusframes = [1=clearscreen, stimulusb, score]
/ inputdevice = keyboard
/ validresponse = ("y", "n")
/ correctresponse = ("n")
/ branch = [
if (trial.three.responsetext == "n") {
trial.fb
}
]
/ timeout = 3000
</trial>


<trial fb>
/ stimulusframes = [1=clearscreen, fbscreen]
/ timeout = 8000
</trial>


<text stimulusa>
/ items = ("A")
/ position = (40%, 50%)
</text>

<text stimulusb>
/ items = ("B")
/ position = (50%, 50%)
</text>

<text stimulusc>
/ items = ("C")
/ position = (60%, 50%)
</text>

<text fbscreen>
// items = ("So far, you got <%values.ncorrect%> out of <%values.n%> trials correct.")
/ items = ("The difference between the last score and current score is <%values.difference%>.")
</text>

<text score>
/ items = ("Score: <%values.score%>")
/ erase = false
/ position = (10%, 90%)
</text>

<data>
/ columns = (date time subject group blocknum blockcode trialnum trialcode response responsetext latency correct
    values.n values.ncorrect values.multiplier values.score values.difference)
</data>
By raven - 6/19/2023

Thanks Dave, this gives me some great insight into how to get Inquisit working for between-subjects designs.

I've also found the following page in the language reference which explains subject allocation further: https://www.millisecond.com/support/docs/current/html/language/attributes/subjects.htm

Much appreciated! :)
By Dave - 6/19/2023

raven - 6/19/2023
Thanks Dave, this gives me some great insight into how to get Inquisit working for between-subjects designs.

I've also found the following page in the language reference which explains subject allocation further: https://www.millisecond.com/support/docs/current/html/language/attributes/subjects.htm

Much appreciated! :)

Also see https://forums.millisecond.com/Topic13856.aspx , https://www.millisecond.com/support/docs/current/html/language/attributes/groupassignment.htm , and https://www.millisecond.com/support/docs/current/html/language/attributes/groups.htm , as well as the "Between-Group Manipulations" section at page 86 in the Programmer's Manual ( https://www.millisecond.com/support/Inquisit%20Programmer's%20Manual.pdf ).