5章機械のなかの幽霊

今までは×と○が交互に画面をタップして手を指すという形のゲームを作ってきた。この章では人が手を指すとコンピュータがそれに応戦するというシングルプレイヤーゲームに三目並べを作り変える。

そのためにはゲーム盤上の位置を評価し、指せる位置のなかでもっともよいものを選ぶ方法をアプリに教える必要がある。これにはAI(人工知能)の世界にちょっと脱線する必要がある。

5.1 AI入門

AIはゲームを書こうとしたときにはほぼかならず大きな役割を果たし、ゲーム以外のプログラムでも重要な意味を持つことがある。たとえばユーザーの行動を予測し、ヒューリスティクス†1と過去の行動に基づいて学習するスマートアプリを作るときには、AIのテクニックが使われる。ユーザーはプログラムの能力に自分の能力を投影しがちなので、知的な外見を実現するのはそれほど大変なことではない。

[†1] かならず当たるわけではないが、まったくのでたらめというわけでもない予測

5.1.1 AIの仕組み

コンピュータ科学者たちは何年もかけてゲームのうまいやり方をコンピュータに教えるさまざまな方法を開発してきた。それらのなかでもっとも単純なもののひとつにミニマックス法がある。どちらの手番かに基づいて、交互にスコアを最小限に抑えようとしたり最大限に引き上げようとしたりするものである。

ゲームプレイはプライ、すなわち1回の応酬の半分に分割される。人間が手を指すとそれが1プライ、それに対してコンピュータが応戦するともう1プライになる。

ミニマックス法はコンピュータの番になったときに呼び出される。結果の位置に数値を代入していくことで指し手を評価する。人間にとって有利な位置には正数、コンピュータにとって有利な位置には負数を与えることにすると、第1プライの時点で最良の指し手は値がもっとも小さな指し手ということになる。 ...

Get 初めてのAndroid 第4版 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.