多くのゲームでは対戦相手がいるはずで基本的にはその行動をプログラミングしなければいけません。この行動処理をゲームではAIと呼んだりします。
実のところAIは考えているわけではなく、決まった処理を行っているだけです。ルール上決まった行動を自分の置かれた状況に合わせて実行することで考えているように見えるのです。状況というのはゲーム内で知れる情報の集まりです。自分の持っている手札であったり、すでに捨てられたカードが何かといったものです。イカサマがありなら、本来知りえない情報も追加できます。(個人的にはリアリティが出しづらくつまらないのでやめた方が良いと思いますが、強くするのが簡単でしょう。そういう意味では慣れてくるまではイカサマを入れておき、自分の考える思考パターンをプログラミングに落とし込めるようになったらなくせばいいと思います。)
状況が決まったら、あとはひたすら状況ごとにどうするかを書いておけば良いです。大富豪とかなら、自分の番であり最後の一枚を持っていて出せる状況であれば、とにかく出すべきです。そういったことをプログラム的に表現していくと大量のif文とswitch文によって場合分けしていけば良いでしょう。
この場合分け(状況の種類)が多くなると、細やかな対応が可能なためAIがより人間らしく強くすることができます。場合分けが少ないと同じ行動を取りやすくなるので、なるべく状況を細かく分けるのが良いです。
上に書いたことは言うのは簡単ですが、やるのは非常に難しいです。まずゲームのルールを熟知しなくてはなりません。どのようにしたときが最も良いのか、どうすることが悪いのかがわからなければ勝つための行動を作ることはできないからです。
特にゲームの序盤などは情報が少ないためにどういった行動をとるべきかは作り手の考えに大きく左右されることでしょう。終盤は取れる選択肢自体が少なくなることが多いので、そこまで悩むこともないはずです。
こういったAIは固定された行動をとります。処理は早いし、プログラムの更新でAIが変更できるのが利点です。現在までのゲームではほとんどのゲームがこのような方法で作られています。
コメント