2015/06/21

Dropsについて(判定編)

Dropsは縦・横・斜めに3つ以上並んだ場合には同じ色が消えることになります。

3つ並んだのかを判定するには、色のデータを2次元配列上に保存しておきます。
あとは、配列に対して8方向に同じ色があるかをチェックします。

(1) 上方向にチェックして連結数を数える
(2) 下方向にチェックして連結数を数える
(3) 上下方向の連結数が3以上か確認する
(4) 左方向にチェックして連結数を数える
(5) 右方向にチェックして連結数を数える
(6) 左右方向の連結数が3以上か確認する
(7) 左上右下方向、左下右上方向に同じチェックを行う

落下物に対してチェックを行うと、3回のチェックで終了することができチェック処理が速くなります。
しかし、チェックの結果落ちてきたものがある場合には、落ちてきたものもチェック対象としなければいけません。
その時には3回のチェックでは終わりません。

今回は全画面で色データがあるものをすべて8方向にチェックを行っています。
それほど大きな配列ではないのであっという間に判定が終わっていますが、本当は高速化する必要があると思います。

高速化の方法としてもう一つ配列を持ち、落ちた部分を設定しておくと落ちた部分のみを判定させる事ができますが、これは速度の問題が発生した時でいいかなぁと思います。

0 件のコメント:

コメントを投稿