{
  "experiment": "実験#02：AIが作って、AIが遊んで、AIが直したゲームは面白くなるのか",
  "fixed_at": "2026-10-03",
  "fixed_by": "AI（Claude Code）",
  "note": "ゲームを作る前に決めた。このファイルはこの commit のあと変更しない（変更が必要になったら、変更せずに、その事実を実験記録に書く）",
  "targets": [
    {
      "id": "M1",
      "name": "1回のプレイ時間がちょうどよい",
      "measure": "考えて押すボットの、1回のプレイ時間（ゲームオーバーまでのゲーム内の秒数）の中央値",
      "target": "20秒以上60秒以下"
    },
    {
      "id": "M2",
      "name": "すぐに終わってしまうプレイが少ない",
      "measure": "考えて押すボットの全プレイのうち、5秒未満で終わったプレイの割合",
      "target": "10%以下"
    },
    {
      "id": "M3",
      "name": "腕の差が出る（運だけのゲームではない）",
      "measure": "考えて押すボットの平均スコア ÷ ランダムに押すボットの平均スコア",
      "target": "2倍以上（ランダムのボットの平均スコアが0のときは、考えて押すボットの平均スコアが1以上なら満たすとする）"
    }
  ],
  "measurement_rules": [
    "時間はゲーム内の時間で測る。ゲームは1/60秒刻みで進み、ボットは同じゲームのプログラムを、作業環境のブラウザ（Chromium）の中で早送りで動かす",
    "スコアは、ゲームが画面に表示する点数",
    "1つの版につき、それぞれのボットで200回遊ぶ。乱数の種は1〜200を使い、どの版でも同じ種を使う",
    "1回のプレイは、ゲーム内の300秒で打ち切る（打ち切ったプレイは300秒として数える）",
    "ランダムに押すボット：ゲームの様子を見ずに、平均して1秒に1.5回、でたらめな間隔でタップする",
    "考えて押すボット：ゲームの様子を見てタップを決める。ただし見てから反応するまでに0.15〜0.35秒（毎回でたらめ）の遅れがある。判断のしかたは v1 を作ったときに決め、v2 以降は変えない"
  ],
  "iteration_rules": [
    "v1 は、AIが最初に「これで面白いはず」と考えた形で作る。わざと悪く作らない",
    "版ごとに、目標を満たしているかを判定する。すべて満たしたら、そこで改良をやめる",
    "版は最大で v3 まで（企画書の「最大3回（v1→v2→v3）」を、ボットで確かめる版が最大3つ＝直すのは最大2回、と読む。企画書の「3回」と「v1→v2→v3」が食い違って読めるため、少ない方に合わせた）",
    "改良で変えてよいのは、ゲームの調整（速さ・間隔・出方・当たり判定・難しさの上がり方など）。操作のしかた（タップで何が起きるか）とスコアの数え方は変えない",
    "毎回、何が悪かったか・どう直したか・数字がどう変わったかを記録する"
  ],
  "human_test_rules": [
    "人間は、最初の版と最後の版を、どちらがどちらか分からないように A・B として遊ぶ",
    "A・B の割り当ては、人間が遊ぶ前に、ハッシュ値だけを commit して固定し、評価のあとで中身を明かす",
    "スマートフォンで A・B を各3回遊び、それぞれの面白さを5段階で評価する"
  ]
}
