2011-07-26 1 views
1

私は係る格子状に画面に描画され、以下の特性は、Y値は

int X 
int Y 
bool deletable 
enum color 

オブジェクトをそれぞれ有するオブジェクトのリストを持っているリストに含まれていますX値とY値に変換します。グリッドはこのように見えます.Yは黄色のオブジェクトを表し、Bは青のオブジェクトを表します。例えば、新しい黄色のオブジェクトがグリッド上の黄色の物体に衝突すると

YYYBBYYY 
BBYYYYBB 

は、私は、接続されているすべてのオブジェクトを検索し、trueにその削除可能なプロパティを設定したいと思います。本質的には、リストに追加された最後の要素から逆方向に作業し、物理的に触れるオブジェクトのチェーンを作り直す必要があります。

私が探しているのは、今後の進め方に関する考えです。私は最初の隣人のすべてを見つけて削除可能にすることができますが、それを超えるとそれは暗いです。削除可能なものがすべてtrueに設定されているものの一致するネイバーを見つけることで、リストをもう一度見直しますか?すべてを見つけるためにこれを何度も繰り返しますか?

私は盲目的な単純な解決策があるように感じます。

答えて

0

簡潔であるが、ブライアンの答えは正しい。この場合、削除可能なプロパティの設定と削除可能なプロパティのチェックに対して、色の設定と色のチェック(すでに完了しているかどうかを判断する場合)を置き換えます。

+0

詳細をお寄せいただきありがとうございます。それは私自身がGoogleにできるはずのもののように思えます。自分のポジションでどのような検索用語を使用しましたか? – David

+0

あなたに伝えられませんでした。名前が "flood fill"という名前を知らないと仮定すると、私はGoogleの質問に対する答えを見つけるのに苦労している。 –

+0

@Davidペイントのバケットツールの 'バケット塗りつぶしアルゴリズム'を探しました –

関連する問題