Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Pseudorandomization with a fixed Trial at the End

Hi all,

I'm currently designing an experiment on Opensesame and I would like to create a loop where all trials are pseudorandomized by using the "mindist" constrain. That works like charm (Thanks for adding that handy feature, sebastiaan!), but the problem is that I would like to add a trial at the end and make sure that is always the last trial of the loop.

So far I've been trying to use an empty column in the variable table of the loop where only the intended-last-trial has a value. This way, in the script of the loop, I use the "sortby" command with the empty column and then the "roll" command with a -1 value to have the intended-last-trial not at the begining but at the very end of the loop. This also works good but since it re-orders the trials, the pseudorandomization constrain doesn't work anymore. The trials are fully randomized and with the specific trial at the end.

Any ideas of how could I combine both constrains or how could I insert the trial at the end of the loop after the pseudorandomization?

Thanks a lot!



  • Hi Javi,

    Based on this information i can imagine two possible solutions:

    1. If your final fixed trial does not contain a variable at all (i.e. the stimuli during this trial are always the same) it might be an idea to present this trial separate from your pseudorandomized loop. This solution can be easily done within the GUI but the downside is that your fixed trial needs to be absolutely the same, regardless of your participant etc.

    2. If your final trial does contain a variable you could add an inline script at the end of your sequence that will overwrite the final trial from your loop with your fixed trial. That inline script will need to count whether the final trial has been reached and, if so, replace the stimuli with your fixed trial.

    Let me know if this was of any help!


  • Hi Laurent,

    Thanks for your response! Yes, I could try to separate the last trial from the rest of the loop, that would make things easier, as you say. I'll try and I'll tell you what happens.
    However, in the alternative solution (your second solution), I would be overwriting another trial. Isn't there any other solution withour having to overwrite a trial or something that duplicates that last trial so that I don't lose it?


Sign In or Register to comment.