If this template helps then use it. If not then just delete and start from scratch.
OS (e.g. Win10): Win10
PsychoPy version (e.g. 1.84.x): 2022.2.3
Standard Standalone? (y/n) If not then what?: y
What are you trying to achieve?: Pseudorandomize trials so that no more than 2 consecutive trials of the same type occur
What did you try to make it work?: Used custom function adapted from Pseudo-randomization of stimuli trials in a loop - #3 by miguel_santin
**What specifically went wrong when you tried that?:**IndexError: list index out of range
Hi everyone,
I found all previous discussions on the topic of pseudorandomization and still didn’t find an answer. I have twelve lists with conditions that need to be pseudorandomized on the fly so that no more than 2 consecutive trials of the same type appear. I cannot generate different lists and then play them in a sequential order because I already have twelve lists, so creating multiple versions of each of them is unfeasible. Now, I used this function to achieve my goal:
Begin Experiment
import random
def pseudoRand(excelFile):
# Load trials
trials=data.importConditions(excelFile)
conditionMet = False
# Pseudo-randomize trials
while conditionMet == False:
random.shuffle(trials)
conditions = []
for row in range(len(trials)):
conditions.append(trials[row]["sentence_cond"]) #Name of the conditions type column
# Condition for pseudo-randomization: No more than 2 consecutive of the same type
for row in range(len(trials) - 2):
if trials[row]["sentence_cond"] == trials[row + 2]["sentence_cond"]:
conditionMet = False
break
else:
conditionMet = True
# Save the final order of the trials
customOrder = []
for row in range(len(trials)):
customOrder.append(trials[row]["stim_order"]) #Name of the original index column
return customOrder
And I have $pseudoRand(“ListA3.xlsx”) in my Selected Rows and ListA3.xlsx in Conditions.
Every time I try to run the experiment it crashes with this error:
Traceback (most recent call last):
48
2.9702 WARNING C:\Users\User\AppData\Roaming\psychopy3\fonts\Helvetica.truetype doesn't have valid font family name
3.0705 WARNING C:\Users\User\AppData\Roaming\psychopy3\fonts\Helvetica.truetype doesn't have valid font family name
0.8728 WARNING Monitor specification not found. Creating a temporary one...
File "G:\My Drive\World knowledge\PsychoPy experiment\WK_LAB - Copy_lastrun.py", line 1352, in <module>
trialList=data.importConditions('ListA3.xlsx', selection=pseudoRand("ListA3.xlsx")),
File "C:\Program Files\PsychoPy\lib\site-packages\psychopy\data\utils.py", line 463, in importConditions
trialList.append(allConds[int(ii)])
IndexError: list index out of range
################ Experiment ended with exit code 1 [pid:27640] #################
Does somebody know what could possibly be causing this? I tried disabling different components but nothing works, the problem is clearly with the function.