単なる長方形ではなく、複雑な形をした領域の「塗りつぶし」を行うアルゴリズムを考えてみます。ここで考える領域とは、「指定された点と繋がっている同じ色の場所の集合」であり、その領域内に指定された色を置いて行くアルゴリズムを検討してみましょう。 最も単純に考えれば、指定された点を出発点に「周囲に出発点と同じ色のドットがあれば色を付ける」処理を繰り返せばよい事になります。つまり、自分の周囲を見て色を付ける処理を再帰的に行うアルゴリズムです。 最初はそもそもJava で再帰が上手く働くか不安だったのですが、小さい領域ではうまく動くようです。最も、大きくなるとどうなるか不安は残りますが。 まあ、大きな領域で実行する時には改めて最適化するとして、今回はとりあえず32*32の配列を対象に「塗りつぶし」処理をやってみましょう。これくらいならどんな処理系でも大丈夫.....だと思います。 まず、配列の各要素を