Skip to content

認知心理学のストループ効果を体験できるJavaゲーム。30秒間で文字の色を判断し、反応速度と正確性を測定します。

Notifications You must be signed in to change notification settings

taiyo8911/StroopTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Stroop Test(ストループテスト)

認知心理学で有名な「ストループ効果」を体験できるJavaアプリケーションです。文字の意味と色の不一致により生じる反応時間の遅れを測定し、機敏性と集中力をテストします。

📋 目次

🎮 ゲーム概要

このゲームでは、画面に表示される色名(「赤」「黄」「緑」)の文字の色を判断し、対応するボタンをクリックします。文字の意味と色が異なる場合(例:「赤」という文字が緑色で表示される)、脳が混乱し、反応が遅れる現象が「ストループ効果」です。

特徴:

  • 30秒間のタイムアタック形式
  • 正解数、不正解数、反応時間を記録
  • 正解率とスコアを自動計算

🚀 インストール手順

必要な環境

  • OS: macOS
  • 開発環境: Visual Studio Code
  • Java: JDK 8以上
  • VS Code拡張機能: Extension Pack for Java(Microsoft製)

セットアップ

  1. Java開発環境の準備

    # Javaがインストールされているか確認
    java -version
  2. VS Codeの設定

    • VS Codeを起動
    • 拡張機能から「Extension Pack for Java」をインストール
    • Java JDKのパスが正しく設定されていることを確認
  3. プロジェクトの配置

    # 任意のディレクトリに StroopTest.java を配置
    mkdir ~/StroopTest
    cd ~/StroopTest
    # ここに StroopTest.java をコピー
  4. 実行方法

    • VS Codeで StroopTest.java を開く
    • エディタ上の Run ボタン(▶️)をクリック
    • ゲームウィンドウが起動します

📖 ゲームルール

基本ルール

  1. スタート: 「スタート」ボタンをクリックしてゲーム開始
  2. 判断: 画面中央に表示される文字のを判断
  3. 回答: 下部の色ボタン(赤・黄・緑)から対応する色をクリック
  4. 制限時間: 30秒以内にできるだけ多くの問題に正解する
  5. タイムアウト: 3秒以内に回答しないと自動的に不正解

得点方式

  • 正解: +100点(基本点)
  • 反応時間ペナルティ: 平均反応時間 ÷ 10 を減点
  • 最終スコア: (正解数 × 100) - (平均反応時間 ÷ 10)

注意点

⚠️ 重要: 文字の「意味」ではなく、文字の「色」を判断してください!

例:

  • 「赤」という文字が緑色で表示 → 緑ボタンを押す
  • 「黄」という文字が赤色で表示 → 赤ボタンを押す

🎯 操作方法

ゲーム画面の構成

┌─────────────────────────────────┐
│  残り時間: 30秒                  │
│  「文字の色」に対応するボタンを... │
│  正解: 0 / 不正解: 0            │
├─────────────────────────────────┤
│                                 │
│         赤  ← 色付き文字         │
│                                 │
├─────────────────────────────────┤
│   [赤]   [黄]   [緑]  ← ボタン   │
│                                 │
│      [スタート]                  │
└─────────────────────────────────┘

キー操作

  • マウスクリックのみで操作
  • キーボード操作は不可

ゲームの流れ

  1. 「スタート」ボタンをクリック
  2. 文字が表示される(0.5秒間隔)
  3. 文字の色に対応するボタンをクリック
  4. 結果がステータス欄に表示される
  5. 30秒経過で自動終了
  6. 結果ダイアログが表示される

📊 スコアリング

評価指標

  • 総回答数: 制限時間内に回答した問題数
  • 正解数: 正しく回答した問題数
  • 不正解数: 誤答またはタイムアウトの数
  • 正解率: (正解数 ÷ 総回答数) × 100
  • 平均反応時間: 正解した問題の反応時間の平均(ミリ秒)
  • 最終スコア: 正解数と反応速度を総合評価

🔧 プログラムの説明

アーキテクチャ

このプログラムは、以下の3つのクラスで構成されています:

1. GameState クラス

役割: ゲームの状態管理

  • 正解数・不正解数の記録
  • 反応時間の保存
  • 残り時間の管理
  • 統計計算(正解率、平均反応時間)

主要メソッド:

recordCorrectAnswer(long reactionTime)  // 正解を記録
recordIncorrectAnswer()                 // 不正解を記録
calculateAverageReactionTime()          // 平均反応時間を計算
calculateAccuracy()                     // 正解率を計算

2. ScoreCalculator クラス

役割: スコア計算

  • 正解数に基づく基本点の計算
  • 反応時間に基づくペナルティの適用
  • 最終スコアの算出

計算式:

スコア = (正解数 × 100) - (平均反応時間 ÷ 10)

3. StroopTest クラス(メインクラス)

役割: UI管理とゲームロジック

主要コンポーネント:

  • stimulusLabel: 刺激(色付き文字)を表示
  • redButton, yellowButton, greenButton: 回答用ボタン
  • startButton: ゲーム開始ボタン
  • statusLabel: ステータスメッセージ表示
  • scoreLabel: スコア表示
  • timerLabel: 残り時間表示

主要メソッド:

startGame()           // ゲーム開始処理
showNextStimulus()    // 次の刺激を表示
checkAnswer()         // 回答の正誤判定
endGame()             // ゲーム終了処理

技術仕様

使用技術:

  • GUI: Java Swing
  • レイアウト: BorderLayout, GridLayout
  • タイマー: javax.swing.Timer
  • 乱数生成: java.util.Random

定数設定:

GAME_DURATION_SECONDS = 30      // ゲーム時間(秒)
STIMULUS_TIMEOUT_MS = 3000      // 刺激のタイムアウト(ミリ秒)
RESPONSE_DELAY_MS = 500         // 次の刺激までの遅延(ミリ秒)
SCORE_PER_CORRECT = 100         // 正解あたりの得点

データフロー

[ゲーム開始]
    ↓
[刺激表示] → ランダムな色・文字を選択
    ↓
[ユーザー回答] → 反応時間を計測
    ↓
[正誤判定] → GameStateに記録
    ↓
[次の刺激] または [ゲーム終了]
    ↓
[結果表示] → スコア計算・統計表示

📝 ライセンス

このプログラムは教育目的で作成されています。自由に改変・再配布可能です。

About

認知心理学のストループ効果を体験できるJavaゲーム。30秒間で文字の色を判断し、反応速度と正確性を測定します。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages