りんごゲーム 難易度分析
2026年3月22日
要約
オリジナルのりんごゲーム500局のボードを分析し、ボードの難易度を簡単に推定できる指標を探した。 結論として、ボード数字の合計が難易度を最もよく予測し(r = -0.751)、 これに基づいて☆☆☆☆☆〜★★★★★の6段階難易度等級を付与できる。
1. 概要
生成されたボードの難易度はどうすれば求められるだろうか?あるボードが与えられた時、そのボードで得られる最大得点を求めることはNP-Hardに近い問題であり、正確な難易度を大量に計算することは現実的に不可能である。また、こうして求めた最大得点が高いからといって、プレイ時に感じる難易度が必ずしも簡単に感じられるという保証もない。通常は行わないような手を最初に打たなければ高得点が出ないという特殊なケースも確実に存在するからだ。
しかし、それでも多項式時間内で概略的な難易度を推定できる方法を見つけたかったため、オリジナルゲームの500局のボードデータを用いて分析を行った。
まず、ユーザーが感じる難易度の真値はグリーディソルバーが得た獲得可能スコアによって決まると仮定し、少ない計算量で算出できる10種類の指標について統計的に比較した。
2. 難易度測定方法
難易度測定のために、シンプルなGreedy Algorithmを使用した。このアルゴリズムは 目が非常に良く手が非常に速いが、ほとんど考えないプレイヤーのように振る舞う。具体的には:
- ボード上で合計が10になるすべての長方形領域を探す
- その中から最も大きい数字を含む組み合わせを優先的に選択(同じ場合はマス数が少ないものを優先)
- 選択された領域の数字を消す
- 消せる組み合わせがなくなるまで繰り返す
簡単に言えば、現在可能なものの中で最も大きい数字を消す方式で動作する。
3. 難易度測定結果
Figure 1. スコア分布
スコアは69〜149の範囲に分布し、 平均113.1、標準偏差15.4である。
4. 難易度推定指標
すべてのボードにグリーディアルゴリズムを適用するのは困難なため、難易度を推定できるより簡単な指標を探す。
4.1 ボード合計
合計が大きいほど大きい数字が多いことを意味し、大きい数字はペアを見つけにくい。 したがって、合計が高いほどスコアが低くなる。
Figure 2. ボード合計 vs スコア(r = -0.751)
| 指標 | 値 |
|---|---|
| 相関係数(r) | -0.751 |
| 決定係数(r²) | 0.564 |
| 回帰式 | score ≈ -0.33 × sum + 397 |
| スコア平均 | 113.1 |
| スコア標準偏差 | 15.4 |
r² = 0.564であれば、スコア変動の約56%をボード合計だけで説明できる。
4.2 数字別の相関
どの数字が多いほどスコアが上がり、どの数字が多いほど下がるかを確認した。
Figure 3. 数字別個数とスコアの相関係数
小さい数字(1, 2, 3)が多いほどスコアが高く、大きい数字(7, 8, 9)が多いほどスコアが低い。 特に9の相関が最も強い負の値であるが、これは9が1としかペアにならないためである。
4.3 他の指標との比較
ボード合計以外に難易度を予測できる他の指標も調査した。
| 指標 | 説明 | r | |r| |
|---|---|---|---|
| Board Sum | 170マスの数字の合計 | -0.751 | 0.751 |
| High/Low Ratio | 大きい数字 / 小さい数字の比率 | -0.718 | 0.718 |
| Low (1+2+3) | 1, 2, 3の合計個数 | +0.639 | 0.639 |
| High (7+8+9) | 7, 8, 9の合計個数 | -0.617 | 0.617 |
| Count of 1 | 1の個数 | +0.418 | 0.418 |
| Count of 9 | 9の個数 | -0.309 | 0.309 |
| Adjacent Pairs | 隣接マスの合計が10になるペアの数 | +0.306 | 0.306 |
| Min(#9, #1) | 9と1の少ない方(利用可能な9+1ペア) | +0.112 | 0.112 |
| Digit Count SD | 数字別個数の標準偏差(偏り度合い) | -0.066 | 0.066 |
| Count of 5 | 5の個数 | +0.056 | 0.056 |
Figure 4. 指標別スコア予測力の比較
合計が|r| = 0.751で最も高い。これは当然で、合計は実質的にすべての数字の加重和だからである。 個別の数字の中では9の個数が最も強い予測力を示す。
興味深い点は、隣接ペアの数(Adjacent Pairs)の相関が比較的低いことである。 隣接ペアが多いと簡単に見えるが、実際にはペアの数よりもどの数字であるかが スコアにより大きな影響を与える。
Figure 5. 上位4指標のスコア散布図
5. 推定難易度の算出方法
ボード合計の区間に基づいて6段階の難易度を付与した。
Figure 6. 合計分布と等級境界
| 等級 | 名前 | 合計範囲 | 局数 | 平均スコア | 最低 | 最高 |
|---|---|---|---|---|---|---|
| 0 | ☆☆☆☆☆ | 0〜799 | 23 | 132.8 | 115 | 148 |
| 1 | ★☆☆☆☆ | 800〜819 | 49 | 128.8 | 108 | 149 |
| 2 | ★★☆☆☆ | 820〜839 | 102 | 122.6 | 96 | 149 |
| 3 | ★★★☆☆ | 840〜859 | 97 | 115.9 | 79 | 140 |
| 4 | ★★★★☆ | 860〜879 | 104 | 107.2 | 77 | 133 |
| 5 | ★★★★★ | 880+ | 125 | 98.2 | 69 | 123 |
Figure 7. 等級別平均スコア
等級が上がるほど平均スコアが明確に下がる。 ☆☆☆☆☆と★★★★★の平均スコアの差は 35点に達する。
6. 結論
500局のオリジナルボードをグリーディソルバーで解いた結果、ボードの難易度は数字分布と強い相関関係があることが分かった。特に、ボード数字の合計だけでもボードの難易度をある程度推定できる。また、以下の事実を確認できた。
- ボード合計だけでスコア変動の56%を説明できる。合計が大きいと大きい数字が多く、ペアを作りにくい。
- 個別の数字の中では9の個数が難易度に最も大きな影響を与える。9は1としかペアにならないためである。逆に1の個数が多いほど簡単になるが、1は9とペアになるのはもちろん、他の数字とも柔軟に組み合わせを作れるためである。
- 一方、隣接ペアの数や5の個数などの指標は直感に反して予測力が低い。
- 興味深いことに、8の個数は9よりもスコアとの負の相関が強かった(r = -0.392 vs -0.309)。このソルバーは大きい数字から処理するため、9はボードが密な時に1と素早くペアになるが、8は9をすべて処理した後にようやく順番が来て、その頃にはボードに空きマスが多くなり有効な長方形を見つけにくくなるためと考えられる。8を先に処理する戦略であれば結果が異なる可能性があり、これは今後の研究課題として残す。
結果として、ボード数字の合計を基準に☆☆☆☆☆〜★★★★★の6段階の「推定難易度」等級を付与し、これにより非常に少ない計算量でもある程度説得力のある難易度を提示できるようになった。実際にプレイしたユーザーの反応を見ても、時々星の数が低いのに難しすぎたという意見もあったが、大部分のボードで難易度等級に対して肯定的な意見が多かった。