広告で見かけた Water Sort Puzzle というパズルゲームにはまってしまった。ハノイの塔の亜種みたいなゲーム。
基本的にはさくさく進められるんだけど、レベル105が急に難しくて、何度やっても詰んでしまう。あまりに無理だったので、敗北感を覚えつつも YouTube で解法動画を検索して見てしまった。
けれどこのままでは悔しいので、レベル105が他のレベルと比べてどれくらい難しいのかを計測したい。
難易度の指標としては、「何も考えずに動かせるところを動かしていったとき、どれくらいの確率でクリアできるか」というのが使えると思う。私自身があんまり何も考えずにプレイしているから*1。
なので、まずは「動かせるところを総当たりで動かす」というプログラムを作った。
愚直に総当たりすると、同じ状態からの展開を計算する処理が大量に行われることになって、ものすごい時間がかかる。
下のようなグラフ構造にすることで計算を節約できた。
グラフが完成したら、矢印をランダムにいけるところまで辿るというのを何度も繰り返して、どれくらいの割合でクリアできたかを計測する。10,000回に設定したらレベル105は一度もクリアできなかったので、100,000回にした。
あと、YouTube の解法動画の再生回数*2がパズルの難易度と連動しているかどうかにも興味があるので、それも合わせて見てみる。
レベル1〜30
序盤はどれも簡単。レベル11で一旦動画の再生回数が跳ね上がってるけど、それ以降はユーザーも慣れたのか、同じような難易度であっても動画はそんなに見られていない。
レベル31〜60
レベル50がすごい。たしかに難しかった記憶ある。
レベル61〜90
このへんは平坦な感じ。
レベル91〜120
レベル105がランダムで解けるのは0.001%! つまり10万回に1回。そりゃなかなか解けへんよな、と納得できた。レベル107もかなり手強そう。
あと、難易度と動画の再生回数があからさまに連動してておもしろい。
一覧で見てみると、レベルの数字とパズルの難しさは比例しておらず、簡単なのと難しいのが交互に出てきているのがわかる。そうやっていい感じに緩急がついているせいで、なかなか飽きることができない…。
*1:そもそも正常な判断力があるときはこのアプリを開かない。
*2:同じような内容の動画がいろんなチャンネルから投稿されているので、とりあえず Mobile games と Mobile Games から投稿されている動画の合計再生回数を使った。2021年3月末時点のデータ。