OS: macOS Big Sur 11.5.2
Psychopy standalone version: 2022.2.2
Hi,
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']
rather than
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 = 10
andnBackTrials = 4
rather thantotalTrials = 20
andnBackTrials = 5
.
But this is not what I want for the task.
Could anyone helps?
My kindest regards to everyone,
Chuan
nback_lastrun.py (48.9 KB)
nBack.psyexp (52.8 KB)
nBack.py (49.0 KB)
tBlockList.xlsx (8.8 KB)