見出し画像

単純反応時間-3/Scratch応用講座

  • こんにちはロック204チャンネルです。

  • このチャンネルではIT初心者のための動画を配信しています。

  • 今回はスクラッチ応用講座「単純反応時間-3」と題しお送りします。

  • この動画の内容は以下の内容となります。

  • 今回作成する単純反応時間プログラムは、二次元空間の中でランダムに表示位置を変える目標にたいする反応時間を測定するものです。

  • この反応時間では、左右空間あるいは上下空間において反応時間の遅れが見られた場合に何らかの原因で視空間の認識に遅れが生じていることが疑われます。

  • この反応時間測定は脳血管障害の後遺症で見られる半側空間無視の症状を評価するツールの一つとして使用することが考えられます。


最初に表示番号と画面の位置の関係を説明します。
ここでは表示番号は左上より 1,2,3,4,5,6
二行目は6,7と 表示し25番目は 右下の座標となります。

プログラムのメインルーチンはステージに書かれた左のコードです。
左側のグリーンフラッグが押されたとき、初期設定、 表示番号リスト作成、
「説明して送って待つ」、 測定、「終了説明を送って待つ」、結果表示 の順でプログラムは進行します。
右は初期設定の定義を表しています。 ボールの非表示・ 各種リストの非表示・ 変数の非表示を行っています。

最初に表示番号リストを作成します。
これは一番目にどの座標位置に表示するのかを乱数を使用して作成して行きます。
全座標25個に対して乱数1から25までを発生させて、すでに表示番号リストの中にあるのかないのかを判断して追加して行きます。

こちらは、ねこの説明 コードです。
ネコに対して「説明して」を送って受け取った場合には左の吹き出しコードと音声合成コードを順次実行して行きます。
右側は「終了説明」を受け取った場合に実行されるコードとなります。

こちらは、定義「測定」のコードです。
25回の測定ループの中は
counterを1ずつ増やしていって「表示番号リスト」の中から何番目に表示するのかを取得して変数「表示位置」に代入します。
そしてボールを消して1から5秒間待機します。
その後ボールを表示して、 この時の現在時間をStartTimeに取得します。
そして ボールが表示されてからの時間を変数bfに代入します。

次に、変数bfが5より大きい、またはスペースキーが押されるまでループを実行します。
ループの中は タイマーからStartTimeを引くことによってボールが表示されてからの時間を取得し変数bfに代入します。
その下は「もし」ブロックで 変数bfが5以上大きい場合、つまり目標表示してから5秒経過したと判断された場合、反応時間を入れる変数RTに999を入れます。
そうでないとき、5秒以内にスペースキーが押された場合は変数bfの内容をRT反応時間とします。
そしてRTの内容を「結果リスト」に追加して行きます。

こちらは結果表示の画面を示しています。
スペースキーが押されるたびに 表示番号リスト・結果リストの表示・非表示を切り替えることができるようにしました。
またボールのマップが表示されていますが 明るいボールは反応時間が早く、 暗くなるほど反応時間の遅い状態を示しています。
また黒で表示されたボールは反応時間が999つまり無視された場合を示しています。

こちらは定義「結果表示」の内容です。
まずmodeを1として リスト表示モードであることを設定します。
modeが1の場合にはリストを表示し、そうでない場合はリストを非表示としてボールをマップするブロックを実行します。
右側はスペースキーによって リスト表示とマップ表示を切り替えるためのコードです。

こちらが 定義「ボールをマップする」のコードを示しています。
ループは表示番号リストのデータ個数だけ繰り返します。 すなわち25回繰り返すことを意味します。
表示番号リストより順番に表示位置を取り出し変数「表示番号」に代入します。
そしてBallのクローンを作ります。

こちらがボールの非表示と表示を行うブロックを示しています。
「ボールを消すを受け取ったとき」はコスチュームを「Ball-a」の黄色のボールとします。 そして隠すを実行します。
「ボールを表示するを受け取ったとき」では
表示番号より表示位置x,yを 計算する式をここに代入しています。

ボールをマップする場合このような コスチュームを使用します。
これらのコスチュームは元のボールを複製し 色を調整したものです。

こちらはBallがクローンされた時のコードを書いています。
先ほど示した ボールの表示位置よりx座標y座標を計算する式をこちらにも書いています。
その下は 結果が 999であった場合は右の黒のコスチュームを表示します。
次の行は、変数bfに変数「結果」割る0.4 を実行し 小数点以下を切り下げた値を代入します。
bfの内容が 0.4より小さい場合にはball-b1をコスチュームとします。

前のスライドと同様に bfの内容によって これらのコスチュームを選択して表示するようにプログラムしています。

今回はコンピュータ・ディスプレー上にランダムに表示される目標に対する反応時間測定プロクラムを作成しました。
測定した反応時間は表示された位置での値やマップ表示を可能としました。
このプログラムは、基本的アルゴリズムを示したものですので実際の測定に対応した修正をおこなって使用してみてください。

ご視聴ありがとうございました。

https://youtu.be/HmulM82zBT0

プログラム・コード


この記事が気に入ったらサポートをしてみませんか?