Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

Show feedback/previous responses in a form

Hi there!

I'm busy with designing an experiment in OpenSesame, of which I am not sure is feasible in OpenSesame.
The task I want my participants to perform is the Wason rule discovery task or 2-4-6 problem. In this task they will receive a certain triplet of numbers, and they have to guess which mathematical rule applies to this sequence. For example, participants get the sequence 2-4-6, and the rule they have to discover is 'numbers must be in ascending order'. To discover the rule participants should be able to propose triplets and get feedback on whether this triplet conforms to the rule or not. So far, I have made a form in which the participants can insert a triplet via text-input boxes, and they get feedback on whether their triplet conforms to the rule. However, when they go to the next triplet input, I want their previous answers to stay on the screen (so they have an overview of all the triplets they have already proposed).

Any idea how I can manage to show all the previous responses in the form?
I attached the experiment I designed thus far to this post.

Thanks in advance for your help!

Comments

  • Hi Meike,

    Attached a script that should be useful. Basically, I added the responses to a preinitialized list. And on every trial, the list is looped through and the responses are printed line by line.

    Hope this helps.

    Eduard

  • Hi Eduard,

    Yes, this was exactly what I wanted, thank you so much! :)

    However, I have a follow-up question on this matter. I want my participants to be able to propose triplets (responses) until they either click a button or when a specific amount of time has passed. I have two problems with solving this issue.

    1) How do I reset the list with saved responses to an empty list again when the screen is full? (all columns and rows have been used for previous responses. I then want to clear the list, so they can start with an empty screen again). I already tried changing the lists again to an empty list when a certain row is reached, however if I only change it for that row (e.g. if var.row == 9), in the next row I will have the full list again. And when I change it for rows higher than a certain row (e.g. if var.row > 9) then I will empty my list every time and my responses won't be shown on the screen anymore.

    2) I want participants to be able to propose triplets for max. 10 minutes. Then they should move on to another screen. How can I achieve this? I already tried to use the clock item, but then I only obtain the time on specific moments and the time inbetween is not measured. So I'm looking for a timer function which starts when the task begins and ends when the 10 minutes is reached. However, because I use a loop in my task, the time will be restarted each time one sequence is run. How to solve this, also without making the task very slow due to processing the time?

    Hope you can help me out!

  • Hi,

    1) How do I reset the list with saved responses to an empty list again when the screen is full?

    Don't use the rows to decide when I list is to be reset, but the length of the list.
    For example:

    if len(list) == 8:
         list = []
    

    2) I want participants to be able to propose triplets for max. 10 minutes. Then they should move on to another screen

    If you subtract the time stamp of one moment from another, you have a duration. So, before you start a certain question, begin counting: starttime = clock.time(), then during the trial, keep on checking the passed time and decide to break the trial when a certain time has passed:

    time_passed = clock.time()-starttime
    if time_passed>600000: # 10 min, I think
         break # only works if you are in a loop, if you are not in a loop, just make sure that openessame proceeds with the next question, or item in the sequence. 
    

    Does that make sense?

    Eduard

Sign In or Register to comment.