Мне нужен эксперимент, который отображает набор случайных точек, а затем просит пользователя ввести правильное количество точек, которые они видели. Я хочу, чтобы эксперимент зациклился. Я могу заставить это работать для 1 итерации, но что-то не так с циклом, потому что окно и диалог сталкиваются, или окно не закрывается должным образом. При запуске этого скрипта Psychopy в настоящее время графический интерфейс зависает. Я пробовал как python3, так и python2 с моим кодом.
import random
import psychopy.visual
import psychopy.event
import psychopy.core
from psychopy import gui
import time
while True:
win = psychopy.visual.Window(
size=[500, 500],
units="pix",
fullscr=False
)
myDlg = gui.Dlg(title="Response")
n_dots = random.randint(5, 200)
dot_xys = []
for dot in range(n_dots):
dot_x = random.uniform(-250, 250)
dot_y = random.uniform(-250, 250)
dot_xys.append([dot_x, dot_y])
dot_stim = psychopy.visual.ElementArrayStim(
win=win,
units="pix",
nElements=n_dots,
elementTex=None,
elementMask="circle",
xys=dot_xys,
sizes=10,
contrs=random.random(),
)
dot_stim.draw()
win.flip()
psychopy.event.clearEvents()
time.sleep(4)
win.close()
myDlg.addField('How many dots did you see?')
number = myDlg.show()
if myDlg.OK:
print(number)
myDlg.close()
psychopy.core.quit()
Я использую последнюю версию Psychopy. Пожалуйста, дайте мне знать, если у вас есть какие-либо предложения. Спасибо!