四字熟語Flash RTA攻略

2019/11/06
Speedrun/4ji-strategy.md at master ・ pingval/Speedrunへ実質移転。
2018/04/14
ちょっと修正。
2018/04/01
「熟語の出現率の偏り」を追加。
2018/03/31
公開。

どんなゲーム?

RTAの歴史

基本戦略

熟語と「一確」の漢字を暗記する
「春」に対する「小春日和」や「森」に対する「森羅万象」のような、「この漢字はこの熟語でしか使用されていない」という「一確」の漢字を覚えておく。そういった熟語をメインに揃えていけば、必要な漢字が見つからない状況はかなり防げる。
マウス操作は速度より精度を重視する
基本的に、「マウスで熟語を揃えること」と「周辺視野で漢字を把握すること」を同時に行う。そのため、マウス操作はどちらかというと速度より精度が求められる。
画面が上下に別れるSTAGE 4辺りからは、端から熟語を揃える
なるべく上下や左右から熟語を確定させることによって、終盤の視点移動やマウス移動を減らす。
goodbad

小ネタ

「一確」の中でも、見つけやすい漢字で構成される熟語を優先して揃える
「秋」の「一日千秋]、「孫」の「子々孫々」、「九」の「十中八九」など。こういった熟語があればラッキー。
一度登場した熟語はクリアまで出現しない仕様(「一攫千金」を除く)を利用する
例えば「折」は「和洋折衷」と「紆余曲折」でのみ使われている。だから「和洋折衷」が揃った場合、次に「折」を見つけたら「紆余曲折」確定と判断できる、など。
例外として、データが二重登録されている「一攫千金」のみクリアまでに2回登場する可能性がある。
「無」を積極的に探す
「無」は2番目に出現頻度の高い漢字。出現頻度の高い他の「一」や「不」ほど目につきやすい形ではないが、探せばだいたいすぐ見つかるため積極的に探してよい。
確実に複数ある漢字の探索を優先する
「足」(「自給自足」が確定)に対する「自」、「脱」(「誤字脱字」が確定)に対する「字」、「以」(「以心伝心」が確定)に対する心など。
熟語の出現率の偏り
このゲームは熟語をランダムに取り出すのに「熟語406個(405と「一攫千金」の二重入力で+1)の配列をシャッフル→先頭から順番に取り出す」という手順を踏んでいる。一様分布なら出現率は全て(4+6+8+10+12+14+16)/406=約17.24%になるが、シャッフルアルゴリズムに問題があるようで、実際の出現率には偏りがある。最大は「頑固一徹」の21.44%、最小は「避難訓練」の13.26%で、約1.6倍の開きがある。
実際のプレイでは「竜」の「画竜点睛」(21.31%)と「竜頭蛇尾」(13.66%)くらい出現率に差があれば気にすべきかもしれない。
// flareで抽出した当該コード
    i = 0;
    while (i < jukugo_max) {
      r = Math.floor(Math.random() * jukugo_max);
      tmp = this['jukugo' + i];
      this['jukugo' + i] = this['jukugo' + r];
      this['jukugo' + r] = tmp;
      ++i;
    }
漢字の配置並び替えでも同じシャッフルアルゴリズムが使われているが、ややこしいのでそっちは気にしないことにする。なお、三時熟語Flashでも同様の偏りがある。