タイルがランダムな色で塗りつぶされ、ユーザーがタイルをクリックすると消えるタイルベースのゲームを作成しようとしています。これは私がすでに達成しています。
今、私がやりたいのは、隣接する 2 つ以上のタイルが同じ色の場合にのみ、タイルが消えることです。フラッド フィル アルゴリズムを使用してタイルを破壊しました。一部のカウント値が 2 より大きい場合にのみ機能するように、このコードを変更するにはどうすればよいですか。
これはタイルを破壊するコードです:
private void Destroy(int x,int y,int old_Value,int new_Value)
{
if (GameArr[x,y].BlockValue == old_Value)
{
//if some count > 2 then only
GameArr[x, y].BlockValue = 0;
Destroy(x + 1, y, old_Value, new_Value);
Destroy(x - 1, y, old_Value, new_Value);
Destroy(x, y + 1, old_Value, new_Value);
Destroy(x, y - 1, old_Value, new_Value);
}
}
このカウント値を取得するにはどうすればよいですか?
- メソッド自体に count 変数を渡し、値が 2 を超えているかどうかを確認してから破棄すると、最初の 2 つのタイルは破棄されません。
- タイルが破棄可能かどうかを確認する別の方法を作成すると、カウント中に blockValues が 0 に設定されます。
どうすればこれを行うことができますか。どんな助けでも大歓迎です。