2017-03-15 5 views
0

私の実験用の関数をコーディングして、中央の色付きの四角の上に2つのラベルを表示しようとしています。被験者は、上記のラベルの1つで色を分類するために、左または右のいずれかを押す必要があります。ループ内の精度を確認するにはどうすればよいですか?

精度= 1の場合、実験では選択肢が正しいことを示す情報テキストが表示され、精度が0の場合は逆になることがループ内でコード化したいと考えています。元のループに戻り、その後繰り返す必要があります。

どうすればよいですか?

# make a function for one trial of colour practice 
def con1_trial(self): 
    global trial 
    global key 
    trial += 1 
    target_colour = random.choice(colours) 

    # show one square with gouloboy colour in top right corner of screen 
    col3rec.setFillColor(target_colour) 
    col3rec.draw() 
    sinij_text.draw() 
    boy_text.draw() 

    # draw and flip 
    win.flip() 

    key, test_answer = event.waitKeys(keyList=['right', 'left', 'escape'], timeStamped = True)[0] 
    for colour_pair in colour_pairs: 
     if test_colour == colours[0] and key == "left": 
      accuracy = 1 
     elif test_colour == colours[1] and key == "right": 
      accuracy = 1 
     elif key == 'escape': 
      core.quit() 
     else: accuracy = 0 

    # records time in ms 
    rt = (test_answer - test_start)*1000 
    return accuracy, rt 
+0

誰かがグローバル変数の使用を中止します。私は神の恵みのその瞬間を目の当たりにするのに十分長く生きていけばいいと思っています。 –

答えて

0

です:

# Show feedback 
if accuracy == 1: 
    show_feedback('Correct! Well done. Press a key to continue...') 
elif accuracy == 0: 
    show_feedback('Wrong! Press a key to continue...') 
:あなたのコードに続いて

feedback_text = visual.TextStim(win) 
def show_feedback(feedback): 
    # Show feedback on screen 
    feedback_text.text = feedback 
    feedback_text.draw() 
    win.flip() 

    # Wait for key 
    event.waitKeys() 

はこの何かを追加します

...正しいレベルのインデントで。私はいつもメッセージを表示するための何らかの機能を持っています。 show_feedbackでは、実験を中止するために何かを追加することもできます。

key = event.waitKeys()[0] # get first key pressed 
if key == 'escape': 
    core.quit() 
+0

ありがとう、これは非常に便利でした。 –

+0

スクリプトで定義と関数をコーディングした後、完全にフリーズしましたが... –

0

トライアルとは、色を選んだり、図を描画したり、入力を待ったり、回答を記録したりすることです。ここ は、最初のスクリプトのどこかに、以前のフィードバック機能を定義し、コードがきちんと作るためにいくつかの擬似コード

def trial(): 
    color = random.choice(colours) 
    # draw stuff 
    # set time start 
    # wait for key press 
    # check if key press correct 
    # print whether they were correct and the time 
    if enter pressed: trial() 
関連する問題