【脑与认知科学】【n-back游戏】

请参考课堂内容,设计一种测试工作记忆的实验方法,并选择三位同学作为被试测试工作记忆。请画出实验流程图,叙述实验测试目标,并分析实验结果。

举例:一般我们选择n_back来测试对数字或字母的记忆,选择色块实验来测试对颜色的记忆。实验中的自变量与因变量的变化,比如数字/字母/色块的数量n就是自变量。成功率就是因变量,而屏幕显示的时间可以在一定范围内随机。并将实验结果进行分析,譬如因变量随自变量的变化,呈现什么样的趋势。屏幕显示时间和因变量有什么关系等。

 

我们选择复刻n-back游戏来测试工作记忆,游戏的流程是这样的:玩家会看到一个灰色方块组成的九宫格,其中一个绿色方块会在九宫格中闪烁,玩家需要把每次绿色方块闪烁的位置记住,判断前n次绿色方块出现的位置,例如当n=1时,玩家需要判断上一次绿色方块在九宫格中出现的位置;当n=2时,玩家需要判断上两次绿色方块出现的位置,依次类推……

实验流程图如图1所示,我们首先给出提示文字,告知测试者实验测试的流程与步骤,然后给出每个方块的位置,这样后续判断绿色方块的位置时可以通过按下键盘上的数字键选择方块的位置,然后开始闪烁方块,要求测试者判断前n次绿色方块出现的位置,最后给出判断结果,其中n的值为3、4、5中的随机值。

图1

我们全程使用python的psychopy库完成实验的设计。

import random
import pandas
from psychopy import visual, event, core# 展示提示文字,并根据参数实现不同的文字展示
def showCue(text, x=0, y=0, wait=True, title=False, flip=True):if title:cue = visual.TextStim(win, text=text, pos=(x, y), color='black', height=50, bold=True)else:cue = visual.TextStim(win, text=text, pos=(x, y), color='black', height=20, bold=True)cue.draw()if flip:win.flip()if wait:event.waitKeys()# 构建绿色方块的随机位置
places = []  # 创建空列表
while len(places) < 30:num = random.randint(0, 8)  # 生成一个0到8的随机整数if not places or num != places[-1]:  # 如果列表为空或者新生成的数与前一个数不相同places.append(num)  # 将新生成的数添加到列表中
size = 145   # 方块大小
positions = [(-150, 150), (0, 150), (150, 150),(-150, 0), (0, 0), (150, 0),(-150, -150), (0, -150), (150, -150)
]
win = visual.Window(size=(1000, 618), color='white', units='pix')
showCue('工作记忆测试实验', wait=False, title=True, y=150, flip=False)
showCue('判断前n次绿色方块出现的位置\n按下对应位置的数字,共测试5次\n按任意键查看方块位置对应的数字')
for i in range(9):cube = visual.Rect(win, width=size, height=size, pos=positions[i], fillColor='#afafaf')cube.draw()number = visual.TextStim(win, text=str(i + 1), pos=positions[i], height=size / 2)number.draw()
showCue('数字代表方块的位置,按任意键开始测试', y=250)
data = {'结果': [], '反应时间': [], 'n': []}
for index in range(30):for i in range(9):if i == places[index]:color = 'green'else:color = '#afafaf'cube = visual.Rect(win, width=size, height=size, pos=positions[i], fillColor=color)cube.draw()core.wait(1)  # 展示一秒if (index + 1) % 6 == 0:n = random.randint(3, 5)showCue('前 ' + str(n) + ' 次绿色方块出现的位置是', y=250, wait=False)Time = core.Clock()key = event.waitKeys(keyList=[str(i) for i in range(10)])time = Time.getTime()if key[0] == str(places[index - n]+1):result = '正确'else:result = '错误'showCue(result + '!反应时间为' + str(time) + '秒!\n' + '按任意键继续')data['结果'].append(result)data['反应时间'].append(time)data['n'].append(n)win.flip()
showCue('实验结束,按任意键退出')
win.close()
# 将数据写入excel
excel = 'personDData.xlsx'
df = pandas.DataFrame(data)
try:DF = pandas.read_excel(excel)  # 该execl文件已经存在则追加数据DF = pandas.concat([DF, df], ignore_index=True)DF.to_excel(excel, index=False)
except FileNotFoundError:  # 没有该excel文件将创建一个新的df.to_excel(excel, index=False)

我们首先写一个函数,用于展示提示文字,被试者可以按任意键结束提示,如图2所示,与之前的实验不同的是,我们这次的文字展示函数增加了许多参数,用来实现在不同位置展示文字,并以不同的样式展示文字,而且可以决定是否刷新页面或等待按键结束。

图2

用随机数来构建绿色方块要出现的位置序列,并保证相邻的出现位置不重复,规定方块的大小并设置好九宫格的位置,如图3所示。

图3

创建展示窗口,并调用先前写好的文字展示函数显示实验标题和实验操作提示,并展示九宫格方块位置对应的数字,如图4所示。

图4

然后开始让九宫格中的绿色方块闪烁起来,每次停留一秒,如图5所示。

图5

随机取个n,让玩家回忆前n次绿色方块出现的位置,给出结果反馈,并将判断结果以及玩家反应时间记录下来,如图6所示。

图6

测试结束给出结束提示,按任意键可以退出,然后关闭窗口,将记录的数据写入excel表格,如图7所示。

图7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[深度学习]卷积神经网络的概念,入门构建(代码实例)

# 不再任何人,任何组织的身上倾注任何的感情,或许这就是能活得更开心的办法 0.写在前面: 卷积神经网络的部分在之前就已经有所接触,这里重新更全面地总结一下关于深度学习中卷积神经网络的部分.并且在这里对如何构建代码,一些新的思想和网络做出一点点补充,同时会持续更新一些…

传递函数的推导和理解

传递函数的推导和理解 假设有一个线性系统&#xff0c;在一般情况下&#xff0c;它的激励 x ( t ) x(t) x(t)与响应 y ( t ) y(t) y(t)所满足的的关系&#xff0c;可用下列微分方程来表示&#xff1a; a n y ( n ) a n − 1 y ( n − 1 ) a n − 2 y ( n − 2 ) ⋯ a 1 y…

k8s上Pod生命周期、重启策略、容器探测简介

目录 一.Pod的创建过程 二.Pod的终止过程 三.Pod的重启策略&#xff08;restartPolicy&#xff09; 1.Always 2.OnFailture 3.Never 4.示例 四.Pod生命周期内的5种状态&#xff08;相位&#xff09; 1.Pending 2.Running 3.Succeeded 4.Failed 5.Unknown 五.初始…

SpringCache

1、基本信息 Spring缓存方案&#xff1a;JDK内置的缓存(ConcurrentHashMap)、第三方缓存组件(Caffeine)、分布式的缓存实现(Memcahed、Redis)。 ConcurrentHashMap是JUC之中提供最为重要的技术实现。SpringCache之中为了便于缓存结构的管理&#xff0c;在“org.s…

flutter TabBar指示器

第一层tabView import package:jade/configs/PathConfig.dart; import package:jade/customWidget/MyCustomIndicator.dart; importpackage:jade/homePage/promotion/promotionPost/MyPromotionListMainDesc.dart; import package:jade/homePage/promotion/promotionPost/MyPr…

C++入门(1)—命名空间、缺省参数

目录 一、什么是C 1、C关键字(C98) 2、C兼容C 二、C程序预处理指令 三、命名空间 1、命名冲突 第一种&#xff1a; 第二种&#xff1a; 2、域作用限定符 3、实现命名空间 4、命名空间冲突 5、访问命名空间 6、命名空间“std” 四、输入输出 1、定义 2、自动识…

生活总是自己的,请尽情打扮,尽情可爱,,

同色系拼接羽绒服了解一下 穿上时尚感一下子就突显出来了 90白鸭绒填充&#xff0c;不仅时尚还保暖 设计感满满的羽绒服不考虑一下吗?

腾讯云服务器租用价格,腾讯云服务器价格流量怎么算?

首先&#xff0c;让我们来看看腾讯云服务器租用价格。根据您的需求不同&#xff0c;腾讯云提供了多种不同的配置选项&#xff0c;从轻量级应用服务器到高性能的GPU服务器&#xff0c;都可以满足您的需求。以下是一些常见的腾讯云服务器租用价格&#xff1a; 一、腾讯云服务器租…

Mysql-复合查询

实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询。 1.笛卡尔积 通俗来讲就是两个表的每一列都组合一遍&#xff0c;也就是穷举法。 穷举出来的数据表会有大量重复数据&#xff0c;而我们只需要加上一些限定条件就可以完成有效数据的筛选。 select EMP.ename, EM…

解决:虚拟机远程连接失败

问题 使用FinalShell远程连接虚拟机的时候连接不上 发现 虚拟机用的VMware&#xff0c;Linux发行版是CentOs 7&#xff0c;发现在虚拟机中使用ping www.baidu.com是成功的&#xff0c;但是使用FinalShell远程连接不上虚拟机&#xff0c;本地网络也ping不通虚拟机&#xff0c…

STM32 I2C详解

STM32 I2C详解 I2C简介 I2C&#xff08;Inter IC Bus&#xff09;是由Philips公司开发的一种通用数据总线 两根通信线&#xff1a; SCL&#xff08;Serial Clock&#xff09;串行时钟线&#xff0c;使用同步的时序&#xff0c;降低对硬件的依赖&#xff0c;同时同步的时序稳定…

【UE5】显示或隐藏物体轮廓线

效果 步骤 1. 先下载所需的材质文件“M_Highlight.uasset” 材质下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rxmRhkUoXVq6-DkIKyBhAQ 提取码&#xff1a;55bv 2. 在视口中拖入后期处理体积 根据需求设置后期处理体积的大小或者直接设置无限范围&…

python爬取网站数据,作为后端数据

一. 内容简介 python爬取网站数据&#xff0c;作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接&#xff1a; 三.主要流程 3.1 通过urllib请求网站 里面用的所有的包 ! pip install lxml ! pip install selenium ! pip install…

【Linux】U盘安装的cfg引导文件配置

isolinux.cfg文件 default vesamenu.c32 timeout 600display boot.msg# Clear the screen when exiting the menu, instead of leaving the menu displayed. # For vesamenu, this means the graphical background is still displayed without # the menu itself for as long …

计算两个图形遮盖率

读取图像 首先&#xff0c;加载待处理的图像&#xff0c;可以使用图像处理库&#xff08;例如OpenCV&#xff09;来实现这一步。确保已加载正确的图像。 定义特定颜色范围 确定所需的特定颜色范围。这将是要检测的马赛克填充的颜色。需要指定颜色的下限值和上限值&#xff0c;通…

深度学习中文汉字识别 计算机竞赛

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习中文汉字识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xf…

快速搭建本地的chatgpt

快速搭建本地的chatgpt 参考&#xff1a;一篇文章教你使用Docker本地化部署Chatgpt&#xff08;非api&#xff0c;速度非常快&#xff01;&#xff01;&#xff01;&#xff09;及裸连GPT的方式&#xff08;告别镜像GPT&#xff09;-CSDN博客 前提是linux下 已安装docker 命…

Leetcode—142.环形链表II【中等】

2023每日刷题&#xff08;三十三&#xff09; Leetcode—142.环形链表II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* …

2023.11.18 - hadoop之zookeeper分布式协调服务

1.zookeeper简介 ZooKeeper概念: Zookeeper是一个分布式协调服务的开源框架。本质上是一个分布式的小文件存储系统 ZooKeeper作用: 主要用来解决分布式集群中应用系统的一致性问题。 ZooKeeper结构: 采用树形层次结构&#xff0c;没有目录与文件之分,ZooKeeper树中的每个节点被…

阿里巴巴java开发手册-编程规约

编程规约 命名风格常量定义代码格式OOP 规约日期时间集合处理并发处理控制语句注释规约前后端规约其他 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始&#xff0c;也不能以下划线或美元符号结束。 反例&#xff1a;_name / name / n a m e / n a m e / n a m e…