HSP3.0 による2要因(被験者内)の簡単な実験プログラム例。
条件の組み合わせを通し番号でコード化して、ランダム順に実施する。さらにそのn回の繰り返しを実施して、最終的に各条件n回ずつのデータを得る。3要因の場合などにも応用可能。
刺激例は心理実験としてはつまらないので工夫の要あり。反応取得部分は省略。
なお、剰余計算は ac=C.cnt a の aの前に¥(半角文字)を挿入すること。以下では表示されていない。
; 2 Factors 組み合わせ ランダム順実施
a=3 ; Levels of Factor A
b=5 ; levels of Factor B
cn=a*b ; n of combination
n=2 ;n of repetition
log=""
notesel log ; ログをメモリーノートパッドにとる 記録用
;repetition
repeat n ;各条件n回 繰り返し 全体でn*cn --------------------- 全体ループ
repeat cn
C.cnt=cnt ;条件コード作成
;mes C.cnt; 0, 1,2,,,,,cn-1 確認
loop
gosub *rndorder ;試行順序ランダム化
repeat cn
mes C.cnt ; 確認 実施条件順序 C.0----.cn-1
loop
await 2000
*presentation
repeat cn ;cn回繰り返す 各条件1回ずつ(基本の組み合わせ)------基本ループ
cls
ac=C.cnta ;cnt 番目のコードをaで割った余り :A の条件 0 --- a-1
bc=C.cnt/a ;商 :B の条件 0 --- b-1
; 条件ごとの刺激を用意・提示 ここでの例は、色と提示位置の組み合わせ
if ac=0 :color 255,0,0
if ac=1 :color 0,255,0
if ac=2 :color 0,0,255
if bc=0 :circle 100,200,200,300,1
if bc=1 :circle 200,200,300,300,1
if bc=2 :circle 300,200,400,300,1
if bc=3 :circle 400,200,500,300,1
if bc=4 :circle 500,200,600,300,1
;反応取得など (略)
;記録
mes ac
mes bc
await 2000
noteadd ""+ac+" "+bc
loop ;各条件1回ずつ ------
cls
loop ; 各条件n回ずつ -------------------------
;データ保存
bsave "data001", log
stop
end
;=============
*rndorder ; ランダム順化サブルーチン
randomize ; 乱数を不規則化
repeat cn ; 組み合わせの数だけ繰り返す
x=rnd(cn) ; 0から(cn-1)の範囲で整数の乱数値を発生させる:x
k=C.cnt ; cnt 番目の配列をx番目と入れかえるために、
C.cnt = C.x ; 乱数x番目の配列の数を cnt版目の数に入れ( cnt:0 -- cn-1 )
C.x=k ; 乱数x番目の配列にcnt番目を入れる
loop
return
;