遊び方 — 車を出す順番を見つける
満車の駐車場から、動かせる車を全部そとへ出すと1面クリアです。使える手数は閉場までと決まっていて、遠回りすると出しきれません。
- 車をなぞる:車を指(またはマウス)でつかんで、前か後ろへ引いてください。横向きの車は左右だけ、縦向きの車は上下だけに動きます。横滑りはしません。なぞった1回が1手です。3マスまとめて動かしても1手です。
- 青く光る車から出す:前方の道が出口まで空いている車は青い光と矢印が付きます。その車をタップすると出口へ走り出し、駐車場から消えます。
- バックで空間を作る:出せない車は、前をふさいでいる車をどかしてから出します。どかす先が無いときは、その車を後ろへ下げてください。下がった車の前が空き、別の車の道が通ります。
- 出口の向きに注意:車は自分が向いている方向にしか出られません。うしろ向きに駐車場から出ることはできません。壁側を向いている車は、その壁に出口が無いかぎり出られません(そういう面は作られません)。
- 詰まったらヒント:ヒントを押すと、今の盤面から最短で解く手順を探索して次の1手を矢印で示します。あと何手で全部出せるかも出ます。
- もどす・やり直す:1手もどすは何度でも押せます。やり直すで最初の配置に戻ります。
- ボム:どうしても手が足りないときの逃げ道です。ボムを押してから車を選ぶと、その車をその場で壊して駐車場から消します。前がふさがっていても使えます。使える回数は面ごとに決まっていて、1回で5手を使います。ボムを使った回は最短(金)を名乗れず、自己最高手数にも残りません。
- 拡大縮小:大きい駐車場ではマスが小さくなるので、+と−で寄れます。ホイールでも、2本指でつまんでも同じです。寄せているあいだは、車の無いところをつかむと見る場所を動かせます。全体表示で元に戻ります。
- 無限:面をえらぶところの無限を押すと、毎回ちがう駐車場が作られます。1面クリアするたびに次の面が作られ、閉場までに出しきれなかったらそこで走行は終わりです(このモードでは1手もどすで生き返りません)。何面続けて越えられるかを競います。
- キーボード:Zで1手もどす、Hでヒント、Rでやり直し、Bでボム、+ −で拡大縮小、0で全体表示です。
なぜ「詰み」が起こらないのか
この手のパズルでは「順番を間違えると二度と出せなくなる」のが普通ですが、このルールでは詰みは起こりません。理由は2つです。1つ目、車を前後にずらす手はすべて元に戻せます。3マス進めたなら3マス戻せば、盤面は完全に元どおりです。2つ目、車を1台出しても、他の車が出られなくなることはありません。出た車は駐車場から消えるだけで、占有しているマスが減るからです。ある手順で全部出せる盤面から1台出した盤面は、その手順から出した車の移動を抜くだけでそのまま最後まで打てます。
この2つを合わせると、最初の配置が解けるなら、そこから到達できるどの配置も解けることになります(戻せる手は行き来できるので同じ組に留まり、戻せない手=出庫は解けることを保つ)。実際、18面それぞれについてランダムな手を打った盤面を数千通り作り、そのすべてが解けることを機械で確かめました。
そこで、間違いに意味を持たせるために閉場までの手数を置いています。面ごとに「最短手数+余裕」が上限で、遠回りすると閉場までに出しきれません。上限は最短手数が分かっているからこそ公平に決められる数字で、上の探索の副産物です。手数が尽きても、1手もどすで何度でもやり直せます。
ボムをどう釣り合わせたか
ボムは車を1台その場で壊して駐車場から消します。前がふさがっていても効くので、これが万能だと、このゲームを解く意味そのものが消えます。そこで3つで釣り合いを取りました。
- 回数が決まっている:やさしい・むずかしいは1回、大きい駐車場は2回です。どの面でも台数の4分の1より少なく、壊すだけで終わらせることはできません。
- 1回で5手を使う:閉場までの余裕からそのぶん引かれます。やさしい面の余裕は8手なので、ボムを1回使うと残りは3手ぶんです。
- 成績にも記録にも残らない:ボムを使った回は、手数が短くても最短(金)を名乗れません。自己最高手数にも保存しません。
3 が要ることは、測ってから分かりました。最初は「値段を十分高くすれば、壊すより解くほうが短いままにできる」と考えて、全部の面の全部の車について『壊すと最短手数が何手縮むか』を数えました。結果は、いちばん縮む面(むずかしい4「四方の出口」)で10手。奥に埋まった車を掘り出す手が丸ごと浮くので当然です。これを上回る値段(11手)にすると、閉場までの余裕(むずかしい面で5手)をはるかに超えてしまい、使った瞬間に必ず手数切れになる道具になります。つまり、このゲームでは「手数で釣り合わせる」ことが成り立ちません。
そこで値段は現実的な5手に留め、手数では得をする代わりに、その回は成績にも記録にも残さないという釣り合いにしました。画面に出ている最短手数は、あくまで「ボムを使わないときの最短」で、そこは一切動かしません。ボムを使うと表示より短い手数で終わることもありますが、それは金にも自己最高にもなりません。
値段の5手は、回数を全部使っても閉場に間に合うように決めています。壊せば最短手数は少なくとも1手は縮むので、増える手数は「回数×(値段−1)」が上限です。やさしい面なら1×4=4手で余裕8手に収まり、大きい駐車場なら2×4=8手で余裕10手に収まります。これは自動テストで確かめていて、値段や回数を上げると崩れた瞬間に落ちます。
なお、車を壊しても解けなくなることはありません。壊すと占有が減るだけなので、元の手順からその車の移動を抜けばそのまま最後まで打てます(下の「詰みが起こらない」のと同じ理屈です)。これもテストで全部の面・全部の車について確かめています。
大きい駐車場と拡大縮小
やさしい・むずかしいの面は6×6と7×7ですが、大きい駐車場はもっと広く、台数も倍近くあります。広くなると1台あたりのマスが小さくなって指では狙いにくいので、+ −で盤面に寄れるようにしました。ホイールでも、2本指でつまんでも同じです。寄せているあいだは、車の無いところをつかんで見る場所を動かせます。倍率は「全体が入る大きさ」を下限にしてあり、盤面の外の黒地が見えるところまでは動かせません(どこを見ているのか分からなくなるからです)。
盤面そのものは拡大縮小と無関係です。触った場所をマスに直すときに倍率のぶんだけ戻しているだけで、手も探索も一切変わりません。
面が解けることの確かめ方
この種のパズルで唯一ごまかせないのは、出した面が本当に解けることです。ここでは固定の18面すべてを、盤面の状態をたどる幅優先探索で実際に解いています。状態は「動かせる各車の位置(出た車は −1)」の並びで表し、1手で移れる盤面を順に広げて、全部の車が出た状態に届く最短の手数を求めます。画面に出ている最短はその探索結果そのものです。
探索には1つ枝刈りを入れています。いま出せる車があるなら、その車を出す手だけを見るというものです。これが最短手数を変えないことは次のように言えます。ある車Xが今すぐ出せるとき、Xを先に出した盤面は「Xが残っている盤面」より占有が減るだけなので、その後の手はすべてそのまま打てます。Xはどのみち最後に1手使って出るので、Xの途中の移動を捨てて先に出す手順は、元の手順より長くなりません。出せるときに出す最短手順が必ず存在するので、そこだけ見れば十分です。この枝刈りは実測で効いています。いちばん重い面(動かせる車が12台・最短19手)は、枝刈りありなら488状態・0.04秒で最短が出ます。枝刈りなしの素の幅優先探索では1,481,973状態・99秒かかりました。約3000分の1です。テストでは小さな面について両方を走らせ、同じ最短手数になることも確かめています(枝刈りが正しいことの機械での裏取りです)。
この検査は自動テストに入っています。面を1つでも書き換えると、テストが18面を解き直して、解けることと最短手数が表示どおりであることを確かめます。さらに無限モードの面も、テストが何十面ぶんも作っては解き、そのすべてが解けることを確かめています。
むずかしい面の作り方
面はでたらめに車を並べて作ったのではありません。最初にそうしてみたところ、解ける400面のうち9割が「最短手数=台数ちょうど」、つまり出せる車を順に出すだけで終わる面になりました。ふさぎ合いが起きるには、車どうしが循環して止め合う配置が要ります。
そこで、解けることを保ちながら1台ずつ置き直して最短手数を伸ばす山登りで作っています。評価は最短手数そのものですが、それだけだと同じ値の平地が広くて登れないので、各車の前をふさいでいる車の総数を副目標に足して、絡んだ配置の側へ坂を作っています。もう1つ効いたのが動かせない車です。車が出るほど駐車場は空いていくので、動く車だけだと詰まりが最初の数手しか続きません。持ち主が不在で動かせない車を混ぜると、最後まで狭さが残ります。
大きい面はどう作ったか
この作り方は、面を大きくした途端に効かなくなりました。でたらめに詰め込んだ広い盤面はほとんど解けないので、解ける面だけを拾うと「すかすかで、出せる車から順に出すだけ」の面ばかりが残ります。実測でも、9×9では最短手数が台数ちょうどの面しか出てきませんでした。
そこで、逆から作りました。全部出し終わった空の駐車場に、出口から車をバックで入れていきます。出庫の逆は「出口までの道が空いている位置に車を置くこと」、移動の逆はそのまま逆向きの移動です。この手順を逆にたどれば必ず全部出せるので、解けることが作り方から保証されます。だから思い切り詰め込めます。ここで効いたのが順番で、出口から遠いところから詰めることです。手前に入れてしまうと、同じ列の奥の車が二度と入れられなくなります(最初は逆にしていて、12台入れるつもりが3台しか入りませんでした)。
ただし逆から詰めただけの盤面は、入れた逆順に出すだけで終わってしまいます。そこで、詰め終わった盤面を出発点にして、もう一度置き直しの山登りをかけます。ここでの副目標は「前をふさがれている車の数」ではなくいま出せる車の数(少ないほど良い)にしました。最短手数が台数を超えるのは「出せる車が1台も無い場面が必ず来る」ときだけなので、そこを直接狙うほうが速く登れます。実際、この副目標に替えるまでは何千手ぶん回しても1手も伸びませんでした。
もう1つ、山登りには禁じ手を入れています。動かせない車を動く車に変えると、それだけで最短手数が1手増えるので、放っておくと山登りが動かせない車を全部溶かしてしまい、狭さを作る役がいなくなりました。だから台数の内訳は動かしません。
無限モード — 毎回ちがう駐車場
無限を選ぶと、駐車場をその場で作りながら、面を越えられるだけ越えていきます。1面クリアするたびに次の駐車場が作られ、閉場までに出しきれなかった時点で走行は終わりです。面はだんだん広くなり、6×6から始まって12×12・26台で頭打ちになります。頭打ちにしているのは、これ以上広げると1マスが指より小さくなるからです(640ピクセルの盤面で12×12なら1マス45ピクセル)。
いちばん大事なのは、その場で作った面も必ず解けることです。作り方が違います。固定の18面は「並べてから探索で解けることを確かめた」ものですが、無限モードでは解ける作り方でしか作りません。空の駐車場に、ゲームを逆向きに進めて車を入れていきます。出庫の逆は「出口まで道が空いている位置に車を1台置くこと」、移動の逆はそのまま逆向きの移動です。どちらも向きを戻せば正しい1手なので、記録した操作を逆にたどれば必ず全部出せます。だから探索は「解けるか」ではなく「最短が何手か」を知るためだけに使います。
ところが、逆から詰めただけでは入れた逆の順に出すだけで終わってしまいます。ふさぐ関係が「後に入れた車 → 先に入れた車」の一方向にしか付かず、輪にならないからです。これは詰め方をいくら変えても直りませんでした(実測で、どの大きさでも最短手数が台数ちょうどにしかならず、詰めたあとに何百手かき混ぜても1手も伸びませんでした)。輪を作るには先に入れた車を、後に入れた車の道へ動かすしかありません。そこで、4台がたがいの前をふさぐ風車を最初に仕込みます。右へ出たい車を上の車がふさぎ、その車を右の車が、その車を下の車が、そしてその車を最初の車がふさぐ形です。この4台は誰かが動かないかぎり1台も出られないので、出せる車から順に出すだけでは必ず終わりません。輪をほどく1手は、車を1マスバックさせる手になります。
風車は1面に1つだけです。2つ入れると、詰まった盤面から次の詰まった盤面へ探索が枝分かれして、最短手数を出すのに何秒もかかる面が出てきます(実測で10×10が28秒、12×12では30万状態を見ても出せませんでした)。ヒントは遊んでいる最中にその場で探索するので、そういう面を出すと押しても返ってこないゲームになります。風車1つなら、いちばん重い面でも数百状態・0.1秒未満で最短手数が出ます。作った面は、埋まり具合が半分に満たないもの・探索が重いものを捨ててから出しています。
記録は本走とは別に持っています。無限モードの面は毎回ちがうので「同じ面を何手で解いたか」を比べられません。競うのは何面続けて越えられたかで、同じ面数なら合計手数が少ないほうが上です。ボムを使わずに続けた記録は別枠で残ります。ボムは走行ごとの持ち球(最初2回・5面ごとに1回もらえる・最大3回・1面につき1回まで)にしました。面ごとに配り直すと、走りが長くなるほどボムの総数が増えて、詰まったら壊せばいいゲームになってしまうからです。やり直すは走行そのものを最初からやり直します(同じ面をやり直せると、何面越えたかの記録が「何度でも挑戦した結果」になってしまうためです)。
よくある質問
- パークアウトはどうやって遊びますか?
- 満車の駐車場から、動かせる車を全部そとへ出せば1面クリアです。車をなぞると、その車が向いている軸に沿って前後へ動きます。横向きの車は左右だけ、縦向きの車は上下だけで、横滑りはしません。青く光っている車は今すぐ出せる車で、タップするだけで出口へ走り出します。
- バックは何のためにありますか?
- 空間を作るためです。前がふさがっている車を後ろへ下げると、その車が通せんぼしていた列が空き、別の車が出られるようになります。満車に近いほど下がれる場所が貴重で、どこへ下げるかが手数を決めます。
- 詰みはありますか?
- ありません。動かす手はすべて元に戻せますし、車を1台出すことで他の車が出られなくなることもありません。そのかわり閉場までの手数が決まっていて、遠回りすると出しきれません。
- その面が本当に解けるかは確認されていますか?
- はい。固定の18面はすべて幅優先探索で実際に解き、最短手数まで出しています。無限モードでその場で作る面は、逆再生で組み立てているので解けることが作り方から保証されます。どちらも自動テストが見張っています。
- ボムは何ですか?
- 詰まったときの逃げ道です。押してから車を選ぶと、その車をその場で壊して消します。回数は面ごとに決まっていて(やさしい・むずかしいは1回、大きい駐車場は2回)、1回で5手を使い、使った回は最短を名乗れず記録にも残りません。壊したほうが手数が短くなることはありません(機械で確認済み)。
- 大きい駐車場はどう遊びますか?
- 広くて台数も多い面です。マスが小さくなるので、+と−、ホイール、2本指でつまむ操作で寄れます。寄せているあいだは車の無いところをつかんで見る場所を動かせ、全体表示で戻ります。
- 詰まったときはどうすればいいですか?
- ヒントを押してください。今の盤面から最短で解く手順を探索して次の1手を矢印で示し、あと何手で全部出せるかも出ます。1手もどすは何度でも押せます。
- 動かせない車は何ですか?
- 持ち主が不在で鍵が無い車です。灰色で、車輪に輪止めが掛かっています。前後どちらにも動かず、出す対象にも入りません。
- 無限モードは何が違いますか?
- 駐車場をその場で作りながら、越えられるだけ越えていくモードです。手数が尽きた時点で走行が終わり、何面越えたかが記録になります。面はだんだん広くなり、12×12・26台で頭打ちです。作る面は逆再生で組み立てているので、必ず解けます。
- 無限モードの面も本当に解けますか?
- 解けます。空の駐車場に出口から車をバックで入れていく作り方なので、入れた逆の順に出せば必ず全部出せます。そのうえで、出せる車から順に出すだけでは終わらないように、4台がたがいをふさぐ「風車」を1つ仕込んでいます。自動テストが何十面ぶんも作っては実際に解いて確かめています。
- 無限モードのボムはどうなりますか?
- 走行ごとの持ち球です。最初に2回、5面越えるごとに1回もらえ、持てるのは3回まで、1面で使えるのは1回までです。面ごとに配り直すと、走りが長いほどボムが増えて詰まったら壊すだけのゲームになるためです。
- データは保存・送信されますか?
- クリアした面と自己最高手数、それに無限モードの記録(越えた面数と合計手数)だけをブラウザのlocalStorageに保存します。処理はすべてブラウザ内で完結し、外部への送信は行いません。