1.はじめに
今回はぷよぷよのコンピュータの思考ルーチンの作り方を説明します。思考ルーチンも突き詰めると、かなり難しいものとなってしまうのですが、ここでは、基本的な「ぷよを消す思考ルーチン」と「連鎖を起こす思考ルーチン」を説明したいと思います。
2.ぷよを消す思考ルーチン
ぷよを消す思考ルーチンですが、基本は「総当り」です。全ての置くことができるパターンを探し、消すことができる場所を探します。
まず、操作できるぷよのパターンは4つ存在します。
これを全て置くことができる列に、当てはめていきます。
これらのパターンを、前回の「ぷよの結合チェック」を通してみて、消すことができるパターンであれば、そこにぷよをおきます。
3.連鎖を起こす思考ルーチン
次に、連鎖を起こすロジックですが、これも「総当り」です。
ワーク(直接元データをいじってしまうと、元にもどせなくなるので、連鎖が起こるかどうかをテストする場所)に元データをコピーして、実際に連鎖を起きるかどうかをテストします。
置き方によっては連鎖の数が変わると思います。そこで、総当りで連鎖の数が一番大きいものを選択します。
例えば、ネクストぷよが「①②」であるとすると、
- 1の場合は2連鎖
- 2の場合は1連鎖
- 3の場合は1連鎖
- 4の場合は3連鎖
となるため、連鎖数の多い、4の置き方を選択します。
4.仕込みの思考ルーチン
ここまでで、連鎖の方法を説明しましたが、実はこのままでは連鎖を作ることはできません。というのは、ぷよぷよは「連鎖を仕込む」という段階が必要だからです。
つまり、思考ルーチンとして、
- 仕込む段階
- ある程度仕込みができたら連鎖
という、2ステップが必要となります。連鎖については「3.連鎖を起こす思考ルーチン」で説明しました。
では「仕込み」の思考ルーチンはどうするのでしょうか。「仕込み」には、「階段積み」や「挟みこみ」などのテクニックがありますが、それらの思考ルーチンを考えるのは大変です。
そこで、以下の方針で実装を行うと楽です。
- 操作できる2つのぷよの色が、くっつく場所を探す
- 4つ以上くっつくところには配置しない
ぷよぷよの基本はくっつけるところにあるため、とにかくくっつけることができる場所を探します。ただ、消してしまうと連鎖の種が消えてしまいますので、消さないようにくっつけます。
これで、ある程度のレベルのコンピュータの思考ルーチンはできると思います。ただ、プレイヤーが連鎖を起こしたときの反応など、まだまだ煮詰めるところはあると思います。