2015-08-26 3 views
0

У меня есть компонент эксперимента, который просит участников выбрать между получением 10 ближайших пунктов или большей суммой за две недели (очки позже преобразуются в доллары, чтобы стимулировать выбор «более крупный»). Более поздняя предлагаемая сумма зависит от предыдущих вариантов. Участнику дается обратная связь по выбору, который он только что сделал в следующей рутине. Чтобы установить это, я создал это в компоненте кода в строитель:Психопатия: ключевой отклик ответа, вызывающий проблемы в сценарии

if key_resp_4.keys == 'left': 
    feedback = 'You chose 10 points immediately' 
    TotalNow = TotalNow + 10 
    add = (amount - 10)/2 
    amount = add + amount 
elif key_resp_4.keys == 'right': 
    feedback = 'You chose more points in two weeks' 
    TotalLater = TotalLater + amount 
    amount = (amount + 10)/2 
elif key_resp_4.keys in ['', [], None]: 
    feedback = 'You did not make a choice. No reward given.' 
    amount = amount 

«количество» переменная формирует числовое значение, которое обновляется на основе левого или правого ответа. «TotalNow» и «TotalLater» отслеживают общие баллы, полученные за каждое условие, и отображаются на следующем экране. Эти переменные работают нормально.

Моя проблема заключается в переменной обратной связи. Я несколько раз просматривал сценарий, чтобы лучше понять, что происходит. Для большинства испытаний (хотя и не для всех) - независимо от того, сделаю ли я клавишу нажатия клавиши - экран обратной связи печатает сообщение, предназначенное для ответа: «Вы не сделали выбор ...» Вот странный часть. На экране обратной связи переменные «TotalNow»/«TotalLater» отображают значения точек, указывающие на то, что я сделал ключевой ответ, хотя текстовая переменная «обратная связь» сообщает, что я этого не сделал. Далее, в следующем испытании корректно отображается обновленная «сумма».

Следовательно, существует некоторая связь между ответом ключа и результатом, отображаемым переменной «обратная связь» в следующей процедуре. Я подозреваю, что ключевой ответ может быть отстающим. Я подозреваю это, потому что обнаружил, что я могу сделать два ключевых ответа в одном испытании (о чем свидетельствуют дополнительные точки, появляющиеся в итоговой сумме, показанной в следующей процедуре). Я установил компонент ответа на ключевые слова для принудительного завершения процедуры, сохранил только первый ключ и отменил любые предыдущие ответы. Однако даже с этими настройками можно сделать два ответа.

Есть ли у кого-нибудь идеи относительно того, почему происходят эти события? Я сам это озадачил. Буду признателен за любую оказанную помощь.

-Бен

+1

Существует несколько возможных объяснений. Является ли компонент кода в рутине после key_resp_4? Является ли он в верхней части подпрограммы или в более ранней рутине, чем текст, который отображает «обратную связь» и «сумму»? Если нет ни одному из них, попробуйте сделать это. –

+0

Компонент кода был установлен для запуска в конце процедуры, которая собирает key_resp_4. Я переместил компонент кода в начало следующей процедуры, которая отображает переменную обратной связи. Сумма просто обновляется для целей следующего цикла. После этого изменения проблема сохраняется аналогичным образом. Похоже, что компонент клавиатуры медленно запускается. Рассматриваемая процедура длится в течение одной секунды, и элемент клавиатуры редко срабатывает только после одного нажатия (как предполагается), если оно не будет нажато ближе к концу одной секунды. –

+0

Если вы считаете, что это поможет, я могу добавить код, который PsychoPy компилирует относительно инициализации key_resp_4 в рутине. –

ответ

0

Это довольно неудовлетворительный ответ, но я первый решен вопрос, следуя совету Джонаса, а затем, удалив посторонний цикл, который стал устаревшим через программирование эксперимента. Это не отвечает конкретно на вопрос о том, почему ключевой отклик был отстающим, но, похоже, сейчас он хорошо работает.

 Смежные вопросы

  • Нет связанных вопросов^_^