月灯り調合所で、生成器が「無意味な手」として省いた手が、配達の問題では有効だった。テスターの「急に難しい」から全72問を測り直した話

月灯り調合所で、生成器が「無意味な手」として省いた手が、配達の問題では有効だった。テスターの「急に難しい」から全72問を測り直した話 AI活用術

課題

「月灯り調合所」は、瓶に入った色とりどりの薬を注ぎ分けていく、自分が個人で作っているパズルアプリ。App Storeで公開していて、Google Playでも出すために、クローズドテスト(決まった人だけに配るテスト)を続けていた。

このアプリには、2つの遊び方がある。

  • 仕分け: 全部の瓶を、1本1色にそろえる
  • 調剤依頼: 「青を2杯」のような注文に合わせて、決まった1本の瓶(届け先)だけを仕上げる。ほかの瓶はそろっていなくていい

問題は、AIと作ったプログラム(生成器)で自動で作っている。★がもらえる目標の手数も、そのとき一緒に決まる。

2026年10月25日、テストに参加してくれている人から、こんな内容の書き込みがあった。

「第5章の5問目でずっと詰まっている。急に難しくなった。」

解決できるようにすること

パズルゲームを個人で作っている人が、次の4つをできるようにする。

  1. 「急に難しい」という声を、感想で終わらせず、数字で確かめる
  2. 生成器やソルバー(解き方を探すプログラム)が、どんな手を省いているかを見直す
  3. 公開済みの問題を、遊んだ人の記録を壊さずに直す
  4. 端末の中で解き方を探しきれない問題に、ヒントを出す

先に結論

  • 全72問を、考えられる注ぎ方を順に全部試すやり方で測り直した。急に難しい山は、言われた1問(第5章の5問目)だけだった
  • その1問は、最短の手順を見つけるまでに約128万の盤面を調べる必要があった。同じ章のほかの問題は、約900〜19万だった
  • 測り直しのついでに、もう1つ分かった。72問のうち39問で、★の目標の手数が、本当の最短より多かった。2手で解ける問題の目標が19手、ということもあった
  • 原因は、生成器とソルバーの両方が「1色だけの瓶を、まるごと空の瓶へ移す手」を、意味の無い手として省いていたこと。仕分けでは正しい省き方だけど、調剤依頼では、その空の瓶が届け先のことがある
  • 公開済みなので、問題の番号と中身は変えず、目標の手数も厳しくしなかった。難しい1問を章の最後へ回し、全問の最短の手順をデータに持たせて、詰まったら手順を見せられるようにした
  • 直した版は、iOSで11月1日に公開された。Androidも1.0.6で公開済み。直したあとに詰まる人が減ったかは、まだ確かめられていない

この記事でわかること

  • 「急に難しい」を、どんな数字で確かめたか
  • 「無意味な手」を省くことが、なぜ調剤依頼では誤りになるのか(図あり)
  • 公開済みの問題を直すとき、変えなかったことと、その理由
  • 並べ替えたときに、テストで見つかった落とし穴(図あり)
  • 端末の探索が間に合わない問題に、手順を出す方法

こう思う人もいるかもしれない。

「目標の手数が最短より多いなら、★が取りやすくなるだけで、困らないのでは?」

遊べなくなる不具合ではない。ただ、生成器は最短を多めに数えていたので、「難しい」と見込んで並べた問題が、実際は数手で解けるものになっていた。テストの人からも、ある問題が2手で終わって驚いた、という声が届いている。難しさの並びが、作った側の思いどおりになっていなかった。

「急に難しい」を、数字で確かめた

自分の頼み方

書き込みを受けて、自分はAIにこう頼んだ。

「はい、しかしAppStoreにはリリース済みであることやクリアできている人がいることも考慮して修正案を練ってください」

もう公開しているので、直し方しだいで、すでに遊んだ人の記録がおかしくなる。そこを先に伝えておきたかった。

1問を測った

AIは、考えられる注ぎ方を、手数の少ない順に全部試していくやり方(幅優先探索)で、その問題を解いた。注ぎ方とクリアの決まりは、アプリのプログラムに合わせている。

分かったのは、こんなこと。

  • 最短は22手。生成器が決めた目標の手数と一致していた
  • 最短の手順を見つけるまでに調べた盤面は、約128万。同じ第5章のほかの問題は約900〜19万。1つ前の第4章の最後の問題は、約4千と6千だった
  • でたらめに注いでクリアできる割合は0.07%。比べたほかの問題は0.1〜12.7%
  • 届け先の瓶の途中に青が埋まっていて、いちばん下のオレンジまでどかす必要がある。結局、ほかの色をほとんど全部そろえることになる。調剤依頼なのに、中身は盤面全体を解く問題になっていた

「これは詰まるわ……」。数字にすると、言われたことがそのまま見えた。

困ったことが、あと2つあった。

  • この問題を解かないと、同じ章の残り3問に進めない(章の中は、1つ前を解くと次が開く決まり)
  • 届け先が1つの調剤依頼には、「先輩に手順を聞く」というヒントの機能が出ない作りだった。詰まった人が、自分で抜け出す手段が無い

直し方の候補

AIが出した案は4つ。

  • A. 並べ替え: その問題を、第5章の最後へ回す。番号と中身は変えない
  • B. 手順を見せる: 届け先が1つの調剤依頼でも、「先輩に手順を聞く」を出す
  • C. 易しく作り直す: 盤面を作り直す
  • D. 目印: 難しい問題に札を付けて、心の準備ができるようにする

Cは、AIがすすめなかった。すでにクリアした人や★を取った人の記録が、別の問題の記録になってしまう。

自分はA+Bに決めた。そして、決める前に「ほかの章にも同じような山が無いか」を、全72問で確かめることにした。

全72問を測ったら、別の問題が見つかった

山は1問だけだった

全72問を同じやり方で測った。

章のほかの問題より、調べる盤面が桁違いに多いのは、第5章のその1問だけだった。次に多かったのは第7章の4問目(約75万)。いちばん難しい章の中の山なので、今回は動かさないことにした(並べ替えたあとのテストの声で決める)。

目標の手数が、最短より多い問題が39問

もう1つ、予想していなかった結果が出た。

72問のうち39問で、★の目標の手数が、本当の最短より多かった。目標19手で最短2手、目標27手で最短2手、目標17手で最短4手、という問題もあった。

「え、2手?」。生成器は、もっとずっと難しい問題のつもりで作っていたことになる。

原因は、省いていた1つの手

AIが生成器とソルバーのプログラムを読むと、どちらも同じ手を省いていた。

「1色だけが入った瓶を、まるごと空の瓶へ移す手」。

仕分けでは、これは意味の無い手になる。1色の瓶が別の場所に移るだけで、盤面は実質変わらない。探す手を減らすための、よくある省き方だと思う。

でも、調剤依頼では違う。移した先の空の瓶が、届け先のことがある。そうなると、その1手で注文が満たせたりする。ゲームの中では、この手はちゃんと指せる。省いていたのは、プログラムで最短を数えるときだけだった。

「1色だけの瓶を、まるごと空の瓶へ移す手」が、仕分けと調剤依頼でどう違うかを並べた図。左の仕分けでは、全部の瓶を1本1色にそろえるのが目的なので、1色の瓶を空の瓶へ移しても位置が入れ替わるだけで、省いてよい手になる。右の調剤依頼では、決まった届け先の瓶を注文どおりに仕上げるのが目的で、空の瓶が届け先なら、その1手で注文に近づく有効な手になる。生成器とソルバーは両方の遊び方でこの手を省いていたため、調剤依頼の最短を多めに数え、目標の手数が本当の最短より多い問題が72問中39問あった

生成器は、この手を使わない最短を数えていた。だから最短を多めに数え、「難しい」と見込んだ問題が、実際は数手で解けるものになっていた。

ある目的では正しい省き方が、目的の違う遊び方を足したときに、そのまま残っていた。これがこの話の芯になる(ここは記録をもとにAIと整理した見立て)。

テストの人の声とも合っていた

測り直しと同じ10月26日、同じテストの人から、続きの感想が届いた。書き込みに返したヒント(アプリの機能ではなく、テストの募集の場での返事)で先に進めたこと。7問目も難しかったこと。8問目は4手で終わって驚いたこと。

7問目は最短17手、8問目は目標17手で最短4手。全72問の測り直しと、そのまま一致していた。

公開済みの問題を、記録を壊さずに直した

変えなかったこと

直すときに、先に決めた「変えないこと」がある。

  • 問題の番号と中身は変えない。遊んだ記録は問題の番号で保存されている。中身を変えると、取った★が別の問題の記録になる
  • 目標の手数は厳しくしない。アプリの設計の決まりに「公開済みの問題の目標を厳しくしない(すでに遊んだ人との公平さのため)」と書いてある。★が取りやすい向きのずれで、遊べなくなるわけではない
  • 数手で解ける問題も、今は作り直さない。作り直すと記録の意味が変わる。もっと難しい問題を足す計画のときに、まとめて決める

A: 難しい1問を、章の最後へ回した

第5章の並びを、難しい1問が最後に来るように並べ替えた。

ここで、テストで1つ見つかったことがある。

章の中は「1つ前を解くと次が開く」決まり。並べ替えると、難しい1問の1つ前は、元の8問目になる。すると、古い並びでこの難しい問題まで解いた人でも、新しい並びの1つ前(元の8問目)をまだ解いていなければ、解いたはずの問題が閉じてしまう。

第5章の並べ替えの前と後を並べた図。前は、1〜4問目のあとに難しい問題(最短22手、約128万盤面)が5問目にあり、その後ろの3問に進めなかった。後は、1〜4問目、元の6〜8問目のあとに難しい問題を最後に置いた。新しい並びでは難しい問題の1つ前が元の8問目(最短4手)になるため、古い並びで難しい問題まで解いた人の記録が閉じないよう、「解いた問題は、1つ前に関係なく開いたまま」という決まりを足した。テストで見つけた

そこで、「解いた問題は、1つ前を解いたかに関係なく、開いたままにする」という決まりを足した。テストで、古い並びの記録がそのまま使えることも確かめている。

4手で解ける元の8問目は、難しい問題のすぐ手前に来る。置き場所を動かすかも考えたけれど、自分は「今の位置のまま」にした。難しい問題の前のひと休みとして残し、開いていた問題が閉じる人も出さない。

B: 手順をデータに持たせた

「先輩に手順を聞く」を、届け先が1つの調剤依頼でも出すことにした。

ただ、アプリの中で解き方を探す処理は、端末に負担をかけないよう、5万盤面か1秒で打ち切る作りになっている。約128万盤面が要る問題は、端末では探しきれない。

そこで、パソコンで、正しい決まり(省いていた手も含める)で全72問の最短の手順を求め、問題のデータに書き込んだ。かかったのは30秒ほど。アプリは、最初の盤面ならデータの手順を見せる。途中の盤面ならアプリの中で探し、見つからなければ「最初からの手順を見せるね」と、最初の盤面からの手順を見せる。

直したあとも、アプリの中の探索だけでは最初の盤面から手順を出せない問題が5問あった。そこは、データの手順で補っている。

ソルバーにも、同じ形の誤りがもう1つあった

生成器とソルバーからも、届け先の瓶が関わる手を省かないように直した。

その途中で、もう1つ見つかった。本当の最短を求める処理が、「ここから先、少なくともこれだけの手数がかかる」という見積もりで、探す範囲を絞っていた。その見積もりは仕分け用のもので、調剤依頼では大きすぎて、本当の最短まで切り捨てていた。

これも、仕分けでは正しい前提が、調剤依頼でずれていた形になる。調剤依頼用の見積もりに分けて、データの手順と一致することを確かめた。

テストで確かめたこと

足したテストは、こんな内容。

  • 第5章の新しい並び
  • 全72問で、データの手順を再生すると注文を満たし、目標の手数以内に収まる
  • 並べ替えたあとの開き方と、古い並びの記録
  • 届け先が1つでもヒントのボタンが出る
  • 途中で解けなくなった盤面で、最初からの手順を見せる

公開まで

10月27日に実装し、iOSの1.0.5として、テスト用の配布で自分が確かめた。審査を経て、11月1日にApp Storeで公開された。Androidは、言語の追加と合わせた1.0.6に同じ修正を入れた。11月3日に製品版の審査へ出し、11月5日にはGoogle Playのストア画面で1.0.6が出ていることを確かめている。

実装した日にも、テストの人から感想が届いた。第6章の8問目が2手で終わった、サービス問題か、と。その問題は目標19手、最短2手。測り直しで見つけた39問の1つだった。

確かめられていないこと

  • 直した版で、詰まる人が減ったか: 公開のあとの声や数字は、まだ記録に無い
  • 数手で解ける問題をどうするか: 作り直すかは、難しい問題を足す計画のときに決める
  • 第7章の4問目の山: 今回は動かしていない。テストの声を見て決める
  • ブラウザ版への反映: この記事では、App Store版とGoogle Play版の話だけを書いている

チェックリスト

「急に難しい」と言われたら

  1. その問題を、ほかの問題と同じ物差しで測る。最短の手数だけでなく、解くまでに調べる盤面の数や、でたらめにクリアできる割合も並べる
  2. 全問を測る。1問だけ直す前に、ほかにも山が無いかを見る
  3. 詰まった人が自分で抜け出せる手段があるかを見る

生成器・ソルバーを見直す

  1. 省いている手と、省いてよい理由を書き出す。その理由が、あとから足した遊び方でも成り立つかを確かめる
  2. 探す範囲を絞る見積もりも、遊び方ごとに見直す
  3. 目標の手数と、本当の最短を比べる

公開済みの問題を直す

  1. 番号と中身を変えない直し方から考える。並べ替え、ヒント、目印
  2. 並べ替えたら、古い並びの記録で開き方を確かめる
  3. 端末で探しきれない問題は、手順をデータに持たせる

こんな人に向いている

パズルゲームを個人で作っていて、問題の自動生成やヒントの機能を持っている人。特に、あとから新しい遊び方(モード)を足した人。テストの人の「難しい」「簡単すぎる」という声を、どう確かめて直すか迷っている人にも、手順の例として役に立つと思う。

まとめ

テストの人の「急に難しくなった」をきっかけに、全72問を測り直した。急な山は言われた1問だけだったけれど、別に39問で、目標の手数が本当の最短より多いと分かった。原因は、生成器とソルバーが、仕分けでは意味の無い「1色の瓶を空の瓶へ移す手」を、調剤依頼でも省いていたこと。公開済みなので、番号と中身と目標の手数は変えず、難しい1問を章の最後へ回し、全問の手順をデータに持たせた。

項目内容
結論急な山は1問だけ。別に、生成器が省いていた1つの手のせいで、39問の目標の手数が本当の最短より多かった
教訓探す手を省くときは、その理由がどの遊び方で成り立つのかを書いておき、遊び方を足したら見直す
対象読者パズルゲームを個人で作っていて、問題の自動生成やヒントの機能を持っている人

同じ状況に陥ったときの回避策

  • 「難しい」という声は、調べる盤面の数やでたらめにクリアできる割合で、ほかの問題と並べて確かめる
  • 1問を直す前に、全問を同じ物差しで測る
  • 生成器とソルバーが省いている手を書き出し、新しい遊び方でも省いてよいかを見直す
  • 公開済みの問題は、番号・中身・目標を変えずに、並べ替えとヒントで直す
  • 並べ替えたら、古い並びの記録で、解いた問題が閉じないかを確かめる

次に読むなら

この記事のパズルを遊んでみる

月灯り調合所は、ブラウザでも遊べる。インストールは要らず、スマホでもパソコンでも開ける。遊び方とアプリ版の案内は、説明のページにまとめている。


この記事は、筆者が実際に個人開発しているアプリの開発記録(2026年10月25日〜11月5日)を基に、独自調整したAIが下書きを作成し、筆者が事実確認・編集を行った上で公開しています。

トップへ戻る
タイトルとURLをコピーしました