「猫同士を接触させない」は列間隔だけで判断できる
ルール上、猫は周囲8マスを消します。毎手8方向を確認するように見えますが、Meowdokuの構造では列を見る前から大半が無関係です。
ルールを文字どおり読むと
猫同士は辺でも角でも接してはいけません。1匹を置くと、行・列・領域に加えて周囲8マスが除外されます。
判定器も各手で8方向を調べます。ただし、本当に危険だったのはその一部だけです。
影響するのが隣の行だけである理由
N行の盤面にはN匹いて、1行に2匹は置けません。完成時は各行にちょうど1匹です。
接触は行差と列差がともに0か1の関係です。2行以上離れた猫は列に関係なく接触できず、隣り合う行だけが対象です。
ゲームのソルバーも「隣接行の列番号の差が2以上」という簡約した条件を使います。
上下左右は別のルールで禁止済み
周囲8マスのうち上下左右4マスは同じ行か列なので、接触ルール以前に禁止されています。
新しい情報を与えるのは4つの斜めだけです。その斜めも同じ色領域なら、領域ルールですでに除外されています。
本当に新しい排除はどれだけか
各難易度400盤面で、猫の斜めマスが接触ルール前にどれだけ禁止済みか測りました。
| 盤面 | 行・列・領域で禁止済み | 接触だけによる新規排除 |
|---|---|---|
| かんたん 5×5 | 37% | 63% |
| ふつう 7×7 | 44% | 56% |
| むずかしい 9×9 | 47% | 53% |
| エキスパート 10×10 | 49% | 51% |
全難易度で見かけの効果の3分の1以上は領域と重複します。新規分はかんたんの63%からエキスパートの約半分へ下がります。
領域の平均が5マスから10マスへ大きくなり、斜めが同じ領域に入る確率が増えるためです。
列間隔を測る
実用上の条件は1つです。隣接行の猫同士は列番号が2以上離れる必要があります。その最小値の頻度を測りました。
| 盤面 | 最小間隔(2)の行 | 平均列間隔 | 最大可能間隔 |
|---|---|---|---|
| かんたん 5×5 | 57.8% | 2.5 | 4 |
| ふつう 7×7 | 35.1% | 3.2 | 6 |
| むずかしい 9×9 | 27.5% | 3.9 | 8 |
| エキスパート 10×10 | 26.2% | 4.2 | 9 |
間隔2は全難易度で最も多い単一値で、余裕がまったくありません。1列近づければ違法になります。
小さい盤面が窮屈な理由
5×5は猫を置く列が少なく、平均2.5で最小に近い一方、10×10は空間が倍で平均4.2です。
最小値は変わりません。差1はどの大きさでも斜め接触です。盤面が大きいほど、その限界に達する頻度だけが下がります。
盤面での使い方
合法性は同じですが、確認範囲を減らせます。
- 見るのは上下の隣接行だけ。 2行以上離れた猫は接触しません。
- 危険なのは各行2マスだけ。 真上・真下は列ルールで禁止済みなので、斜めだけです。
- 間隔2は厳しく、しかも多い。 最も起こりやすい間隔なので再確認します。
- 領域が先に除外することもある。 斜めが同色なら、大盤面では約半分がすでに禁止済みです。
測定方法
ゲーム生成器で難易度ごとに400盤面を測りました。「禁止済み」は斜めが猫と同じ領域、「最小間隔」は隣接行の列差が正確に2という意味です。
テストは新しい盤面で表を再計算し、領域サイズや列配置の変更で古い数字が残らないようにしています。
実際の盤面で列間隔を試す
むずかしい9×9で隣接行に猫を置くときは、周囲8マスではなく列番号の差を見ます。2以上なら合法で、ちょうど2が最も多い厳しいケースです。
盤面はブラウザ内で生成されます。プレイ内容が外部へ送信されることはありません。