レビュー

左右にしか動けない1次元のパックマン「PAKU PAKU」が登場、高得点を稼げるアルゴリズム開発に挑戦するエンジニアたちも続々出現


パックマンは上下左右という2次元の盤面で敵から逃げつつ餌を食べてスコアを稼ぐゲームですが、この盤面を左右だけという1次元に落とし込んだゲーム「PAKU PAKU」が登場しました。シンプルなゲームに仕上がっているということで、ニュースサイトのHacker Newsでは「高得点を取れるアルゴリズムは?」という話題が投稿されています。

PAKU PAKU
https://abagames.github.io/crisp-game-lib-11-games/?pakupaku


1D Pac-Man | Hacker News
https://news.ycombinator.com/item?id=38845510


PAKU PAKUのプレイの様子はこんな感じ。

1次元のパックマンゲーム「PAKU PAKU」をプレイしてみた - YouTube


ページにアクセスするとこんな感じの画面になります。操作はタップまたは任意のキーでパックマンを反転させるだけとなっており、かなり単純なゲームです。


プレイヤーは緑のパックマンを操作し、赤い敵から逃げつつ黄色い点を「食べる」ことでスコアが加算されていきます。黄色い点の中に一つだけ大きい点が存在しており、これを食べることでパワーアップ状態に。


パワーアップ状態になると一定時間敵が弱り、体当たりすることで敵を退治することができます。


退治した敵は目だけの状態になり、画面端まで移動後復活します。黄色い点を全て食べることでパワーアップも含め全ての点が復活するので、敵から逃げつつ黄色い点を食べまくって高得点を目指すゲームというわけです。


エンジニアが集うニュースサイトのHacker News上では、「どうすればPAKU PAKUで高得点を取れるのか」という通常の攻略のほか、PAKU PAKUで高得点を取るためのアルゴリズムに挑戦する投稿が人気を集めています。mrbさんは「このコードで9000点を取りました。自由に改変してパックマンをより長く生存させてみてください」という文章と共に、以下のコードを投稿。

function bot() {
    /* 敵の方向:パックマンの右なら「1」、左なら「-1」 */
    dir = (enemy.x > player.x) ? 1 : -1;
    /* もしパックマンが…… */
    if (
        /* 通常状態またはパワーアップが10tick以内に切れる */ powerTicks < 10 &&
        /* 敵に向かっている */ player.vx == dir &&
        /* 敵に非常に近い */ abs(player.x - enemy.x) < 25 &&
        /* そして敵が目だけの状態でない場合 */ enemy.eyeVx == 0
    ) {
        // 「ArrowUp」もしくは任意のキーを押してパックマンの向きを変える 
        document.dispatchEvent(new KeyboardEvent('keydown', {code: 'ArrowUp'}));
        document.dispatchEvent(new KeyboardEvent('keyup', {code: 'ArrowUp'}));
    }
}
setInterval(bot, 100);


上記のコードの戦略はシンプルで、100ミリ秒ごとにパックマンの状態と敵との距離をチェックして危ない場合は向きを変えるというものです。PAKU PAKUのページで「Ctrl+Shift+i」キーを押して開発者ツールを開き、「コンソール」タブに上記コードを貼り付けてエンターキーを押せばコードを実行できます。


実際にコードを使ってPAKU PAKUをプレイする様子は下記のムービーで確認できます。

コードを使って1次元のパックマンゲーム「PAKU PAKU」をプレイしてみた - YouTube


なお、PAKU PAKUのソースコードは公開されているためソースコードを見て必要な変数を取得することが可能とのこと。真ん中の点を優先して食べたり、パワーアップを優先して食べたりするなどの戦略が考えられると述べられています。

この記事のタイトルとURLをコピーする

・関連記事
「アルゴリズムって何?」を専門家が分かりやすく解説 - GIGAZINE

Nintendo Switchであのパックマンが最後の1人になるまで食べ続ける99人対戦バトルロイヤル「PAC-MAN 99」を遊んでみた - GIGAZINE

NVIDIAのAIが5万本のプレイ動画を見ただけで「パックマン」をゲームエンジンなしに再現 - GIGAZINE

ゲーム史に残る名作「パックマン」の最終仕様書全ページが学会誌で公開、生みの親が開発の舞台裏を語るインタビューも - GIGAZINE

Microsoftがパックマンでフルスコアをたたき出す超絶AIを開発 - GIGAZINE

in レビュー,   動画,   ゲーム, Posted by log1d_ts

You can read the machine translated English article here.