URL of experiment:
Description of the problem: I am making a learning experiment. Briefly, the participants see various images of scenes with an embedded star. Simply, participants have to use their mouse to click on the star in each trial. I have a .csv file with 4 columns (Image, StarX, StarY, Side) and because I dont want every participant to see the star in the same location within each scene I have added a code component at the very beginning of the experiment which shuffles the list of StarX and StarY:
import csv
f = csv.reader(open('Learning.csv'))
Images, StarX, StarY, Side= zip(*f)
StarX = list(StarX) # convert the tuple to a list to make it editable
header_x = StarX.pop(0) # remove the header item
shuffle(StarX) # randomise the actual values
StarX.insert(0, header_x) # restore the header at the top
StarY = list(StarY) # convert the tuple to a list to make it editable
header_y = StarY.pop(0) # remove the header item
shuffle(StarY) # randomise the actual values
StarY.insert(0, header_y) # restore the header at the top
subjectID=expInfo['participant']
sessionID=expInfo['session']
# create a file name based on those variables
filename1=subjectID + '_' + sessionID + '.csv'
with open(filename1, 'w') as w:
writer = csv.writer(w)
for i in range(len(Images)):
writer.writerow([Images[i], StarX[i], StarY[i], Side[i]])
The code attached above when run locally creates a filename1 which I then specify as variable ($filename1) in the properties tab of my experimental loop. The problem is that this file, as expected, is not generated when the experiment runs online, so my loop doesn’t have access to the conditon file.
So,is there another way I could shuffle the x,y coordinates (StarX, StarY) that works online?
Thanks in advance.