How to set number of cycles of a loop without manually defining independent variables in loop table?
Hi,
I am a very beginner to Opensesame. I have installed Opensesame 3.2.5 to create a self paced reading test.
After reading a .txt file of sentences and storing these sentences in a variable sentences_list in a inline script. I want to create a loop that shows each sentence in a sequential way. I can do that manually by defining an independent variable sentence_index in the loop table and show each sentence like this:
exp.set('current_sentence',sentences_list[exp.sentence_index])
My question is how can I do this without manually defining the independent variable in the loop table? In the inline script, I can get the total number of sentences. But I don't know how to set the number of cycles of loop to the number of sentences.
I tried to set the number of repeat and cycles in the inline sccript like this:
self.experiment.items["sentences_loop"].var.repeat = 3
self.experiment.items["sentences_loop"].var.cycles = 3
It seems to work with the number of repeat. But the number of cycles is still 1.
Thank you very much.
Comments
My current approach is manually defining the independent variable
sentence_indexwith the number of row much higher than the number of sentences (which changes according to the .txt file). Then, I set the 'break if' condition as[sentence_index]>[numsens]-1wherenumsensis the variable containing the number of sentences defined in the inline script before:exp.set('numsens',len(sentences_list))I also have another approach. Since I can set the variable
repeatof the loop. I can set this variable to the number of sentences. Then I leave an empty loop table, which results in the number of cycles being 1. Then I have a loop with 1 cycles andnumsensrepeat. Then I will need to access some variable which indicates the current repeat index to show the corresponding sentence in the sentence list. I don't know if it works or not.have you tested it? Why shouldn't it work?
Eudard
Hi Eudard,
I didn't test the second approach since the first one worked well for me. Also, that approach requires the access to the current repeat index variable which I didn't find how to do.
JamesDo