跟着ChatGPT学PsychPy编程4:解决按键缓冲问题/合理使用Begin与End Routine/多方面灵活解决问题

news/2024/11/15 3:54:33/

问题1. 按键有缓冲

关于按键任务是怎么回事,见#跟着ChatGPT学PsychoPy编程系列1。

当我把该任务放到整个程序中时,具体来说,该任务出现在被试做完决策以及屏幕上呈现完“按键准备”的字样时。该任务一出现被试就要开始按键,时间限定为3秒,时间结束屏幕上出现被试的奖赏反馈信息,接着进入下一个试次。

bug问题描述:

然而,当我测试程序时,不论是在按键任务前按了空格键(比如在决策过程以及准备信息提示过程)还是在按键任务结束后(比如奖赏反馈过程)按了空格键,当来到按键阶段时,进度条已经增长了按一次空格增长的高度。按键任务之前的按空格键的操作会影响当前试次,之后的按空格键的操作会影响下一个试次。且不论提前或延后多按几下,都只会让进度条增长一下。

当我询问GPT这个问题,它反馈说我额外的按空格键的操作(按键任务前后,不包括按键过程中多按的)在键盘事件缓冲区有了记录,于是可以用一句代码来清除:

#清除键盘事件缓冲区中的按键记录
event.clearEvents(eventType='keyboard')

进一步解释:

-event.clearEvents(eventType='keyboard') 函数用于清除键盘事件缓冲区中的事件记录,而不是特定键的事件记录。

-当我们指定 eventType='keyboard' 时,它会清除键盘事件缓冲区中所有键的事件记录,包括空格键以及其他按键。

当我把这串代码按GPT的指示放在按键循环之上是,印象中开始没什么问题。但运行过几次或又小调了代码之后(或许是由于改过之后没有保存),总之,之后又出现了新的bug。见#问题2。


问题2. 总是第一下按键没反应-进度条不涨

第一下按键没反应,但是如果在奖赏反馈阶段或按键准备阶段按下了键,按键任务就可以正常进行。也就是按键还是有记录的。

这个问题询问GPT没有得到很好的解决。我考虑原因可能有多种。一,缓冲区中键盘事件清除的代码放置的位置可能不对,或许应该更早出现,比如放置在按键准备信息所在的routine结束后,而不是按键任务routine的起始。二,奖赏反馈信息与按键阶段写在一起,多少可能会混淆?所以我把反馈的代码写在了按键任务的end routine中。

这两步都操作了之后,程序就没有问题了!

更新(7.10下午):其实之后该问题还是时不时出现,阴差阳错地调整也都好了。但直到今天才发现“根源”所在!那就是,如果把按空格键,换成按别的键,比如'g'、'h',进度条的增加就是正常的!当我用g、h测试了之后,再换回空格键,空格键也正常了。还是很奇怪。。


问题3. 只有按10次的进度条最后会高出0.4

这个问题很奇怪,至今没想明白。但是经过调整这个部分的代码,我学到了代码的调整可以很灵活。

bug代码是这样的:

while timer.getTime() < success_time:
    keys = event.getKeys()
    if 'space' in keys  and progress_bar.height < 0.4: # 修改位置
        num_presses += 1
        progress_bar.setHeight (progress_bar.height + fill_amount)
        progress_bar.setPos((0,-0.2 + progress_bar.height/2))
        rect.draw()
        progress_bar.draw()
        win.flip()

只修改了第4行:

while timer.getTime() < success_time:
    keys = event.getKeys()
    if 'space' in keys  and num_presses < max_presses: # 修改位置
        num_presses += 1
        progress_bar.setHeight (progress_bar.height + fill_amount)
        progress_bar.setPos((0,-0.2 + progress_bar.height/2))
        rect.draw()
        progress_bar.draw()
        win.flip()

修改前后按道理表达的意思是相同的,但前者不行,后者就可以。迷思ing。


PS. 感悟时刻:这个部分记录了一些小问题,但是又很有启发性。1是感叹连这种问题都能解决,代码真强大,GPT这都知道,真厉害。2是办法总比困难多!搞程序还是需要多钻研。

 


http://www.ppmy.cn/news/969943.html

相关文章

跟着ChatGPT学PsychoPy编程3:将想要的数据写入数据文件/属性的用处

一&#xff1a;将想要的数据写入数据文件 问题描述&#xff1a; 通常使用组件直接设置的内容可能会被自动写入数据文件&#xff0c;比如键盘组件、图片组件等&#xff08;具体来说&#xff0c;比如按键的反应时、正确的按键、在组件中添加的变量等&#xff09;。 然而&#…

人工智能轨道交通行业周刊-第44期(2023.5.8-5.14)

本期关键词&#xff1a;智能列控、苏州城轨智慧大脑、智慧乘务系统、深铁智慧运维、铁路遥感、3D视觉 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通R…

总体设计(软件项目)

1.引言 1.1编写目的 由前面的需求分析&#xff0c;得出了系统的基本需求&#xff0c;要实现整个系统&#xff0c;需要对用户的需求进行设计&#xff0c;概要设计主要是利用比较抽象的语言对整个系统进行概括&#xff0c;确定对系统的物理配置&#xff0c;确定整个系统的处理流…

【GPT-4 ChatGPT】第 1 章 :GPT-4 和 ChatGPT 基础知识

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

全网最详细中英文ChatGPT-GPT-4示例文档-机场代码智能提取从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/curl命令源代码,小白也能学)

从0到1快速入门机场代码智能提取应用场景 Introduce 简介setting 设置Prompt 提示Sample response 回复样本API request 接口请求python接口请求示例node.js接口请求示例curl命令示例json格式示例 其它资料下载 ChatGPT是目前最先进的AI聊天机器人&#xff0c;它能够理解图片和…

国产 ChatGPT 赛道又添一员:「天工」大模型发布,我们准备了 20 问火速实测!...

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一个月前&#xff0c;百度「文心一言」的发布可谓赚足了眼球&#xff0c;国产 ChatGPT 之战也由此正式拉开序幕&#xff1a;阿里版类 ChatGPT「通义千问」突然官宣&#xff0c;商汤也发布了「商量」语…

GPT-4震撼来袭,ChatGPT已成过去?

背景 ChatGPT 点燃了科技行业的明灯&#xff0c;从他发布那天起&#xff0c; AI 下一步的发展已经成为最热门的话题之一&#xff0c;ChatGPT 是否已经是 AI 的一个突破&#xff1f;下一个大突破是否再等十年&#xff1f; 就在 2023年3月15日 凌晨&#xff0c;OpenAI 发布了多模…

GPT-4发布:多模态大模型,AI能力再度进化,可识别图像内容

能终结chatGPT的人只有openAI自己。 ——阿卡夫斯基-作者本人 ::: 今日凌晨&#xff0c;OpenAI发布了GPT的最新一代版本ChatGPT-4&#xff0c;相比3.5&#xff0c;其AI能力再度进化&#xff0c;同时支持输入的内容不再仅限于文字&#xff0c;而且支持图像内容的输入&#xff0c…