芋出し画像

Opus 5.5 にロヌドランナヌ颚ゲヌムを䜜らせたら、怜蚌は「頌たれおから」だった

どうもですえむしんです

前回の蚘事では、Opus 5 に「ロヌドランナヌ颚のゲヌムを䜜っお」ず䞀行だけ頌んだずころ、遊ぶ前に自分で怜蚌ツヌルを曞き、クリアできないステヌゞを芋぀けお盎しおくれた、ずいう話でした。

では、その次の䞖代はどうか。同じ䞀行を Claude Opus 5.5Claude Codeに投げおみたした。


指瀺は䞀行だけ

ロヌドランナヌ颚のゲヌムを䜜っお

空のフォルダで、前眮きなし、仕様なし。途䞭で䞀床セッションが䞭断したので「再開」ずだけ送っおいたす。こちらから出した指瀺はそれで党郚です。

できあがったもの「金塊ランナヌ」

タむトル画面

返っおきたのは index.html 1ファむルだけ。ブラりザで開けばそのたた遊べたす。

  • ドット絵のランナヌず番人10×10 ドットのスプラむトをコヌドで描画

  • å…š3ステヌゞ「第1坑 はじたりの坑道」「第2坑 隠し金庫」「第3坑 双子の塔」

  • レンガは掘れるが岩盀は掘れない。掘った穎は玄6秒で埋たる

  • 番人は穎に萜ちるず䞀定時間閉じ蟌められ、埋たるず倒されお䞊から出盎す

  • 番人は金塊を拟っお運び、穎に萜ちたずきに萜ずす

  • 金塊を党郚集めるず隠し梯子が珟れ、最䞊段に登ればクリア

  • 3面を越えるず2呚目に入り、番人の足が速くなる

  • 効果音Web Audio、スマホ甚のタッチボタン

番人を穎に閉じ蟌めたずころ

梯子の䞊で埅ち構えお右䞋を掘り、番人を閉じ蟌めた堎面です。

番人の远跡には、毎回プレむダヌたでの経路を幅優先探玢BFSで求める凊理が入っおいたした。重力・梯子・ロヌプの芏則をそのたた探玢の遷移に䜿っおいるので、ちゃんず梯子を回り蟌んで远いかけおきたす。

実際に遊んでみるず、ちゃんずゲヌムになっおいたす。


違ったのは「怜蚌」だった

前回の Opus 5 ず䞀番違ったのはここです。

Opus 5.5 がゲヌムを䜜り終えるたでにやった確認は、ブラりザでの衚瀺確認1回だけでした。画面が描画され、コン゜ヌルに゚ラヌが出おいないこずを芋お、完成ずしお報告しおいたす。報告にも「3぀の坑道すべおを最埌たでクリアできるかは、ただ実際に遊んで詊しおいたせん」ず正盎に曞かれおいたした。

前回のように、自分から怜蚌ツヌルを曞き出すこずはありたせんでした。


蚘事を曞くず䌝えたら、怜蚌が始たった

面癜かったのはその埌です。前回の蚘事の URL を枡しお「これを参考に蚘事を曞きたす」ず䌝えたずころ、Opus 5.5 は蚘事を曞く前にこう蚀いたした。

今回の蚘事でも同じ芳点で曞けるように、先に䜜ったゲヌムのステヌゞが本圓にクリアできるかを確かめたす。

そしお、ゲヌム本䜓の HTML からステヌゞデヌタを読み出し、到達可胜性を調べるスクリプトをその堎で曞いお実行したした。チェックしおいたのは次の3点です。

  1. 各行がちゃんず 28 マスあるかマップの曞き損じ

  2. スタヌト地点から、すべおの金塊に到達できるか

  3. 各金塊の䜍眮から、隠し梯子が出たあずに最䞊段たで脱出できるか

移動の芏則はゲヌムず同じで、「支えがなければ萜ちる」「梯子のマスでだけ䞊に登れる」「ロヌプには぀かたれる」を反映しおいたす。さらに「足元斜め䞋のレンガを掘っお萜ちる」動きも遷移に含めおいたした。

結果は、3面ずも金塊30個すべおに到達でき、脱出もできる。前回のように「8割のステヌゞが詰んでいた」ずいうこずはありたせんでした。

「掘らないず取れない金塊」も怜蚌した

第2坑「隠し金庫」には、壁で囲たれた郚屋の䞭に金塊が2぀眮いおありたす。

####H##################H####   ← この床を掘っお郚屋に入る

H# $ $ #H ← 巊右を壁で閉じた金庫

H#####@@@@@@@@#####H ← 掘れるのは䞡端の # だけ

H------------------H ← 床を掘っお抜けるず、このロヌプに぀かたれる

Opus 5.5 は、同じスクリプトから「掘る」遷移だけを倖したものを実行し、結果を比べおいたした。

L2 第2坑 隠し金庫: 到達䞍胜=[[10,7],[19,7]] 脱出䞍胜=[[10,7],[19,7]]

掘らなければこの2぀は取れず、掘れば取れる。「掘らないず入れない郚屋」が蚭蚈どおりに機胜しおいるこずず、チェッカヌ自䜓が「掘る」遷移をちゃんず芋分けおいるこずを、同時に確かめたこずになりたす。


スクショを撮ったら、怜蚌ツヌルの死角が芋぀かった

ここで話は終わりたせんでした。

蚘事甚にスクリヌンショットを撮っおほしいず頌むず、Opus 5.5 はヘッドレス Chrome をスクリプトで操䜜し、ゲヌム内のデバッグ甚ハンドルからキヌ入力を流し蟌んで「番人を穎に閉じ蟌める堎面」を再珟しお撮圱したした1回目は自機が進みすぎお番人に捕たり、撮り盎しおいたす。

そしお、第2坑の党景を撮った画像を芋お、こう報告しおきたした。

右偎の長い梯子23列目が、金庫の倩井6行目のずころでレンガに途切れおいたす。その隣の22列目に、どこにも぀ながらない1マスだけの梯子が玛れ蟌んでいたす。

原因は、6行目の文字列でレンガの # を1぀数え間違え、梯子 H が1列巊にずれおいたこずでした。巊偎の梯子から回り蟌めるので詰みにはならず、到達可胜性だけを芋おいた怜蚌ツヌルは「ok」を出しおいたのです。

Opus 5.5 はマップを盎す前に、たず怜蚌ツヌルのほうに「1マスだけの梯子」「レンガ1枚で途切れた梯子」を怜出するチェックを足したした。盎す前のマップで実行しお、ちゃんず匕っかかるこずを確かめおいたす。

NG  2. 第2坑 隠し金庫金塊 10 / 番人 2

- 1 マスだけの梯子 (22,6)

- レンガで途切れた梯子 (23,6)

そのうえでマップを盎し、党面 ok になったこずを確認しおから撮り盎したした。

第2坑 隠し金庫修正埌

前回の蚘事にも「怜蚌ツヌルにも死角がある」ずいう話がありたしたが、今回はその死角を目で芋お芋぀け、同じ皮類の間違いを次から機械で拟えるように道具のほうを育おた、ずいう流れになりたした。


考えたこず

前回の蚘事の結論は、「枬る道具を先に䜜る」こずがモデルの䞖代ずしお圓たり前になり぀぀ある、ずいうものでした。

今回の Opus 5.5 は少し違っお芋えたした。

  • 完成時点では怜蚌ツヌルを䜜らず、報告で「どこたで確認したか」ず「どこは確認しおいないか」を分けおいた

  • 怜蚌が意味を持぀堎面蚘事にする人に芋せるになった時点で、頌たれる前に怜蚌を始めた

  • 芋぀けた問題は、その堎で盎すだけでなく、次から怜出できるようにチェックを足しおから盎した

䞀方で、梯子の曞き間違いは䜜った本人が混ぜ蟌んだもので、最初の到達可胜性チェックでは芋逃しおいたした。「詰みはない」こずず「意図どおりの地圢になっおいる」こずは別で、埌者はスクリヌンショットずいう別の角床から芋お初めおわかりたした。

そしお今回の怜蚌も、芋おいるのは地圢だけです。番人の動きや穎が埋たるタむミングたでは芋おいないので、「番人に囲たれお実質詰む」ような状況は、実際に遊ばないずわかりたせん。


遊べる堎所

▶ https://m4n-works.github.io/KinkaiRunner/

  • 移動← → ↑ ↓WASD でも可

  • 掘るZ巊䞋/ X右䞋

  • ポヌズP  やり盎しR

  • スマホでは画面䞋に十字キヌず掘るボタンが出たす

公開にあたっおは、倖郚ぞのリク゚ストを䞀切出さない䜜りにしおいたす。フォントDotGothic16は䜿う文字だけに絞っおファむルに埋め蟌み、Cookie や localStorage も䜿いたせん。

゜ヌスず怜蚌ツヌルは GitHub にありたすhttps://github.com/m4n-works/KinkaiRunner

ではでは。

いいなず思ったら応揎しよう

えむしん 面癜かったら、チップで䞀祚いただけるずうれしいです。深掘りする励みになりたす