トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

antisaccade test

*disclaimer
305934

antisaccade test

  • 実行機能系能力の測定

プログラム

; Executive Function Task
; antisaccade test
; copyleft 2022-06-11 sugiura@nagoya-u.jp
; 
; 実行系機能のテスト
/*
Friedman and Miyake (2004: 105)に基づき一部修正

中央に+提示 1500msから3500msの間、250ms間隔で、ランダムに。
0.3センチの黒い四角が、スクリーンの端に現れる。175ms間。
その後、スクリーンの逆の端に、ターゲット刺激が提示される。
	1.6cm角の白い四角の中に矢印提示。150ms間。
	矢印は、上下上のいずれかランダム。
その後、四角の中は、グレーの左右斜めの斜線で塗りつぶされる。
その状態で、被験者が矢印の方向を回答するまで待つ。
	回答は、キーボードによる。

黒い四角と白い四角は、中央からそれぞれ8.6センチの位置に提示
最初に22回練習。その後本番90回。

エラー率をスコアとして記録。
*/

screen 0, 1280, 900			; 640x480の二倍 ちょっと小さめに

notesel kiroku


max = 20				; 実行回数の指定

count = 0
maru=0

*hajime

	mes "copyleft 2022-06-10 sugiura@nagoya-u.jp"

	pos 400, 300
	font "MS ゴシック", 32 
	mes "Antisaccade Task"
	mes ""
	mes "チャレンジ! あっち向いてほいタスク"
	mes ""
	mes "最初に出る四角とは逆側に現れる矢印の向きを答えます。"
	
	pos 600, 600
	button goto "OK", *setumei
	stop

*setumei
	cls

	pos 200, 200
	font "MS ゴシック", 32 
	
	mes "1)画面中央に + が表示されます。"
	mes "2)その後、左右どちらかに、■ が現れますが、"
	mes " (そちらを見ずに、逆を見てください。)"
	mes "3)逆側に、四角の中に矢印が 一瞬だけ 見えます。"
	mes "4)その矢印の向きを、矢印キー[←][↑][→]で答えてください。"
	mes ""
	;mes "22回練習をします。"
	;mes "その後、90回答えてもらいます。"
	mes "" + max + "回、チャレンジしてもらいます。"
	mes ""
	mes "手順がわかったら、キーボードの矢印キーの位置を確認して、"
	mes "Startボタンを押してください。"

	pos 600, 600
	button goto "Start", *step1  
	stop
	
*step1
	mouse -1			; マウスカーソルを消す
	cls

	if count==max{			; max回数に達していたら、終わる
		goto *owari
	}
	
	count = count +1

	randomize
	saikoro = rnd(6)		; 0から6-1までの間で乱数発生

	switch saikoro
	case 0
		goto *Lya_migi
		swbreak
	case 1
		goto *Lya_ue
		swbreak	
	case 2
		goto *Lya_hidari
		swbreak	
	case 3
		goto *Rya_migi
		swbreak	
	case 4
		goto *Rya_ue
		swbreak	
	case 5
		goto *Rya_hidari
		swbreak
	swend

*Lya_migi
	cls
	mes "Lya_migi"
	gosub *fixation
	color : boxf 980, 430, 1080, 530	; 右黒い四角
	await 175
	color 255,255,255 : boxf 980, 430, 1080, 530; 右白
	color : boxf 220, 430, 320, 530		; 左黒い四角
	pos 260, 460
	color 255,255,255			; 白い文字
	mes "→"
	await 150
	color 155,155,155: boxf 220, 430, 320, 530; 左グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "0": break
			if k==2:noteadd "0": break
			if k==4:noteadd "1": gosub *good: maru=maru+1:break
		await 1
	loop	
		wait 30
	goto *step1

*Lya_ue
	cls
	mes "*Lya_ue"
	gosub *fixation
	color : boxf 980, 430, 1080, 530		; 右黒い四角
	await 175
	color 255,255,255 : boxf 980, 430, 1080, 530	; 右白
	color : boxf 220, 430, 320, 530		; 左黒い四角
	pos 260, 460
	color 255,255,255				; 白い文字
	mes "↑"
	await 150
	color 155,155,155: boxf 220, 430, 320, 530	; 左グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "0": break
			if k==2:noteadd "1": gosub *good: maru=maru+1:break
			if k==4:noteadd "0": break
		await 1
	loop
		wait 30
	goto *step1	

	
*Lya_hidari
	cls
	mes "*Lya_hidari"
	gosub *fixation
	color : boxf 980, 430, 1080, 530		; 右黒い四角
	await 175
	color 255,255,255 : boxf 980, 430, 1080, 530	; 右白
	color : boxf 220, 430, 320, 530		; 左黒い四角
	pos 260, 460
	color 255,255,255				; 白い文字
	mes "←"
	await 150
	color 155,155,155: boxf 220, 430, 320, 530	; 左グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "1": gosub *good: maru=maru+1:break
			if k==2:noteadd "0": break
			if k==4:noteadd "0": break
		await 1
	loop
		wait 30
	goto *step1	



*Rya_migi
	cls
	mes "*Rya_migi"
	gosub *fixation
	color : boxf 220, 430, 320, 530		; 左黒い四角
	await 175
	color 255,255,255 : boxf 220, 430, 320, 530	; 左白
	color : boxf 980, 430, 1080, 530		; 右黒い四角
	pos 1010, 460
	color 255,255,255				; 白い文字
	mes "→"
	await 150
	color 155,155,155: boxf 980, 430, 1080, 530	; 右グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "0": break
			if k==2:noteadd "0": break
			if k==4:noteadd "1": gosub *good: maru=maru+1:break
		await 1
	loop
		wait 30
	goto *step1

	
*Rya_ue
	cls
	mes "*Rya_ue"
	gosub *fixation
	color : boxf 220, 430, 320, 530		; 左黒い四角
	await 175
	color 255,255,255 : boxf 220, 430, 320, 530	; 左白
	color : boxf 980, 430, 1080, 530		; 右黒い四角
	pos 1010, 460
	color 255,255,255				; 白い文字
	mes "↑"
	await 150
	color 155,155,155: boxf 980, 430, 1080, 530	; 右グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "0": break
			if k==2:noteadd "1": gosub *good: maru=maru+1:break
			if k==4:noteadd "0": break
		await 1
	loop
		wait 30
	goto *step1
	

	
*Rya_hidari
	cls
	mes "*Rya_hidari"
	gosub *fixation
	color : boxf 220, 430, 320, 530		; 左黒い四角
	await 175
	color 255,255,255 : boxf 220, 430, 320, 530	; 左白
	color : boxf 980, 430, 1080, 530		; 右黒い四角
	pos 1010, 460
	color 255,255,255				; 白い文字
	mes "←"
	await 150
	color 155,155,155: boxf 980, 430, 1080, 530	; 右グレーの四角
	gosub *siji
	repeat
		stick k
			if k==1:noteadd "1": gosub *good: maru=maru+1:break
			if k==2:noteadd "0": break
			if k==4:noteadd "0": break
		await 1
	loop
		wait 30
	goto *step1
	

*owari
	cls
	wait 100
	
	nen =gettime(0)
	tuki=gettime(1)
	niti=gettime(3)
	ji  =gettime(4)
	fun =gettime(5)

	noteadd "記録日時:" + nen + "年" + tuki + "月" + niti + "日" + ji + "時" + fun + "分" 	
	
	notesave "log.txt"

	pos 600, 400
	font "MS ゴシック", 32 
	mes "That' it!"
	pos 750,50
	mes kiroku

	maru=double(maru)
	max=double(max)
	wariai=(maru/max)*100
	wariai=int(wariai)
	pos 600, 450
	mes "" + wariai + "%"

	wait 500

	mouse 1
	
	end

; ------------------------sub----------------------------

*fixation
		pos 620, 460: font "MS ゴシック", 32 : mes "+"
		randomize
		bara = rnd(9)
		barabara = bara * 25 + 150

		wait barabara
		cls
		return

*siji
	pos 540, 800
	font "MS ゴシック", 32
	mes "矢印キーを押してください"
	return

*good
	pos 620, 460
	font "MS ゴシック", 32
	mes "○"
	wait 80
	return