Nested while loops for populating lists


Author
Message
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: 13K, Visits: 104K
kev_dent - 11/30/2023
Thanks Dave.
I see where I was going wrong now.
The loops were only executing once since I didn't reinitialise to zero.
I scaled up the example and it works well.
I forgot to reset to zero since I am used to using for loops, is there any implementation of for loops in inquisit?

No, Inquisit 6 only has while loops.
kev_dent
kev_dent
Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)
Group: Forum Members
Posts: 47, Visits: 153
Thanks Dave.
I see where I was going wrong now.
The loops were only executing once since I didn't reinitialise to zero.
I scaled up the example and it works well.
I forgot to reset to zero since I am used to using for loops, is there any implementation of for loops in inquisit?
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: 13K, Visits: 104K

You need to set c2 back to 0 before you enter the 2nd while loop. (Or after exiting it, doesn't matter in this case. Use whatever is clearer to you.)


Before entering:

// aim of the script to generate 16 trials that show the following sequences of numbers
// 1 1
// 1 2
// 2 1
// 2 2

// attempting to do this by programmatically populating lists


// stmulus 1
<text thetext>
/items=("1","2")
/select =list.anumber.nextvalue
/ position = (45%, 50%)
</text>
// stimulus 2
<text thetext2>
/items=("1","2")
/select =list.anumber2.nextvalue
/ position = (55%, 50%)
</text>
//list to populate desired end state (1,1,2,2)
<list anumber>
/items=()
/selectionrate = always
/select = sequence
</list>
//list to populate desired end state (1,2,1,2)
<list anumber2>
/items=()
/selectionrate = always
/select = sequence
</list>

//loop through 2 states of c
//calculate the target variable for writing to the list w
// update the control variable to terminate the loop when required c
//loop through 2 states of c2 (at each level of the prior loop c)
//calculate the target variable for writing to the list w2
// update the control variable to terminate the loop when required c2
// write the values when the final value is calculated w and w2

<expt e>
/ onexptbegin = [
    var c =0;
    var w =0;
    var c2 =0;
    var w2 =0;
    
    while (c<2) {
        w = c+1;
        c +=1;
        c2 = 0;
        while (c2<2) {
            w2 = c2+1;
            c2 +=1;
            list.anumber.appenditem(w);
            list.anumber2.appenditem(w2);
        }
    };
]
/ blocks = [1=b]
</expt>

<block b>
/trials=[1-4 =t]
</block>

<trial t>
/ posttrialpause = 100
/ pretrialpause = 100
/stimulustimes = [0=thetext, thetext2]
/ inputdevice = keyboard
/ validresponse = (" ")
</trial>


After exiting:

// aim of the script to generate 16 trials that show the following sequences of numbers
// 1 1
// 1 2
// 2 1
// 2 2

// attempting to do this by programmatically populating lists


// stmulus 1
<text thetext>
/items=("1","2")
/select =list.anumber.nextvalue
/ position = (45%, 50%)
</text>
// stimulus 2
<text thetext2>
/items=("1","2")
/select =list.anumber2.nextvalue
/ position = (55%, 50%)
</text>
//list to populate desired end state (1,1,2,2)
<list anumber>
/items=()
/selectionrate = always
/select = sequence
</list>
//list to populate desired end state (1,2,1,2)
<list anumber2>
/items=()
/selectionrate = always
/select = sequence
</list>

//loop through 2 states of c
//calculate the target variable for writing to the list w
// update the control variable to terminate the loop when required c
//loop through 2 states of c2 (at each level of the prior loop c)
//calculate the target variable for writing to the list w2
// update the control variable to terminate the loop when required c2
// write the values when the final value is calculated w and w2

<expt e>
/ onexptbegin = [
    var c =0;
    var w =0;
    var c2 =0;
    var w2 =0;
    
    while (c<2) {
        w = c+1;
        c +=1;
        //c2 = 0;
        while (c2<2) {
            w2 = c2+1;
            c2 +=1;
            list.anumber.appenditem(w);
            list.anumber2.appenditem(w2);
        }
        c2 = 0;
    };
]
/ blocks = [1=b]
</expt>

<block b>
/trials=[1-4 =t]
</block>

<trial t>
/ posttrialpause = 100
/ pretrialpause = 100
/stimulustimes = [0=thetext, thetext2]
/ inputdevice = keyboard
/ validresponse = (" ")
</trial>


Edited Last Year by Dave
kev_dent
kev_dent
Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)
Group: Forum Members
Posts: 47, Visits: 153
Dear Dave,
Here is a simple script to illustrate the problem I wish to solve.
In this example I wish to generate the text 1 1, 1 2, 2 1, and 2 2 over 4 trials in a row, with 2 numbers per trial.
I would like to do this by populating the lists in the script programatically rather than hard coding them.
I'm not a programmer and can't seem to get it working.
Can you help by showing me how to get the code below to work, then I can scale up to a bigger set of loops?
Thanks 
Kevin

// aim of the script to generate 16 trials that show the following sequences of numbers
// 1 1
// 1 2
// 2 1
// 2 2

// attempting to do this by programmatically populating lists


// stmulus 1
<text thetext>
/items=("1","2")
/select =list.anumber.nextvalue

</text>
// stimulus 2
<text thetext2>
/items=("1","2")
/select =list.anumber2.nextvalue

</text>
//list to populate desired end state (1,1,2,2)
<list anumber>
/items=()
/selectionrate = always
/select = sequence
</list>
//list to populate desired end state (1,2,1,2)
<list anumber2>
/items=()
/selectionrate = always
/select = sequence
</list>

//loop through 2 states of c
//calculate the target variable for writing to the list w
// update the control variable to terminate the loop when required c    
//loop through 2 states of c2 (at each level of the prior loop c)
//calculate the target variable for writing to the list w2
// update the control variable to terminate the loop when required c2
// write the values when the final value is calculated w and w2

<expt e>
/ onexptbegin = [
var c =0;
var w =0;
var c2 =0;
var w2 =0;

while (c<2) {
    w = c+1;
    c +=1;
    
    while (c2<2) {
        w2 = c2+1;
        c2 +=1;
        
        list.anumber.appenditem(w);
        list.anumber2.appenditem(w2);
    }
    
            };
]



/ blocks = [1=b]

</expt>

<block b>
/trials=[1-4 =t]
</block>

<trial t>
/ posttrialpause = 100
/ pretrialpause = 100
/stimulustimes = [0=thetext; 200=thetext2]
/ inputdevice = keyboard
/ validresponse = (" ")
</trial>
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: 13K, Visits: 104K
kev_dent - 11/30/2023
Thanks Dave, I will see if I can correct the errors you point out and see if the code then does what I want.
Below for the code snippet that is critical I added some comments to specify what I'm aiming for.

<expt main>
/ onexptbegin = [
// set a bunch of "control variables to terminate control and terminate while loops"
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
// set a bunch of "write variables to write to the lists"
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
// set a variable to count the iterations
    var tcounter =0;

// nest a bunch of while loops to populate the lists
    while (CT1pos <2); //loop through 2 possible states
    {
    WT1pos =     100*(CT1pos +3);//convert control variable value to write variable value
    CT1pos +=1; //increment control state
    
    while (Crotatet <2);//loop through 2 possible states
    {
    Wrotatet =     30*(Crotatet -0.5);//convert control variable value to write variable value
    Crotatet +=1;//increment control state
    
        while (Cemotion<3);//loop through 3 possible states
        {
        Wemotion =     (Cemotion +1);//convert control variable value to write variable value
        Cemotion +=1;//increment control state
    
            while (Csaliency<2);//loop through 2 possible states
            {
            Wsaliency =     (Csaliency +1);//convert control variable value to write variable value
            Csaliency +=1;//increment control state
            
                while (CT2lag<2);//loop through 2 possible states
                {
                WT2lag =     (CT2lag*500)+200;//convert control variable value to write variable value
                CT2lag +=1;//increment control state
                
                    while (CT1gender<2);//loop through 2 possible states
                    {
                    WT1gender =     (CT1gender +1);//convert control variable value to write variable value
                    CT1gender +=1;//increment control state
                    {
                        while (CT2gender<2);//loop through 2 possible states
                        
                        WT2gender =     (CT2gender +1);//convert control variable value to write variable value
                        CT2gender +=1;//increment control state
                        tcounter +=1;//increment iteration counter
                        //write all the calculated values to the lists
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

Already posted a version with at least the various syntax mistakes (statement terminators where none belong, misplaced curly braces) upthread. This runs and does something. Whether it does the inteneded things or whether you have logic bugs you need to work out first, I can't say.
kev_dent
kev_dent
Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)Partner Member (820 reputation)
Group: Forum Members
Posts: 47, Visits: 153
Thanks Dave, I will see if I can correct the errors you point out and see if the code then does what I want.
Below for the code snippet that is critical I added some comments to specify what I'm aiming for.

<expt main>
/ onexptbegin = [
// set a bunch of "control variables to terminate control and terminate while loops"
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
// set a bunch of "write variables to write to the lists"
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
// set a variable to count the iterations
    var tcounter =0;

// nest a bunch of while loops to populate the lists
    while (CT1pos <2); //loop through 2 possible states
    {
    WT1pos =     100*(CT1pos +3);//convert control variable value to write variable value
    CT1pos +=1; //increment control state
    
    while (Crotatet <2);//loop through 2 possible states
    {
    Wrotatet =     30*(Crotatet -0.5);//convert control variable value to write variable value
    Crotatet +=1;//increment control state
    
        while (Cemotion<3);//loop through 3 possible states
        {
        Wemotion =     (Cemotion +1);//convert control variable value to write variable value
        Cemotion +=1;//increment control state
    
            while (Csaliency<2);//loop through 2 possible states
            {
            Wsaliency =     (Csaliency +1);//convert control variable value to write variable value
            Csaliency +=1;//increment control state
            
                while (CT2lag<2);//loop through 2 possible states
                {
                WT2lag =     (CT2lag*500)+200;//convert control variable value to write variable value
                CT2lag +=1;//increment control state
                
                    while (CT1gender<2);//loop through 2 possible states
                    {
                    WT1gender =     (CT1gender +1);//convert control variable value to write variable value
                    CT1gender +=1;//increment control state
                    {
                        while (CT2gender<2);//loop through 2 possible states
                        
                        WT2gender =     (CT2gender +1);//convert control variable value to write variable value
                        CT2gender +=1;//increment control state
                        tcounter +=1;//increment iteration counter
                        //write all the calculated values to the lists
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

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: 13K, Visits: 104K
Dave - 11/30/2023
Dave - 11/30/2023
Dave - 11/30/2023
kev_dent - 11/30/2023
Here is the full script, I am working with.
Basically, my goal is to use var type variables to populate a set of lists, these lists then will go on to control stimulus presentation.
Essentially the issue is that I can not get my code to populate my lists at all.
I copied the code from the programmers manual and can't achieve the same in my code.
Is there an example perhaps in the library that shows how to use var type variables to control stimulus presentation?
Thanks 
Kevin
<list rotate>
/items=(0)
/poolsize =14
/ selectionrate = always
</list>

<values>
/scale = 100
</values>



<list T1pos>
/ selectionrate = trial
/ items = ()


</list>

<list rotatet>
/ selectionrate = trial
/ items = ()
/select = list.T1pos.nextindex
</list>

<list emotion>
/ items = ()

/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list saliency>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2lag>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T1gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list maleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<list femaleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<values>
/T2pos = 0
</values>

<item neutralfemale>
/1="WF01/WF01_NO.jpg"
/2="WF02/WF02_NO.jpg"
/3="WF03/WF03_NO.jpg"
/4="WF04/WF04_NO.jpg"
/5="WF05/WF05_NO.jpg"
/6="WF06/WF06_NO.jpg"
/7="WF07/WF07_NO.jpg"
/8="WF08/WF08_NO.jpg"
/9="WF09/WF09_NO.jpg"
/10="WF10/WF10_NO.jpg"
/11="WF11/WF11_NO.jpg"
/12="WF12/WF12_NO.jpg"
/13="WF13/WF13_NO.jpg"
</item>
<item neutralmale>
/1="WM01/WM01_NO.jpg"
/2="WM02/WM02_NO.jpg"
/3="WM03/WM03_NO.jpg"
/4="WM04/WM04_NO.jpg"
/5="WM05/WM05_NO.jpg"
/6="WM06/WM06_NO.jpg"
/7="WM07/WM07_NO.jpg"
/8="WM08/WM08_NO.jpg"
/9="WM09/WM09_NO.jpg"
/10="WM10/WM10_NO.jpg"
/11="WM11/WM11_NO.jpg"
/12="WM12/WM12_NO.jpg"
/13="WM13/WM13_NO.jpg"
</item>
<item neutralfemaleRED>
/1="WF01/WF01_REDs_NO.jpg"
/2="WF02/WF02_REDs_NO.jpg"
/3="WF03/WF03_REDs_NO.jpg"
/4="WF04/WF04_REDs_NO.jpg"
/5="WF05/WF05_REDs_NO.jpg"
/6="WF06/WF06_REDs_NO.jpg"
/7="WF07/WF07_REDs_NO.jpg"
/8="WF08/WF08_REDs_NO.jpg"
/9="WF09/WF09_REDs_NO.jpg"
/10="WF10/WF10_REDs_NO.jpg"
/11="WF11/WF11_REDs_NO.jpg"
/12="WF12/WF12_REDs_NO.jpg"
/13="WF13/WF13_REDs_NO.jpg"
</item>
<item neutralmaleRED>
/1="WM01/WM01_REDs_NO.jpg"
/2="WM02/WM02_REDs_NO.jpg"
/3="WM03/WM03_REDs_NO.jpg"
/4="WM04/WM04_REDs_NO.jpg"
/5="WM05/WM05_REDs_NO.jpg"
/6="WM06/WM06_REDs_NO.jpg"
/7="WM07/WM07_REDs_NO.jpg"
/8="WM08/WM08_REDs_NO.jpg"
/9="WM09/WM09_REDs_NO.jpg"
/10="WM10/WM10_REDs_NO.jpg"
/11="WM11/WM11_REDs_NO.jpg"
/12="WM12/WM12_REDs_NO.jpg"
/13="WM13/WM13_REDs_NO.jpg"
</item>
<item angryfemale>
/1="WF01/WF01_AO.jpg"
/2="WF02/WF02_AO.jpg"
/3="WF03/WF03_AO.jpg"
/4="WF04/WF04_AO.jpg"
/5="WF05/WF05_AO.jpg"
/6="WF06/WF06_AO.jpg"
/7="WF07/WF07_AO.jpg"
/8="WF08/WF08_AO.jpg"
/9="WF09/WF09_AC.jpg"
/10="WF10/WF10_AO.jpg"
/11="WF11/WF11_AO.jpg"
/12="WF12/WF12_AO.jpg"
/13="WF13/WF13_AO.jpg"
</item>

<item angrymale>
/1="WM01/WM01_AO.jpg"
/2="WM02/WM02_AO.jpg"
/3="WM03/WM03_AO.jpg"
/4="WM04/WM04_AO.jpg"
/5="WM05/WM05_AO.jpg"
/6="WM06/WM06_AO.jpg"
/7="WM07/WM07_AO.jpg"
/8="WM08/WM08_AO.jpg"
/9="WM09/WM09_AO.jpg"
/10="WM10/WM10_AO.jpg"
/11="WM11/WM11_AO.jpg"
/12="WM12/WM12_AO.jpg"
/13="WM13/WM13_AO.jpg"
</item>

<item fearfemale>
/1="WF01/WF01_FO.jpg"
/2="WF02/WF02_FO.jpg"
/3="WF03/WF03_FO.jpg"
/4="WF04/WF04_FO.jpg"
/5="WF05/WF05_FO.jpg"
/6="WF06/WF06_FO.jpg"
/7="WF07/WF07_FO.jpg"
/8="WF08/WF08_FO.jpg"
/9="WF09/WF09_FO.jpg"
/10="WF10/WF10_FO.jpg"
/11="WF11/WF11_FO.jpg"
/12="WF12/WF12_FO.jpg"
/13="WF13/WF13_FO.jpg"
</item>
<item fearmale>
/1="WM01/WM01_FO.jpg"
/2="WM02/WM02_FO.jpg"
/3="WM03/WM03_FO.jpg"
/4="WM04/WM04_FO.jpg"
/5="WM05/WM05_FO.jpg"
/6="WM06/WM06_FO.jpg"
/7="WM07/WM07_FO.jpg"
/8="WM08/WM08_FO.jpg"
/9="WM09/WM09_FO.jpg"
/10="WM10/WM10_FO.jpg"
/11="WM11/WM11_FO.jpg"
/12="WM12/WM12_FO.jpg"
/13="WM13/WM13_FO.jpg"
</item>

<item angryfemaleRED>
/1="WF01/WF01_REDs_AO.jpg"
/2="WF02/WF02_REDs_AO.jpg"
/3="WF03/WF03_REDs_AO.jpg"
/4="WF04/WF04_REDs_AO.jpg"
/5="WF05/WF05_REDs_AO.jpg"
/6="WF06/WF06_REDs_AO.jpg"
/7="WF07/WF07_REDs_AO.jpg"
/8="WF08/WF08_REDs_AO.jpg"
/9="WF09/WF09_REDs_AC.jpg"
/10="WF10/WF10_REDs_AO.jpg"
/11="WF11/WF11_REDs_AO.jpg"
/12="WF12/WF12_RED_AO.jpg"
/13="WF13/WF13_RED_AO.jpg"
</item>

<item angrymaleRED>
/1="WM01/WM01_REDs_AO.jpg"
/2="WM02/WM02_REDs_AO.jpg"
/3="WM03/WM03_REDs_AO.jpg"
/4="WM04/WM04_REDs_AO.jpg"
/5="WM05/WM05_REDs_AO.jpg"
/6="WM06/WM06_REDs_AO.jpg"
/7="WM07/WM07_REDs_AO.jpg"
/8="WM08/WM08_REDs_AO.jpg"
/9="WM09/WM09_REDs_AO.jpg"
/10="WM10/WM10_REDs_AO.jpg"
/11="WM11/WM11_REDs_AO.jpg"
/12="WM12/WM12_REDs_AO.jpg"
/13="WM13/WM13_REDs_AO.jpg"
</item>

<item fearfemaleRED>
/1="WF01/WF01_REDs_FO.jpg"
/2="WF02/WF02_REDs_FO.jpg"
/3="WF03/WF03_REDs_FO.jpg"
/4="WF04/WF04_REDs_FO.jpg"
/5="WF05/WF05_REDs_FO.jpg"
/6="WF06/WF06_REDs_FO.jpg"
/7="WF07/WF07_REDs_FO.jpg"
/8="WF08/WF08_REDs_FO.jpg"
/9="WF09/WF09_REDs_FO.jpg"
/10="WF10/WF10_REDs_FO.jpg"
/11="WF11/WF11_REDs_FO.jpg"
/12="WF12/WF12_RED_FO.jpg"
/13="WF13/WF13_RED_FO.jpg"
</item>
<item fearmaleRED>
/1="WM01/WM01_REDs_FO.jpg"
/2="WM02/WM02_REDs_FO.jpg"
/3="WM03/WM03_REDs_FO.jpg"
/4="WM04/WM04_REDs_FO.jpg"
/5="WM05/WM05_REDs_FO.jpg"
/6="WM06/WM06_REDs_FO.jpg"
/7="WM07/WM07_REDs_FO.jpg"
/8="WM08/WM08_REDs_FO.jpg"
/9="WM09/WM09_REDs_FO.jpg"
/10="WM10/WM10_REDs_FO.jpg"
/11="WM11/WM11_REDs_FO.jpg"
/12="WM12/WM12_REDs_FO.jpg"
/13="WM13/WM13_REDs_FO.jpg"
</item>

<item scrambledneutral>
/1="Scrm_data_KD/WF01_NO_S.jpg"
/2="Scrm_data_KD/WF02_NO_S.jpg"
/3="Scrm_data_KD/WF03_NO_S.jpg"
/4="Scrm_data_KD/WF04_NO_S.jpg"
/5="Scrm_data_KD/WF05_NO_S.jpg"
/6="Scrm_data_KD/WF06_NO_S.jpg"
/7="Scrm_data_KD/WF07_NO_S.jpg"
/8="Scrm_data_KD/WF08_NO_S.jpg"
/9="Scrm_data_KD/WF09_NO_S.jpg"
/10="Scrm_data_KD/WF10_NO_S.jpg"
/11="Scrm_data_KD/WF11_NO_S.jpg"
/12="Scrm_data_KD/WF12_NO_S.jpg"
/13="Scrm_data_KD/WF13_NO_S.jpg"
/14="Scrm_data_KD/WM01_NO_S.jpg"
/15="Scrm_data_KD/WM02_NO_S.jpg"
/16="Scrm_data_KD/WM03_NO_S.jpg"
/17="Scrm_data_KD/WM04_NO_S.jpg"
/18="Scrm_data_KD/WM05_NO_S.jpg"
/19="Scrm_data_KD/WM06_NO_S.jpg"
/20="Scrm_data_KD/WM07_NO_S.jpg"
/21="Scrm_data_KD/WM08_NO_S.jpg"
/22="Scrm_data_KD/WM09_NO_S.jpg"
/23="Scrm_data_KD/WM10_NO_S.jpg"
/24="Scrm_data_KD/WM11_NO_S.jpg"
/25="Scrm_data_KD/WM12_NO_S.jpg"
/26="Scrm_data_KD/WM13_NO_S.jpg"
</item>
<list scramselect>
/ items = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26)

/ selectionrate = always
</list>

<picture distractor1>
/ items = scrambledneutral
/ selectionrate = always
/ size= (values.scale-0mm,values.scale-0mm)
/ select = list.scramselect.nextvalue
</picture>

<picture distractor2>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor3>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor4>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor5>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor6>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor7>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor8>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor9>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor10>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor11>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor12>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor13>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angryfemaleRED>
/ items = angryfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angrymaleRED>
/ items = angrymaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemaleRED>
/ items = fearfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture fearmaleRED>
/ items = fearmaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angryfemale>
/ items = angryfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angrymale>
/ items = angrymale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemale>
/ items = fearfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearmale>
/ items = fearmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture neutralmalet>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)
</picture>

<picture neutralfemalet>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)

</picture>

<picture neutralfemale>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture neutralmale>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<shape blank>
/shape =rectangle
/color = (white)
/ size = (100%, 100%)
</shape>


<trial facestream1>
/ontrialbegin =[

list.scramselect.reset();
list.maleselect.reset();
list.femaleselect.reset();
trial.facestream1.clearstimulusframes();
values.T2pos=list.T1pos.nextvalue + list.T2lag.nextvalue;
trial.facestream1.setstimulustime(shape.blank, 100*1);
trial.facestream1.setstimulustime(shape.blank, 200*1);
trial.facestream1.setstimulustime(shape.blank, 300*1);
trial.facestream1.setstimulustime(shape.blank, 400*1);
trial.facestream1.setstimulustime(shape.blank, 500*1);
trial.facestream1.setstimulustime(shape.blank, 600*1);
trial.facestream1.setstimulustime(shape.blank, 700*1);
trial.facestream1.setstimulustime(shape.blank, 800*1);
trial.facestream1.setstimulustime(shape.blank, 900*1);
trial.facestream1.setstimulustime(shape.blank, 1000*1);
trial.facestream1.setstimulustime(shape.blank, 1100*1);
trial.facestream1.setstimulustime(shape.blank, 1200*1);
trial.facestream1.setstimulustime(shape.blank, 1300*1);
trial.facestream1.insertstimulustime(picture.distractor1, 100*1);
trial.facestream1.insertstimulustime(picture.distractor2, 200*1);
trial.facestream1.insertstimulustime(picture.distractor3, 300*1);
trial.facestream1.insertstimulustime(picture.distractor4, 400*1);
trial.facestream1.insertstimulustime(picture.distractor5, 500*1);
trial.facestream1.insertstimulustime(picture.distractor6, 600*1);
trial.facestream1.insertstimulustime(picture.distractor7, 700*1);
trial.facestream1.insertstimulustime(picture.distractor8, 800*1);
trial.facestream1.insertstimulustime(picture.distractor9, 900*1);
trial.facestream1.insertstimulustime(picture.distractor10, 1000*1);
trial.facestream1.insertstimulustime(picture.distractor11, 1100*1);
trial.facestream1.insertstimulustime(picture.distractor12, 1200*1);
trial.facestream1.insertstimulustime(picture.distractor13, 1300*1);
trial.facestream1.insertstimulustime(shape.blank, 1400*1);

trial.facestream1.setstimulustime(shape.blank, values.T2pos);
if (list.T2gender.nextvalue==1)
trial.facestream1.insertstimulustime(picture.neutralfemalet, values.T2pos)
else if (list.T2gender.nextvalue==2)
trial.facestream1.insertstimulustime(picture.neutralmalet, values.T2pos);
trial.facestream1.setstimulustime(shape.blank, list.T1pos.nextvalue);


if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.neutralfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue);

if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.neutralmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue);
]
/stimulustimes =[
]
/ validresponse = (44,49)
/ inputdevice = keyboard
/ iscorrectresponse = [(list.T2gender.nextvalue==2 && trial.facestream1.response == 49)||(list.T2gender.nextvalue==1 && trial.facestream1.response == 44)]

</trial>

<data>
/ columns = (
date,
time,
group,
subject,
trialcode,
blockcode,
blocknum,
trialnum,
latency,
response,
responsetext,
list.T1gender.currentvalue,
list.T2gender.currentvalue,
list.emotion.currentvalue
list.saliency.currentvalue,
list.T1pos.currentvalue,
list.T2lag.currentvalue,
values.T2pos,
list.rotatet.currentvalue,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,

)



</data>




<page instruct>
^^ Look for the tilted face.
^^ If it is female to the left (top on left) press Z
^^ If it is male to the left (top on rigt) press N
</page>

<page break>
^^ Please take a breather...
</page>

<text correcttext>
/items =("Correct")
/ txcolor = green
</text>

<text errortext>
/items =("Wrong")
/ txcolor = red
</text>

<trial break>
/ timeout = 0
</trial>

<block break>
/preinstructions = (break)
/trials=[1=break]
</block>


<block main>
/preinstructions = (instruct)
/trials=[1-96=noreplace(facestream1)]
</block>

<expt main>
/ onexptbegin = [
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
    
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
    
    var tcounter =0;
    
    while (CT1pos <2);
    {
    WT1pos =     100*(CT1pos +3);
    CT1pos +=1;
    
    while (Crotatet <2);
    {
    Wrotatet =     30*(Crotatet -0.5);
    Crotatet +=1;
    
        while (Cemotion<3);
        {
        Wemotion =     (Cemotion +1);
        Cemotion +=1;
    
            while (Csaliency<2);
            {
            Wsaliency =     (Csaliency +1);
            Csaliency +=1;
            
                while (CT2lag<2);
                {
                WT2lag =     (CT2lag*500)+200;
                CT2lag +=1;
                
                    while (CT1gender<2);
                    {
                    WT1gender =     (CT1gender +1);
                    CT1gender +=1;
                    {
                        while (CT2gender<2);
                        
                        WT2gender =     (CT2gender +1);
                        CT2gender +=1;
                        tcounter +=1;
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

Again, please comment your code. Specifically, the while() loops, since that is what you want help with

Syntax-wise, the whole thing is pretty broken. For example, you have a statement terminater after each while condition

while (CT1pos <2);


No ; belongs there.

This whole section here is wrong:


So if you fix the broken syntax and other mistakes, the thing will run and do something with the lists, i.e. populate them.

Whether in the way you intended or not, I can't tell, since you have not laid out those things.

<expt main>
/ onexptbegin = [
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;

    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;

    var tcounter =0;

    while (CT1pos <2) {
        WT1pos =100*(CT1pos + 3);
        CT1pos +=1;
        while (Crotatet <2) {
            Wrotatet = 30*(Crotatet -0.5);
            Crotatet +=1;
            while (Cemotion<3) {
                Wemotion =(Cemotion +1);
                Cemotion +=1;
                while (Csaliency<2) {
                    Wsaliency =(Csaliency +1);
                    Csaliency +=1;
                    while (CT2lag<2) {
                        WT2lag =(CT2lag*500)+200;
                        CT2lag +=1;
                        while (CT1gender<2) {
                            WT1gender = (CT1gender +1);
                            CT1gender +=1;
                        //{ doesn't belong here
                            while (CT2gender<2) {
                                WT2gender = (CT2gender +1);
                                CT2gender +=1;
                                tcounter +=1;
                                list.rotatet.appenditem(Wrotatet);
                                list.emotion.appenditem(Wemotion);
                                list.saliency.appenditem(Wsaliency);
                                list.T2lag.appenditem(WT2lag);
                                list.T1gender.appenditem(WT1gender);
                                list.T2gender.appenditem(WT2gender);
                                list.T1pos.appenditem(WT1pos);
                            }
                        }
                    }
                }
            }
        }
    };
    //script.debugbreak();
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

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: 13K, Visits: 104K
Dave - 11/30/2023
Dave - 11/30/2023
kev_dent - 11/30/2023
Here is the full script, I am working with.
Basically, my goal is to use var type variables to populate a set of lists, these lists then will go on to control stimulus presentation.
Essentially the issue is that I can not get my code to populate my lists at all.
I copied the code from the programmers manual and can't achieve the same in my code.
Is there an example perhaps in the library that shows how to use var type variables to control stimulus presentation?
Thanks 
Kevin
<list rotate>
/items=(0)
/poolsize =14
/ selectionrate = always
</list>

<values>
/scale = 100
</values>



<list T1pos>
/ selectionrate = trial
/ items = ()


</list>

<list rotatet>
/ selectionrate = trial
/ items = ()
/select = list.T1pos.nextindex
</list>

<list emotion>
/ items = ()

/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list saliency>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2lag>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T1gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list maleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<list femaleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<values>
/T2pos = 0
</values>

<item neutralfemale>
/1="WF01/WF01_NO.jpg"
/2="WF02/WF02_NO.jpg"
/3="WF03/WF03_NO.jpg"
/4="WF04/WF04_NO.jpg"
/5="WF05/WF05_NO.jpg"
/6="WF06/WF06_NO.jpg"
/7="WF07/WF07_NO.jpg"
/8="WF08/WF08_NO.jpg"
/9="WF09/WF09_NO.jpg"
/10="WF10/WF10_NO.jpg"
/11="WF11/WF11_NO.jpg"
/12="WF12/WF12_NO.jpg"
/13="WF13/WF13_NO.jpg"
</item>
<item neutralmale>
/1="WM01/WM01_NO.jpg"
/2="WM02/WM02_NO.jpg"
/3="WM03/WM03_NO.jpg"
/4="WM04/WM04_NO.jpg"
/5="WM05/WM05_NO.jpg"
/6="WM06/WM06_NO.jpg"
/7="WM07/WM07_NO.jpg"
/8="WM08/WM08_NO.jpg"
/9="WM09/WM09_NO.jpg"
/10="WM10/WM10_NO.jpg"
/11="WM11/WM11_NO.jpg"
/12="WM12/WM12_NO.jpg"
/13="WM13/WM13_NO.jpg"
</item>
<item neutralfemaleRED>
/1="WF01/WF01_REDs_NO.jpg"
/2="WF02/WF02_REDs_NO.jpg"
/3="WF03/WF03_REDs_NO.jpg"
/4="WF04/WF04_REDs_NO.jpg"
/5="WF05/WF05_REDs_NO.jpg"
/6="WF06/WF06_REDs_NO.jpg"
/7="WF07/WF07_REDs_NO.jpg"
/8="WF08/WF08_REDs_NO.jpg"
/9="WF09/WF09_REDs_NO.jpg"
/10="WF10/WF10_REDs_NO.jpg"
/11="WF11/WF11_REDs_NO.jpg"
/12="WF12/WF12_REDs_NO.jpg"
/13="WF13/WF13_REDs_NO.jpg"
</item>
<item neutralmaleRED>
/1="WM01/WM01_REDs_NO.jpg"
/2="WM02/WM02_REDs_NO.jpg"
/3="WM03/WM03_REDs_NO.jpg"
/4="WM04/WM04_REDs_NO.jpg"
/5="WM05/WM05_REDs_NO.jpg"
/6="WM06/WM06_REDs_NO.jpg"
/7="WM07/WM07_REDs_NO.jpg"
/8="WM08/WM08_REDs_NO.jpg"
/9="WM09/WM09_REDs_NO.jpg"
/10="WM10/WM10_REDs_NO.jpg"
/11="WM11/WM11_REDs_NO.jpg"
/12="WM12/WM12_REDs_NO.jpg"
/13="WM13/WM13_REDs_NO.jpg"
</item>
<item angryfemale>
/1="WF01/WF01_AO.jpg"
/2="WF02/WF02_AO.jpg"
/3="WF03/WF03_AO.jpg"
/4="WF04/WF04_AO.jpg"
/5="WF05/WF05_AO.jpg"
/6="WF06/WF06_AO.jpg"
/7="WF07/WF07_AO.jpg"
/8="WF08/WF08_AO.jpg"
/9="WF09/WF09_AC.jpg"
/10="WF10/WF10_AO.jpg"
/11="WF11/WF11_AO.jpg"
/12="WF12/WF12_AO.jpg"
/13="WF13/WF13_AO.jpg"
</item>

<item angrymale>
/1="WM01/WM01_AO.jpg"
/2="WM02/WM02_AO.jpg"
/3="WM03/WM03_AO.jpg"
/4="WM04/WM04_AO.jpg"
/5="WM05/WM05_AO.jpg"
/6="WM06/WM06_AO.jpg"
/7="WM07/WM07_AO.jpg"
/8="WM08/WM08_AO.jpg"
/9="WM09/WM09_AO.jpg"
/10="WM10/WM10_AO.jpg"
/11="WM11/WM11_AO.jpg"
/12="WM12/WM12_AO.jpg"
/13="WM13/WM13_AO.jpg"
</item>

<item fearfemale>
/1="WF01/WF01_FO.jpg"
/2="WF02/WF02_FO.jpg"
/3="WF03/WF03_FO.jpg"
/4="WF04/WF04_FO.jpg"
/5="WF05/WF05_FO.jpg"
/6="WF06/WF06_FO.jpg"
/7="WF07/WF07_FO.jpg"
/8="WF08/WF08_FO.jpg"
/9="WF09/WF09_FO.jpg"
/10="WF10/WF10_FO.jpg"
/11="WF11/WF11_FO.jpg"
/12="WF12/WF12_FO.jpg"
/13="WF13/WF13_FO.jpg"
</item>
<item fearmale>
/1="WM01/WM01_FO.jpg"
/2="WM02/WM02_FO.jpg"
/3="WM03/WM03_FO.jpg"
/4="WM04/WM04_FO.jpg"
/5="WM05/WM05_FO.jpg"
/6="WM06/WM06_FO.jpg"
/7="WM07/WM07_FO.jpg"
/8="WM08/WM08_FO.jpg"
/9="WM09/WM09_FO.jpg"
/10="WM10/WM10_FO.jpg"
/11="WM11/WM11_FO.jpg"
/12="WM12/WM12_FO.jpg"
/13="WM13/WM13_FO.jpg"
</item>

<item angryfemaleRED>
/1="WF01/WF01_REDs_AO.jpg"
/2="WF02/WF02_REDs_AO.jpg"
/3="WF03/WF03_REDs_AO.jpg"
/4="WF04/WF04_REDs_AO.jpg"
/5="WF05/WF05_REDs_AO.jpg"
/6="WF06/WF06_REDs_AO.jpg"
/7="WF07/WF07_REDs_AO.jpg"
/8="WF08/WF08_REDs_AO.jpg"
/9="WF09/WF09_REDs_AC.jpg"
/10="WF10/WF10_REDs_AO.jpg"
/11="WF11/WF11_REDs_AO.jpg"
/12="WF12/WF12_RED_AO.jpg"
/13="WF13/WF13_RED_AO.jpg"
</item>

<item angrymaleRED>
/1="WM01/WM01_REDs_AO.jpg"
/2="WM02/WM02_REDs_AO.jpg"
/3="WM03/WM03_REDs_AO.jpg"
/4="WM04/WM04_REDs_AO.jpg"
/5="WM05/WM05_REDs_AO.jpg"
/6="WM06/WM06_REDs_AO.jpg"
/7="WM07/WM07_REDs_AO.jpg"
/8="WM08/WM08_REDs_AO.jpg"
/9="WM09/WM09_REDs_AO.jpg"
/10="WM10/WM10_REDs_AO.jpg"
/11="WM11/WM11_REDs_AO.jpg"
/12="WM12/WM12_REDs_AO.jpg"
/13="WM13/WM13_REDs_AO.jpg"
</item>

<item fearfemaleRED>
/1="WF01/WF01_REDs_FO.jpg"
/2="WF02/WF02_REDs_FO.jpg"
/3="WF03/WF03_REDs_FO.jpg"
/4="WF04/WF04_REDs_FO.jpg"
/5="WF05/WF05_REDs_FO.jpg"
/6="WF06/WF06_REDs_FO.jpg"
/7="WF07/WF07_REDs_FO.jpg"
/8="WF08/WF08_REDs_FO.jpg"
/9="WF09/WF09_REDs_FO.jpg"
/10="WF10/WF10_REDs_FO.jpg"
/11="WF11/WF11_REDs_FO.jpg"
/12="WF12/WF12_RED_FO.jpg"
/13="WF13/WF13_RED_FO.jpg"
</item>
<item fearmaleRED>
/1="WM01/WM01_REDs_FO.jpg"
/2="WM02/WM02_REDs_FO.jpg"
/3="WM03/WM03_REDs_FO.jpg"
/4="WM04/WM04_REDs_FO.jpg"
/5="WM05/WM05_REDs_FO.jpg"
/6="WM06/WM06_REDs_FO.jpg"
/7="WM07/WM07_REDs_FO.jpg"
/8="WM08/WM08_REDs_FO.jpg"
/9="WM09/WM09_REDs_FO.jpg"
/10="WM10/WM10_REDs_FO.jpg"
/11="WM11/WM11_REDs_FO.jpg"
/12="WM12/WM12_REDs_FO.jpg"
/13="WM13/WM13_REDs_FO.jpg"
</item>

<item scrambledneutral>
/1="Scrm_data_KD/WF01_NO_S.jpg"
/2="Scrm_data_KD/WF02_NO_S.jpg"
/3="Scrm_data_KD/WF03_NO_S.jpg"
/4="Scrm_data_KD/WF04_NO_S.jpg"
/5="Scrm_data_KD/WF05_NO_S.jpg"
/6="Scrm_data_KD/WF06_NO_S.jpg"
/7="Scrm_data_KD/WF07_NO_S.jpg"
/8="Scrm_data_KD/WF08_NO_S.jpg"
/9="Scrm_data_KD/WF09_NO_S.jpg"
/10="Scrm_data_KD/WF10_NO_S.jpg"
/11="Scrm_data_KD/WF11_NO_S.jpg"
/12="Scrm_data_KD/WF12_NO_S.jpg"
/13="Scrm_data_KD/WF13_NO_S.jpg"
/14="Scrm_data_KD/WM01_NO_S.jpg"
/15="Scrm_data_KD/WM02_NO_S.jpg"
/16="Scrm_data_KD/WM03_NO_S.jpg"
/17="Scrm_data_KD/WM04_NO_S.jpg"
/18="Scrm_data_KD/WM05_NO_S.jpg"
/19="Scrm_data_KD/WM06_NO_S.jpg"
/20="Scrm_data_KD/WM07_NO_S.jpg"
/21="Scrm_data_KD/WM08_NO_S.jpg"
/22="Scrm_data_KD/WM09_NO_S.jpg"
/23="Scrm_data_KD/WM10_NO_S.jpg"
/24="Scrm_data_KD/WM11_NO_S.jpg"
/25="Scrm_data_KD/WM12_NO_S.jpg"
/26="Scrm_data_KD/WM13_NO_S.jpg"
</item>
<list scramselect>
/ items = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26)

/ selectionrate = always
</list>

<picture distractor1>
/ items = scrambledneutral
/ selectionrate = always
/ size= (values.scale-0mm,values.scale-0mm)
/ select = list.scramselect.nextvalue
</picture>

<picture distractor2>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor3>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor4>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor5>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor6>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor7>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor8>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor9>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor10>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor11>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor12>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor13>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angryfemaleRED>
/ items = angryfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angrymaleRED>
/ items = angrymaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemaleRED>
/ items = fearfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture fearmaleRED>
/ items = fearmaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angryfemale>
/ items = angryfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angrymale>
/ items = angrymale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemale>
/ items = fearfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearmale>
/ items = fearmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture neutralmalet>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)
</picture>

<picture neutralfemalet>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)

</picture>

<picture neutralfemale>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture neutralmale>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<shape blank>
/shape =rectangle
/color = (white)
/ size = (100%, 100%)
</shape>


<trial facestream1>
/ontrialbegin =[

list.scramselect.reset();
list.maleselect.reset();
list.femaleselect.reset();
trial.facestream1.clearstimulusframes();
values.T2pos=list.T1pos.nextvalue + list.T2lag.nextvalue;
trial.facestream1.setstimulustime(shape.blank, 100*1);
trial.facestream1.setstimulustime(shape.blank, 200*1);
trial.facestream1.setstimulustime(shape.blank, 300*1);
trial.facestream1.setstimulustime(shape.blank, 400*1);
trial.facestream1.setstimulustime(shape.blank, 500*1);
trial.facestream1.setstimulustime(shape.blank, 600*1);
trial.facestream1.setstimulustime(shape.blank, 700*1);
trial.facestream1.setstimulustime(shape.blank, 800*1);
trial.facestream1.setstimulustime(shape.blank, 900*1);
trial.facestream1.setstimulustime(shape.blank, 1000*1);
trial.facestream1.setstimulustime(shape.blank, 1100*1);
trial.facestream1.setstimulustime(shape.blank, 1200*1);
trial.facestream1.setstimulustime(shape.blank, 1300*1);
trial.facestream1.insertstimulustime(picture.distractor1, 100*1);
trial.facestream1.insertstimulustime(picture.distractor2, 200*1);
trial.facestream1.insertstimulustime(picture.distractor3, 300*1);
trial.facestream1.insertstimulustime(picture.distractor4, 400*1);
trial.facestream1.insertstimulustime(picture.distractor5, 500*1);
trial.facestream1.insertstimulustime(picture.distractor6, 600*1);
trial.facestream1.insertstimulustime(picture.distractor7, 700*1);
trial.facestream1.insertstimulustime(picture.distractor8, 800*1);
trial.facestream1.insertstimulustime(picture.distractor9, 900*1);
trial.facestream1.insertstimulustime(picture.distractor10, 1000*1);
trial.facestream1.insertstimulustime(picture.distractor11, 1100*1);
trial.facestream1.insertstimulustime(picture.distractor12, 1200*1);
trial.facestream1.insertstimulustime(picture.distractor13, 1300*1);
trial.facestream1.insertstimulustime(shape.blank, 1400*1);

trial.facestream1.setstimulustime(shape.blank, values.T2pos);
if (list.T2gender.nextvalue==1)
trial.facestream1.insertstimulustime(picture.neutralfemalet, values.T2pos)
else if (list.T2gender.nextvalue==2)
trial.facestream1.insertstimulustime(picture.neutralmalet, values.T2pos);
trial.facestream1.setstimulustime(shape.blank, list.T1pos.nextvalue);


if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.neutralfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue);

if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.neutralmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue);
]
/stimulustimes =[
]
/ validresponse = (44,49)
/ inputdevice = keyboard
/ iscorrectresponse = [(list.T2gender.nextvalue==2 && trial.facestream1.response == 49)||(list.T2gender.nextvalue==1 && trial.facestream1.response == 44)]

</trial>

<data>
/ columns = (
date,
time,
group,
subject,
trialcode,
blockcode,
blocknum,
trialnum,
latency,
response,
responsetext,
list.T1gender.currentvalue,
list.T2gender.currentvalue,
list.emotion.currentvalue
list.saliency.currentvalue,
list.T1pos.currentvalue,
list.T2lag.currentvalue,
values.T2pos,
list.rotatet.currentvalue,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,

)



</data>




<page instruct>
^^ Look for the tilted face.
^^ If it is female to the left (top on left) press Z
^^ If it is male to the left (top on rigt) press N
</page>

<page break>
^^ Please take a breather...
</page>

<text correcttext>
/items =("Correct")
/ txcolor = green
</text>

<text errortext>
/items =("Wrong")
/ txcolor = red
</text>

<trial break>
/ timeout = 0
</trial>

<block break>
/preinstructions = (break)
/trials=[1=break]
</block>


<block main>
/preinstructions = (instruct)
/trials=[1-96=noreplace(facestream1)]
</block>

<expt main>
/ onexptbegin = [
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
    
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
    
    var tcounter =0;
    
    while (CT1pos <2);
    {
    WT1pos =     100*(CT1pos +3);
    CT1pos +=1;
    
    while (Crotatet <2);
    {
    Wrotatet =     30*(Crotatet -0.5);
    Crotatet +=1;
    
        while (Cemotion<3);
        {
        Wemotion =     (Cemotion +1);
        Cemotion +=1;
    
            while (Csaliency<2);
            {
            Wsaliency =     (Csaliency +1);
            Csaliency +=1;
            
                while (CT2lag<2);
                {
                WT2lag =     (CT2lag*500)+200;
                CT2lag +=1;
                
                    while (CT1gender<2);
                    {
                    WT1gender =     (CT1gender +1);
                    CT1gender +=1;
                    {
                        while (CT2gender<2);
                        
                        WT2gender =     (CT2gender +1);
                        CT2gender +=1;
                        tcounter +=1;
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

Again, please comment your code. Specifically, the while() loops, since that is what you want help with

Syntax-wise, the whole thing is pretty broken. For example, you have a statement terminater after each while condition

while (CT1pos <2);


No ; belongs there.

This whole section here is wrong:


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: 13K, Visits: 104K
Dave - 11/30/2023
kev_dent - 11/30/2023
Here is the full script, I am working with.
Basically, my goal is to use var type variables to populate a set of lists, these lists then will go on to control stimulus presentation.
Essentially the issue is that I can not get my code to populate my lists at all.
I copied the code from the programmers manual and can't achieve the same in my code.
Is there an example perhaps in the library that shows how to use var type variables to control stimulus presentation?
Thanks 
Kevin
<list rotate>
/items=(0)
/poolsize =14
/ selectionrate = always
</list>

<values>
/scale = 100
</values>



<list T1pos>
/ selectionrate = trial
/ items = ()


</list>

<list rotatet>
/ selectionrate = trial
/ items = ()
/select = list.T1pos.nextindex
</list>

<list emotion>
/ items = ()

/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list saliency>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2lag>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T1gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list maleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<list femaleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<values>
/T2pos = 0
</values>

<item neutralfemale>
/1="WF01/WF01_NO.jpg"
/2="WF02/WF02_NO.jpg"
/3="WF03/WF03_NO.jpg"
/4="WF04/WF04_NO.jpg"
/5="WF05/WF05_NO.jpg"
/6="WF06/WF06_NO.jpg"
/7="WF07/WF07_NO.jpg"
/8="WF08/WF08_NO.jpg"
/9="WF09/WF09_NO.jpg"
/10="WF10/WF10_NO.jpg"
/11="WF11/WF11_NO.jpg"
/12="WF12/WF12_NO.jpg"
/13="WF13/WF13_NO.jpg"
</item>
<item neutralmale>
/1="WM01/WM01_NO.jpg"
/2="WM02/WM02_NO.jpg"
/3="WM03/WM03_NO.jpg"
/4="WM04/WM04_NO.jpg"
/5="WM05/WM05_NO.jpg"
/6="WM06/WM06_NO.jpg"
/7="WM07/WM07_NO.jpg"
/8="WM08/WM08_NO.jpg"
/9="WM09/WM09_NO.jpg"
/10="WM10/WM10_NO.jpg"
/11="WM11/WM11_NO.jpg"
/12="WM12/WM12_NO.jpg"
/13="WM13/WM13_NO.jpg"
</item>
<item neutralfemaleRED>
/1="WF01/WF01_REDs_NO.jpg"
/2="WF02/WF02_REDs_NO.jpg"
/3="WF03/WF03_REDs_NO.jpg"
/4="WF04/WF04_REDs_NO.jpg"
/5="WF05/WF05_REDs_NO.jpg"
/6="WF06/WF06_REDs_NO.jpg"
/7="WF07/WF07_REDs_NO.jpg"
/8="WF08/WF08_REDs_NO.jpg"
/9="WF09/WF09_REDs_NO.jpg"
/10="WF10/WF10_REDs_NO.jpg"
/11="WF11/WF11_REDs_NO.jpg"
/12="WF12/WF12_REDs_NO.jpg"
/13="WF13/WF13_REDs_NO.jpg"
</item>
<item neutralmaleRED>
/1="WM01/WM01_REDs_NO.jpg"
/2="WM02/WM02_REDs_NO.jpg"
/3="WM03/WM03_REDs_NO.jpg"
/4="WM04/WM04_REDs_NO.jpg"
/5="WM05/WM05_REDs_NO.jpg"
/6="WM06/WM06_REDs_NO.jpg"
/7="WM07/WM07_REDs_NO.jpg"
/8="WM08/WM08_REDs_NO.jpg"
/9="WM09/WM09_REDs_NO.jpg"
/10="WM10/WM10_REDs_NO.jpg"
/11="WM11/WM11_REDs_NO.jpg"
/12="WM12/WM12_REDs_NO.jpg"
/13="WM13/WM13_REDs_NO.jpg"
</item>
<item angryfemale>
/1="WF01/WF01_AO.jpg"
/2="WF02/WF02_AO.jpg"
/3="WF03/WF03_AO.jpg"
/4="WF04/WF04_AO.jpg"
/5="WF05/WF05_AO.jpg"
/6="WF06/WF06_AO.jpg"
/7="WF07/WF07_AO.jpg"
/8="WF08/WF08_AO.jpg"
/9="WF09/WF09_AC.jpg"
/10="WF10/WF10_AO.jpg"
/11="WF11/WF11_AO.jpg"
/12="WF12/WF12_AO.jpg"
/13="WF13/WF13_AO.jpg"
</item>

<item angrymale>
/1="WM01/WM01_AO.jpg"
/2="WM02/WM02_AO.jpg"
/3="WM03/WM03_AO.jpg"
/4="WM04/WM04_AO.jpg"
/5="WM05/WM05_AO.jpg"
/6="WM06/WM06_AO.jpg"
/7="WM07/WM07_AO.jpg"
/8="WM08/WM08_AO.jpg"
/9="WM09/WM09_AO.jpg"
/10="WM10/WM10_AO.jpg"
/11="WM11/WM11_AO.jpg"
/12="WM12/WM12_AO.jpg"
/13="WM13/WM13_AO.jpg"
</item>

<item fearfemale>
/1="WF01/WF01_FO.jpg"
/2="WF02/WF02_FO.jpg"
/3="WF03/WF03_FO.jpg"
/4="WF04/WF04_FO.jpg"
/5="WF05/WF05_FO.jpg"
/6="WF06/WF06_FO.jpg"
/7="WF07/WF07_FO.jpg"
/8="WF08/WF08_FO.jpg"
/9="WF09/WF09_FO.jpg"
/10="WF10/WF10_FO.jpg"
/11="WF11/WF11_FO.jpg"
/12="WF12/WF12_FO.jpg"
/13="WF13/WF13_FO.jpg"
</item>
<item fearmale>
/1="WM01/WM01_FO.jpg"
/2="WM02/WM02_FO.jpg"
/3="WM03/WM03_FO.jpg"
/4="WM04/WM04_FO.jpg"
/5="WM05/WM05_FO.jpg"
/6="WM06/WM06_FO.jpg"
/7="WM07/WM07_FO.jpg"
/8="WM08/WM08_FO.jpg"
/9="WM09/WM09_FO.jpg"
/10="WM10/WM10_FO.jpg"
/11="WM11/WM11_FO.jpg"
/12="WM12/WM12_FO.jpg"
/13="WM13/WM13_FO.jpg"
</item>

<item angryfemaleRED>
/1="WF01/WF01_REDs_AO.jpg"
/2="WF02/WF02_REDs_AO.jpg"
/3="WF03/WF03_REDs_AO.jpg"
/4="WF04/WF04_REDs_AO.jpg"
/5="WF05/WF05_REDs_AO.jpg"
/6="WF06/WF06_REDs_AO.jpg"
/7="WF07/WF07_REDs_AO.jpg"
/8="WF08/WF08_REDs_AO.jpg"
/9="WF09/WF09_REDs_AC.jpg"
/10="WF10/WF10_REDs_AO.jpg"
/11="WF11/WF11_REDs_AO.jpg"
/12="WF12/WF12_RED_AO.jpg"
/13="WF13/WF13_RED_AO.jpg"
</item>

<item angrymaleRED>
/1="WM01/WM01_REDs_AO.jpg"
/2="WM02/WM02_REDs_AO.jpg"
/3="WM03/WM03_REDs_AO.jpg"
/4="WM04/WM04_REDs_AO.jpg"
/5="WM05/WM05_REDs_AO.jpg"
/6="WM06/WM06_REDs_AO.jpg"
/7="WM07/WM07_REDs_AO.jpg"
/8="WM08/WM08_REDs_AO.jpg"
/9="WM09/WM09_REDs_AO.jpg"
/10="WM10/WM10_REDs_AO.jpg"
/11="WM11/WM11_REDs_AO.jpg"
/12="WM12/WM12_REDs_AO.jpg"
/13="WM13/WM13_REDs_AO.jpg"
</item>

<item fearfemaleRED>
/1="WF01/WF01_REDs_FO.jpg"
/2="WF02/WF02_REDs_FO.jpg"
/3="WF03/WF03_REDs_FO.jpg"
/4="WF04/WF04_REDs_FO.jpg"
/5="WF05/WF05_REDs_FO.jpg"
/6="WF06/WF06_REDs_FO.jpg"
/7="WF07/WF07_REDs_FO.jpg"
/8="WF08/WF08_REDs_FO.jpg"
/9="WF09/WF09_REDs_FO.jpg"
/10="WF10/WF10_REDs_FO.jpg"
/11="WF11/WF11_REDs_FO.jpg"
/12="WF12/WF12_RED_FO.jpg"
/13="WF13/WF13_RED_FO.jpg"
</item>
<item fearmaleRED>
/1="WM01/WM01_REDs_FO.jpg"
/2="WM02/WM02_REDs_FO.jpg"
/3="WM03/WM03_REDs_FO.jpg"
/4="WM04/WM04_REDs_FO.jpg"
/5="WM05/WM05_REDs_FO.jpg"
/6="WM06/WM06_REDs_FO.jpg"
/7="WM07/WM07_REDs_FO.jpg"
/8="WM08/WM08_REDs_FO.jpg"
/9="WM09/WM09_REDs_FO.jpg"
/10="WM10/WM10_REDs_FO.jpg"
/11="WM11/WM11_REDs_FO.jpg"
/12="WM12/WM12_REDs_FO.jpg"
/13="WM13/WM13_REDs_FO.jpg"
</item>

<item scrambledneutral>
/1="Scrm_data_KD/WF01_NO_S.jpg"
/2="Scrm_data_KD/WF02_NO_S.jpg"
/3="Scrm_data_KD/WF03_NO_S.jpg"
/4="Scrm_data_KD/WF04_NO_S.jpg"
/5="Scrm_data_KD/WF05_NO_S.jpg"
/6="Scrm_data_KD/WF06_NO_S.jpg"
/7="Scrm_data_KD/WF07_NO_S.jpg"
/8="Scrm_data_KD/WF08_NO_S.jpg"
/9="Scrm_data_KD/WF09_NO_S.jpg"
/10="Scrm_data_KD/WF10_NO_S.jpg"
/11="Scrm_data_KD/WF11_NO_S.jpg"
/12="Scrm_data_KD/WF12_NO_S.jpg"
/13="Scrm_data_KD/WF13_NO_S.jpg"
/14="Scrm_data_KD/WM01_NO_S.jpg"
/15="Scrm_data_KD/WM02_NO_S.jpg"
/16="Scrm_data_KD/WM03_NO_S.jpg"
/17="Scrm_data_KD/WM04_NO_S.jpg"
/18="Scrm_data_KD/WM05_NO_S.jpg"
/19="Scrm_data_KD/WM06_NO_S.jpg"
/20="Scrm_data_KD/WM07_NO_S.jpg"
/21="Scrm_data_KD/WM08_NO_S.jpg"
/22="Scrm_data_KD/WM09_NO_S.jpg"
/23="Scrm_data_KD/WM10_NO_S.jpg"
/24="Scrm_data_KD/WM11_NO_S.jpg"
/25="Scrm_data_KD/WM12_NO_S.jpg"
/26="Scrm_data_KD/WM13_NO_S.jpg"
</item>
<list scramselect>
/ items = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26)

/ selectionrate = always
</list>

<picture distractor1>
/ items = scrambledneutral
/ selectionrate = always
/ size= (values.scale-0mm,values.scale-0mm)
/ select = list.scramselect.nextvalue
</picture>

<picture distractor2>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor3>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor4>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor5>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor6>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor7>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor8>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor9>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor10>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor11>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor12>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor13>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angryfemaleRED>
/ items = angryfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angrymaleRED>
/ items = angrymaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemaleRED>
/ items = fearfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture fearmaleRED>
/ items = fearmaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angryfemale>
/ items = angryfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angrymale>
/ items = angrymale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemale>
/ items = fearfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearmale>
/ items = fearmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture neutralmalet>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)
</picture>

<picture neutralfemalet>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)

</picture>

<picture neutralfemale>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture neutralmale>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<shape blank>
/shape =rectangle
/color = (white)
/ size = (100%, 100%)
</shape>


<trial facestream1>
/ontrialbegin =[

list.scramselect.reset();
list.maleselect.reset();
list.femaleselect.reset();
trial.facestream1.clearstimulusframes();
values.T2pos=list.T1pos.nextvalue + list.T2lag.nextvalue;
trial.facestream1.setstimulustime(shape.blank, 100*1);
trial.facestream1.setstimulustime(shape.blank, 200*1);
trial.facestream1.setstimulustime(shape.blank, 300*1);
trial.facestream1.setstimulustime(shape.blank, 400*1);
trial.facestream1.setstimulustime(shape.blank, 500*1);
trial.facestream1.setstimulustime(shape.blank, 600*1);
trial.facestream1.setstimulustime(shape.blank, 700*1);
trial.facestream1.setstimulustime(shape.blank, 800*1);
trial.facestream1.setstimulustime(shape.blank, 900*1);
trial.facestream1.setstimulustime(shape.blank, 1000*1);
trial.facestream1.setstimulustime(shape.blank, 1100*1);
trial.facestream1.setstimulustime(shape.blank, 1200*1);
trial.facestream1.setstimulustime(shape.blank, 1300*1);
trial.facestream1.insertstimulustime(picture.distractor1, 100*1);
trial.facestream1.insertstimulustime(picture.distractor2, 200*1);
trial.facestream1.insertstimulustime(picture.distractor3, 300*1);
trial.facestream1.insertstimulustime(picture.distractor4, 400*1);
trial.facestream1.insertstimulustime(picture.distractor5, 500*1);
trial.facestream1.insertstimulustime(picture.distractor6, 600*1);
trial.facestream1.insertstimulustime(picture.distractor7, 700*1);
trial.facestream1.insertstimulustime(picture.distractor8, 800*1);
trial.facestream1.insertstimulustime(picture.distractor9, 900*1);
trial.facestream1.insertstimulustime(picture.distractor10, 1000*1);
trial.facestream1.insertstimulustime(picture.distractor11, 1100*1);
trial.facestream1.insertstimulustime(picture.distractor12, 1200*1);
trial.facestream1.insertstimulustime(picture.distractor13, 1300*1);
trial.facestream1.insertstimulustime(shape.blank, 1400*1);

trial.facestream1.setstimulustime(shape.blank, values.T2pos);
if (list.T2gender.nextvalue==1)
trial.facestream1.insertstimulustime(picture.neutralfemalet, values.T2pos)
else if (list.T2gender.nextvalue==2)
trial.facestream1.insertstimulustime(picture.neutralmalet, values.T2pos);
trial.facestream1.setstimulustime(shape.blank, list.T1pos.nextvalue);


if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.neutralfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue);

if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.neutralmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue);
]
/stimulustimes =[
]
/ validresponse = (44,49)
/ inputdevice = keyboard
/ iscorrectresponse = [(list.T2gender.nextvalue==2 && trial.facestream1.response == 49)||(list.T2gender.nextvalue==1 && trial.facestream1.response == 44)]

</trial>

<data>
/ columns = (
date,
time,
group,
subject,
trialcode,
blockcode,
blocknum,
trialnum,
latency,
response,
responsetext,
list.T1gender.currentvalue,
list.T2gender.currentvalue,
list.emotion.currentvalue
list.saliency.currentvalue,
list.T1pos.currentvalue,
list.T2lag.currentvalue,
values.T2pos,
list.rotatet.currentvalue,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,

)



</data>




<page instruct>
^^ Look for the tilted face.
^^ If it is female to the left (top on left) press Z
^^ If it is male to the left (top on rigt) press N
</page>

<page break>
^^ Please take a breather...
</page>

<text correcttext>
/items =("Correct")
/ txcolor = green
</text>

<text errortext>
/items =("Wrong")
/ txcolor = red
</text>

<trial break>
/ timeout = 0
</trial>

<block break>
/preinstructions = (break)
/trials=[1=break]
</block>


<block main>
/preinstructions = (instruct)
/trials=[1-96=noreplace(facestream1)]
</block>

<expt main>
/ onexptbegin = [
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
    
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
    
    var tcounter =0;
    
    while (CT1pos <2);
    {
    WT1pos =     100*(CT1pos +3);
    CT1pos +=1;
    
    while (Crotatet <2);
    {
    Wrotatet =     30*(Crotatet -0.5);
    Crotatet +=1;
    
        while (Cemotion<3);
        {
        Wemotion =     (Cemotion +1);
        Cemotion +=1;
    
            while (Csaliency<2);
            {
            Wsaliency =     (Csaliency +1);
            Csaliency +=1;
            
                while (CT2lag<2);
                {
                WT2lag =     (CT2lag*500)+200;
                CT2lag +=1;
                
                    while (CT1gender<2);
                    {
                    WT1gender =     (CT1gender +1);
                    CT1gender +=1;
                    {
                        while (CT2gender<2);
                        
                        WT2gender =     (CT2gender +1);
                        CT2gender +=1;
                        tcounter +=1;
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

Again, please comment your code. Specifically, the while() loops, since that is what you want help with

Syntax-wise, the whole thing is pretty broken. For example, you have a statement terminater after each while condition

while (CT1pos <2);


No ; belongs there.
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: 13K, Visits: 104K
kev_dent - 11/30/2023
Here is the full script, I am working with.
Basically, my goal is to use var type variables to populate a set of lists, these lists then will go on to control stimulus presentation.
Essentially the issue is that I can not get my code to populate my lists at all.
I copied the code from the programmers manual and can't achieve the same in my code.
Is there an example perhaps in the library that shows how to use var type variables to control stimulus presentation?
Thanks 
Kevin
<list rotate>
/items=(0)
/poolsize =14
/ selectionrate = always
</list>

<values>
/scale = 100
</values>



<list T1pos>
/ selectionrate = trial
/ items = ()


</list>

<list rotatet>
/ selectionrate = trial
/ items = ()
/select = list.T1pos.nextindex
</list>

<list emotion>
/ items = ()

/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list saliency>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2lag>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T1gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list T2gender>
/ items = ()
/ selectionrate = trial
/select = list.T1pos.nextindex
</list>

<list maleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<list femaleselect>
/items = (1,2,3,4,5,6,7,8,9,10,11,12,13)
/ selectionrate = always
</list>

<values>
/T2pos = 0
</values>

<item neutralfemale>
/1="WF01/WF01_NO.jpg"
/2="WF02/WF02_NO.jpg"
/3="WF03/WF03_NO.jpg"
/4="WF04/WF04_NO.jpg"
/5="WF05/WF05_NO.jpg"
/6="WF06/WF06_NO.jpg"
/7="WF07/WF07_NO.jpg"
/8="WF08/WF08_NO.jpg"
/9="WF09/WF09_NO.jpg"
/10="WF10/WF10_NO.jpg"
/11="WF11/WF11_NO.jpg"
/12="WF12/WF12_NO.jpg"
/13="WF13/WF13_NO.jpg"
</item>
<item neutralmale>
/1="WM01/WM01_NO.jpg"
/2="WM02/WM02_NO.jpg"
/3="WM03/WM03_NO.jpg"
/4="WM04/WM04_NO.jpg"
/5="WM05/WM05_NO.jpg"
/6="WM06/WM06_NO.jpg"
/7="WM07/WM07_NO.jpg"
/8="WM08/WM08_NO.jpg"
/9="WM09/WM09_NO.jpg"
/10="WM10/WM10_NO.jpg"
/11="WM11/WM11_NO.jpg"
/12="WM12/WM12_NO.jpg"
/13="WM13/WM13_NO.jpg"
</item>
<item neutralfemaleRED>
/1="WF01/WF01_REDs_NO.jpg"
/2="WF02/WF02_REDs_NO.jpg"
/3="WF03/WF03_REDs_NO.jpg"
/4="WF04/WF04_REDs_NO.jpg"
/5="WF05/WF05_REDs_NO.jpg"
/6="WF06/WF06_REDs_NO.jpg"
/7="WF07/WF07_REDs_NO.jpg"
/8="WF08/WF08_REDs_NO.jpg"
/9="WF09/WF09_REDs_NO.jpg"
/10="WF10/WF10_REDs_NO.jpg"
/11="WF11/WF11_REDs_NO.jpg"
/12="WF12/WF12_REDs_NO.jpg"
/13="WF13/WF13_REDs_NO.jpg"
</item>
<item neutralmaleRED>
/1="WM01/WM01_REDs_NO.jpg"
/2="WM02/WM02_REDs_NO.jpg"
/3="WM03/WM03_REDs_NO.jpg"
/4="WM04/WM04_REDs_NO.jpg"
/5="WM05/WM05_REDs_NO.jpg"
/6="WM06/WM06_REDs_NO.jpg"
/7="WM07/WM07_REDs_NO.jpg"
/8="WM08/WM08_REDs_NO.jpg"
/9="WM09/WM09_REDs_NO.jpg"
/10="WM10/WM10_REDs_NO.jpg"
/11="WM11/WM11_REDs_NO.jpg"
/12="WM12/WM12_REDs_NO.jpg"
/13="WM13/WM13_REDs_NO.jpg"
</item>
<item angryfemale>
/1="WF01/WF01_AO.jpg"
/2="WF02/WF02_AO.jpg"
/3="WF03/WF03_AO.jpg"
/4="WF04/WF04_AO.jpg"
/5="WF05/WF05_AO.jpg"
/6="WF06/WF06_AO.jpg"
/7="WF07/WF07_AO.jpg"
/8="WF08/WF08_AO.jpg"
/9="WF09/WF09_AC.jpg"
/10="WF10/WF10_AO.jpg"
/11="WF11/WF11_AO.jpg"
/12="WF12/WF12_AO.jpg"
/13="WF13/WF13_AO.jpg"
</item>

<item angrymale>
/1="WM01/WM01_AO.jpg"
/2="WM02/WM02_AO.jpg"
/3="WM03/WM03_AO.jpg"
/4="WM04/WM04_AO.jpg"
/5="WM05/WM05_AO.jpg"
/6="WM06/WM06_AO.jpg"
/7="WM07/WM07_AO.jpg"
/8="WM08/WM08_AO.jpg"
/9="WM09/WM09_AO.jpg"
/10="WM10/WM10_AO.jpg"
/11="WM11/WM11_AO.jpg"
/12="WM12/WM12_AO.jpg"
/13="WM13/WM13_AO.jpg"
</item>

<item fearfemale>
/1="WF01/WF01_FO.jpg"
/2="WF02/WF02_FO.jpg"
/3="WF03/WF03_FO.jpg"
/4="WF04/WF04_FO.jpg"
/5="WF05/WF05_FO.jpg"
/6="WF06/WF06_FO.jpg"
/7="WF07/WF07_FO.jpg"
/8="WF08/WF08_FO.jpg"
/9="WF09/WF09_FO.jpg"
/10="WF10/WF10_FO.jpg"
/11="WF11/WF11_FO.jpg"
/12="WF12/WF12_FO.jpg"
/13="WF13/WF13_FO.jpg"
</item>
<item fearmale>
/1="WM01/WM01_FO.jpg"
/2="WM02/WM02_FO.jpg"
/3="WM03/WM03_FO.jpg"
/4="WM04/WM04_FO.jpg"
/5="WM05/WM05_FO.jpg"
/6="WM06/WM06_FO.jpg"
/7="WM07/WM07_FO.jpg"
/8="WM08/WM08_FO.jpg"
/9="WM09/WM09_FO.jpg"
/10="WM10/WM10_FO.jpg"
/11="WM11/WM11_FO.jpg"
/12="WM12/WM12_FO.jpg"
/13="WM13/WM13_FO.jpg"
</item>

<item angryfemaleRED>
/1="WF01/WF01_REDs_AO.jpg"
/2="WF02/WF02_REDs_AO.jpg"
/3="WF03/WF03_REDs_AO.jpg"
/4="WF04/WF04_REDs_AO.jpg"
/5="WF05/WF05_REDs_AO.jpg"
/6="WF06/WF06_REDs_AO.jpg"
/7="WF07/WF07_REDs_AO.jpg"
/8="WF08/WF08_REDs_AO.jpg"
/9="WF09/WF09_REDs_AC.jpg"
/10="WF10/WF10_REDs_AO.jpg"
/11="WF11/WF11_REDs_AO.jpg"
/12="WF12/WF12_RED_AO.jpg"
/13="WF13/WF13_RED_AO.jpg"
</item>

<item angrymaleRED>
/1="WM01/WM01_REDs_AO.jpg"
/2="WM02/WM02_REDs_AO.jpg"
/3="WM03/WM03_REDs_AO.jpg"
/4="WM04/WM04_REDs_AO.jpg"
/5="WM05/WM05_REDs_AO.jpg"
/6="WM06/WM06_REDs_AO.jpg"
/7="WM07/WM07_REDs_AO.jpg"
/8="WM08/WM08_REDs_AO.jpg"
/9="WM09/WM09_REDs_AO.jpg"
/10="WM10/WM10_REDs_AO.jpg"
/11="WM11/WM11_REDs_AO.jpg"
/12="WM12/WM12_REDs_AO.jpg"
/13="WM13/WM13_REDs_AO.jpg"
</item>

<item fearfemaleRED>
/1="WF01/WF01_REDs_FO.jpg"
/2="WF02/WF02_REDs_FO.jpg"
/3="WF03/WF03_REDs_FO.jpg"
/4="WF04/WF04_REDs_FO.jpg"
/5="WF05/WF05_REDs_FO.jpg"
/6="WF06/WF06_REDs_FO.jpg"
/7="WF07/WF07_REDs_FO.jpg"
/8="WF08/WF08_REDs_FO.jpg"
/9="WF09/WF09_REDs_FO.jpg"
/10="WF10/WF10_REDs_FO.jpg"
/11="WF11/WF11_REDs_FO.jpg"
/12="WF12/WF12_RED_FO.jpg"
/13="WF13/WF13_RED_FO.jpg"
</item>
<item fearmaleRED>
/1="WM01/WM01_REDs_FO.jpg"
/2="WM02/WM02_REDs_FO.jpg"
/3="WM03/WM03_REDs_FO.jpg"
/4="WM04/WM04_REDs_FO.jpg"
/5="WM05/WM05_REDs_FO.jpg"
/6="WM06/WM06_REDs_FO.jpg"
/7="WM07/WM07_REDs_FO.jpg"
/8="WM08/WM08_REDs_FO.jpg"
/9="WM09/WM09_REDs_FO.jpg"
/10="WM10/WM10_REDs_FO.jpg"
/11="WM11/WM11_REDs_FO.jpg"
/12="WM12/WM12_REDs_FO.jpg"
/13="WM13/WM13_REDs_FO.jpg"
</item>

<item scrambledneutral>
/1="Scrm_data_KD/WF01_NO_S.jpg"
/2="Scrm_data_KD/WF02_NO_S.jpg"
/3="Scrm_data_KD/WF03_NO_S.jpg"
/4="Scrm_data_KD/WF04_NO_S.jpg"
/5="Scrm_data_KD/WF05_NO_S.jpg"
/6="Scrm_data_KD/WF06_NO_S.jpg"
/7="Scrm_data_KD/WF07_NO_S.jpg"
/8="Scrm_data_KD/WF08_NO_S.jpg"
/9="Scrm_data_KD/WF09_NO_S.jpg"
/10="Scrm_data_KD/WF10_NO_S.jpg"
/11="Scrm_data_KD/WF11_NO_S.jpg"
/12="Scrm_data_KD/WF12_NO_S.jpg"
/13="Scrm_data_KD/WF13_NO_S.jpg"
/14="Scrm_data_KD/WM01_NO_S.jpg"
/15="Scrm_data_KD/WM02_NO_S.jpg"
/16="Scrm_data_KD/WM03_NO_S.jpg"
/17="Scrm_data_KD/WM04_NO_S.jpg"
/18="Scrm_data_KD/WM05_NO_S.jpg"
/19="Scrm_data_KD/WM06_NO_S.jpg"
/20="Scrm_data_KD/WM07_NO_S.jpg"
/21="Scrm_data_KD/WM08_NO_S.jpg"
/22="Scrm_data_KD/WM09_NO_S.jpg"
/23="Scrm_data_KD/WM10_NO_S.jpg"
/24="Scrm_data_KD/WM11_NO_S.jpg"
/25="Scrm_data_KD/WM12_NO_S.jpg"
/26="Scrm_data_KD/WM13_NO_S.jpg"
</item>
<list scramselect>
/ items = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26)

/ selectionrate = always
</list>

<picture distractor1>
/ items = scrambledneutral
/ selectionrate = always
/ size= (values.scale-0mm,values.scale-0mm)
/ select = list.scramselect.nextvalue
</picture>

<picture distractor2>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor3>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor4>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor5>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor6>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor7>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor8>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor9>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor10>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor11>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor12>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture distractor13>
/ items = scrambledneutral
/ selectionrate = always
/ select = list.scramselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angryfemaleRED>
/ items = angryfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture angrymaleRED>
/ items = angrymaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemaleRED>
/ items = fearfemaleRED
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture fearmaleRED>
/ items = fearmaleRED
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angryfemale>
/ items = angryfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture angrymale>
/ items = angrymale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearfemale>
/ items = fearfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture fearmale>
/ items = fearmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>
<picture neutralmalet>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)
</picture>

<picture neutralfemalet>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)
/rotation = (list.rotatet.nextvalue)

</picture>

<picture neutralfemale>
/ items = neutralfemale
/ selectionrate = always
/ select =list.femaleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<picture neutralmale>
/ items = neutralmale
/ selectionrate = always
/ select =list.maleselect.nextvalue
/ size= (values.scale-0mm,values.scale-0mm)

</picture>

<shape blank>
/shape =rectangle
/color = (white)
/ size = (100%, 100%)
</shape>


<trial facestream1>
/ontrialbegin =[

list.scramselect.reset();
list.maleselect.reset();
list.femaleselect.reset();
trial.facestream1.clearstimulusframes();
values.T2pos=list.T1pos.nextvalue + list.T2lag.nextvalue;
trial.facestream1.setstimulustime(shape.blank, 100*1);
trial.facestream1.setstimulustime(shape.blank, 200*1);
trial.facestream1.setstimulustime(shape.blank, 300*1);
trial.facestream1.setstimulustime(shape.blank, 400*1);
trial.facestream1.setstimulustime(shape.blank, 500*1);
trial.facestream1.setstimulustime(shape.blank, 600*1);
trial.facestream1.setstimulustime(shape.blank, 700*1);
trial.facestream1.setstimulustime(shape.blank, 800*1);
trial.facestream1.setstimulustime(shape.blank, 900*1);
trial.facestream1.setstimulustime(shape.blank, 1000*1);
trial.facestream1.setstimulustime(shape.blank, 1100*1);
trial.facestream1.setstimulustime(shape.blank, 1200*1);
trial.facestream1.setstimulustime(shape.blank, 1300*1);
trial.facestream1.insertstimulustime(picture.distractor1, 100*1);
trial.facestream1.insertstimulustime(picture.distractor2, 200*1);
trial.facestream1.insertstimulustime(picture.distractor3, 300*1);
trial.facestream1.insertstimulustime(picture.distractor4, 400*1);
trial.facestream1.insertstimulustime(picture.distractor5, 500*1);
trial.facestream1.insertstimulustime(picture.distractor6, 600*1);
trial.facestream1.insertstimulustime(picture.distractor7, 700*1);
trial.facestream1.insertstimulustime(picture.distractor8, 800*1);
trial.facestream1.insertstimulustime(picture.distractor9, 900*1);
trial.facestream1.insertstimulustime(picture.distractor10, 1000*1);
trial.facestream1.insertstimulustime(picture.distractor11, 1100*1);
trial.facestream1.insertstimulustime(picture.distractor12, 1200*1);
trial.facestream1.insertstimulustime(picture.distractor13, 1300*1);
trial.facestream1.insertstimulustime(shape.blank, 1400*1);

trial.facestream1.setstimulustime(shape.blank, values.T2pos);
if (list.T2gender.nextvalue==1)
trial.facestream1.insertstimulustime(picture.neutralfemalet, values.T2pos)
else if (list.T2gender.nextvalue==2)
trial.facestream1.insertstimulustime(picture.neutralmalet, values.T2pos);
trial.facestream1.setstimulustime(shape.blank, list.T1pos.nextvalue);


if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.neutralfemale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.angryfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==1)
trial.facestream1.insertstimulustime(picture.fearfemaleRED, list.T1pos.nextvalue);

if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==1 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.neutralmale, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 1 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.angrymaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 2 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue)
else if (list.emotion.nextvalue == 3 && list.saliency.nextvalue==2 && list.T1gender.nextvalue ==2)
trial.facestream1.insertstimulustime(picture.fearmaleRED, list.T1pos.nextvalue);
]
/stimulustimes =[
]
/ validresponse = (44,49)
/ inputdevice = keyboard
/ iscorrectresponse = [(list.T2gender.nextvalue==2 && trial.facestream1.response == 49)||(list.T2gender.nextvalue==1 && trial.facestream1.response == 44)]

</trial>

<data>
/ columns = (
date,
time,
group,
subject,
trialcode,
blockcode,
blocknum,
trialnum,
latency,
response,
responsetext,
list.T1gender.currentvalue,
list.T2gender.currentvalue,
list.emotion.currentvalue
list.saliency.currentvalue,
list.T1pos.currentvalue,
list.T2lag.currentvalue,
values.T2pos,
list.rotatet.currentvalue,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,
stimulusitem,

)



</data>




<page instruct>
^^ Look for the tilted face.
^^ If it is female to the left (top on left) press Z
^^ If it is male to the left (top on rigt) press N
</page>

<page break>
^^ Please take a breather...
</page>

<text correcttext>
/items =("Correct")
/ txcolor = green
</text>

<text errortext>
/items =("Wrong")
/ txcolor = red
</text>

<trial break>
/ timeout = 0
</trial>

<block break>
/preinstructions = (break)
/trials=[1=break]
</block>


<block main>
/preinstructions = (instruct)
/trials=[1-96=noreplace(facestream1)]
</block>

<expt main>
/ onexptbegin = [
    var Crotatet = 0;
    var Cemotion = 0;
    var Csaliency = 0;
    var CT2lag = 0;
    var CT1gender = 0;
    var CT2gender = 0;
    var CT1pos = 0;
    
    var Wrotatet = 0;
    var Wemotion = 0;
    var Wsaliency = 0;
    var WT2lag = 0;
    var WT1gender = 0;
    var WT2gender = 0;
    var WT1pos = 0;
    
    var tcounter =0;
    
    while (CT1pos <2);
    {
    WT1pos =     100*(CT1pos +3);
    CT1pos +=1;
    
    while (Crotatet <2);
    {
    Wrotatet =     30*(Crotatet -0.5);
    Crotatet +=1;
    
        while (Cemotion<3);
        {
        Wemotion =     (Cemotion +1);
        Cemotion +=1;
    
            while (Csaliency<2);
            {
            Wsaliency =     (Csaliency +1);
            Csaliency +=1;
            
                while (CT2lag<2);
                {
                WT2lag =     (CT2lag*500)+200;
                CT2lag +=1;
                
                    while (CT1gender<2);
                    {
                    WT1gender =     (CT1gender +1);
                    CT1gender +=1;
                    {
                        while (CT2gender<2);
                        
                        WT2gender =     (CT2gender +1);
                        CT2gender +=1;
                        tcounter +=1;
                        list.rotatet.appenditem(Wrotatet);
                        list.emotion.appenditem(Wemotion);
                        list.saliency.appenditem(Wsaliency);
                        list.T2lag.appenditem(WT2lag);
                        list.T1gender.appenditem(WT1gender);
                        list.T2gender.appenditem(WT2gender);
                        list.T1pos.appenditem(WT1pos);
                        }}}}}}}
]

/blocks = [1=main;2=break;3=main;4=break;5=main]
</expt>

Again, please comment your code. Specifically, the while() loops, since that is what you want help with
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search