2015/06/26

繋がり判定(1)

HexaDropsで繋がりを判定するには、隣接する配列が同じ値かを確認していきます。
言うだけなら簡単ですが、実際には手間がかかります。

配列は2次元配列で画面のサイズと同一ですが、見た目上は半分ずれている状態です。
見た目がずれているだけで、配列上はやはり隣接しています。
下のような感じです。
例えば、(X:0,Y:0)の部分は表示位置としては同じような感じとなりますが、
(X:1,Y:0)の部分は表示上は半分ずれた状態となります。

隣接判定としては、(0,0)と(1,0)は表示上も隣接していることになりますので、
これが同じかどうかで判断できます。
上下に対してはズレがありませんので、こちらはそのまま(0:1)が同じ色なのかで判定できます。

今度は(1,0)の場合で考えてみます。
上下はズレがないので問題ありません。
左右は…ズレていますので、隣接判定は (0,0)、(2,0)、(0,1)、(2,1)の4箇所となります。
(1,0)の部分で考えた場合には合計6箇所ですが、同じ色と判定された箇所があった場合には、
更にその部分から隣接判定を行う必要があります。
同じような隣接判定ですので、隣接判定から隣接判定を呼び出すと上手くいきそうです。
これは再帰呼び出しを行うとできそうだと判断できます。

続きは、次回に…





0 件のコメント:

コメントを投稿