ゲームの仕組み

Meowdokuの領域色は装飾ではなく構造です

Meowdokuの各マスは単色で塗られ、領域の終わりを示す別の印はありません。隣接する二色の選択を誤ると、猫を置く前から盤面が読めなくなります。ゲームはパレットを機能として扱っていますが、色覚特性への耐性は別途測る必要があります。

領域を実際に示しているもの

盤面は領域の境界に特別な線を描きません。全マスが同じ1pxの細線を持ち、変わるのは塗り色だけで、輪郭・アイコン・模様はありません。つまり色が「このマスはどの領域か」を記録する唯一の手段です。

パレットが構造を支える理由

隣接領域が似た色だと、2領域ではなく1つの塊に見えます。実装のコメントも、単純な割り当てでは赤とローズ、オレンジと黄が衝突し、全推論の前提である領域判別に凝視が必要になると説明しています。

単なる色順ではなく本物のグラフ彩色

`assignRegionColors` は辺を共有する領域だけで隣接グラフを作り、隣接数の多い領域から、12色環上で既に着色した隣接領域から最も遠い空き位置を選びます。領域が頂点、共有辺が制約で、色環が見た目の近さを表す本物のグラフ彩色です。

パレットにどれだけ余裕があるか

パレットは12枠です。領域数は盤面サイズと同じで最大10なので、全枠を使うことはありません。

12色パレットに対して実際に使う領域数。
盤面領域数(=サイズ)未使用枠
かんたん 5×557
ふつう 7×775
むずかしい 9×993
エキスパート 10×10102

エキスパートでも2枠余り、色切れ用の予備処理は実盤面では発動しません。

通常色覚で得られる効果

色差は CIE Lab ΔE で測りました。おおむね10未満は一見似て見え、30超は明確に区別できます。難易度ごとに新規300盤面を生成し、隣接する最も近い色の組を、隣接関係を無視した割り当てと比較しました。

盤面ごとの最も近い隣接領域色の平均ΔE(ライトテーマ、通常色覚)、各難易度300盤面。
盤面assignRegionColors隣接を無視
かんたん 5×536.028.0
ふつう 7×734.328.6
むずかしい 9×933.528.1
エキスパート 10×1032.527.5

全難易度で約20%の色差を追加します。パレット自体にも余裕があるため、重大な衝突を直すというより運任せを設計上の保証に変える効果です。

赤緑系の色覚特性で変わること

1型・2型の赤緑色覚は、赤・オレンジ・黄緑・緑の軸を圧縮し、合わせて男性の約12人に1人に影響します。線形RGBの二色型シミュレーション後にΔEを再測定しました。これは完全型の厳しい上限で、全員の見え方が同一という意味ではありません。

測定結果:ほぼ全ての盤面で崩れる

同じく難易度ごと300盤面で、シミュレーション後の最も近い隣接色を測りました。

通常色覚と1型・2型色覚シミュレーションでの、最も近い隣接色の平均ΔE。
盤面通常色覚1型2型ΔE 12未満の組がある盤面
かんたん 5×536.010.118.597%
ふつう 7×734.39.016.597%
むずかしい 9×933.58.415.399%
エキスパート 10×1032.58.113.595%

ΔE 12は実用上の目安で臨床的境界ではありません。1型では平均が1桁、2型でも半分以下に落ち、1,200盤面の95~99%に閾値未満の隣接色が現れました。

原因はほぼ同じ色の組み合わせ

崩れの97~99%で赤と黄緑の隣接が現れます。通常色覚のΔE 54.0が1型で9.5へ82%低下します。色環上では3枠離れて安全と扱われますが、同じ明度帯です。紫と青緑も74.0から8.2まで落ちます。

今できる対策

現在は色覚モードも領域境界線もありません。macOS、Windows、iOS、Androidの色フィルターは圧縮された色相を再分離できますが、拡大は色の問題なので効きません。将来のパレットでは、隣り合う色よりも3枠離れた組を優先して見直すべきです。

測定方法

盤面は `generatePuzzleSync`、配色は `assignRegionColors` と `regionAdjacency` を実ゲームと同じ形で使いました。CIE76 ΔE と Viénot/Brettel 系の線形RGB二色型行列を適用し、テストごとに実モジュールから全表を再計算します。

次の盤面をこの視点で見る

新しい盤面で最も色が近い隣接領域を探してみてください。そこがパレットの安全余裕です。利用できる場合は、OSの赤緑色覚フィルターを試す題材にもなります。

盤面はブラウザ内で生成されます。プレイ内容が外部へ送信されることはありません。