OS: macOS Big Sur 11.5.2
Psychopy standalone version: 2022.2.2
I’m adapting an n-back task published by Rebecca Hirst on this site. My goal is to include three different conditions in this task (i.e., 0-back, 1-back, and 2-back conditions) to randomly present numbers 0-9. There are 20 trials for each condition (15 non-n-back trials and 5 n-back trials), and each condition is presented in one block separately. The 0-back condition works but there is an error message popped up when I ran the 1-back condition.
My files have been attached and the following code is what I modified from the original code in the Begin Routing tab for the 1-back condition:
thisTrialType = p1TrialList[trialCount] thisNumber = "0" corrAns = '0' numberSet = p12AllNumbers if thisTrialType == 0: # not an 1-back trial if len(p1NumbersShown) > p1n: # do not select the number n-back numberSet.remove(p1NumbersShown[-p1n]) shuffle(numberSet) thisNumber = numberSet[-1] corrAns = 'None' elif thisTrialType == 1: # an 1-back trial thisNumber = p1NumbersShown[-p1n] corrAns = 'l' p1NumbersShown.append(thisNumber) thisExp.addData('cond', 'p1') thisExp.addData('trialCount', trialCount) thisExp.addData('itemPresented', thisNumber) thisExp.addData('trialType', thisTrialType) thisExp.addData('corrAns', corrAns)
However, I got the following error message:
File "/Users/chiachuanyu/My Drive/Psychopy/Dissertation/nBack/nBack_lastrun.py", line 787, in <module> thisNumber = numberSet[-1] IndexError: list index out of range
I’m not familier with Python coding and I’ve tried several ways to sole this problem. There are two ways partly solve this issue:
In the Begin Experiment code, put
p12AllNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
p12AllNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'].
But this would result in consecutively repeated numbers in both n-back and non-n-back trials.
In the Begin Experiment code in the routine named p0Ins, set
totalTrials = 10and
nBackTrials = 4rather than
totalTrials = 20and
nBackTrials = 5.
But this is not what I want for the task.
Could anyone helps?
My kindest regards to everyone,