Threshold-contingent learning?

I’m interested in implementing a category-learning paradigm such that some large number of trials are presented until the subject reaches some accuracy threshold – e.g., 20 trials correct in a row. However, I do not want to repeat trials. I want each trial to be presented only once. After each two-alternative forced-choice, they should receive the appropriate feedback before the next new trial. After enough correct responses in a row, then the block should terminate.

I am having a difficult time figuring out how to implement this, although I know it has to involve some combination of the Block-level “When to run” and “Macro” dialogues, the Trial-level “When to present” dialogue, and the Event feedback.

So far, I can set up a dummy code that gets set to “yes” for each correct response, and then use conditional branching to specify that, for the Trials with the “yes” code, if for the last 20 trials, the number of “yes” trials is equal to 20, then it should go to the next Block. I think this works well enough (although this has been complicated enough that I’m not super-confident that I’m doing this right). The problem, however, is what to do if that criterion is not met. The options only seem to be to Go to another Block, Repeat the current Block, Repeat the current Trial, or skip the next Trial. There isn’t an option for “go to the next Trial.” Is the right thing to do just leave that blank? Any ideas? Thanks in advance!

You’re on the right path. If you tell SuperLab to go to the next block when the criteria is met but don’t tell it to do anything explicitly if the criteria is not met, then the next trial in the block will be presented automatically.