我有一個任務,但我不知道如何開始。如果有人知道,請給我鏈接到一些職位。 我有一個最小的Java類,在這裏我需要更新「補」的方法,這樣它的工作原理,根據下面的描述:如何啓動桶填充算法
假裝你是在MS工作的塗料,或類似的圖形應用程序。你的工作是實施剷鬥填充工具。更具體地說,給定一個二維網格,用戶點擊的(X,Y)位置和一個顏色,設計一個算法,可以用來填充網格的相應部分。
桶填充算法應該「繪製」連接到用戶單擊的像素的所有像素,一直到顏色更改的邊界。因此,例如,如果用戶點擊白色像素並指定綠色,則剷鬥填充工具將所有觸摸的白色像素變爲綠色像素。但是,它不會影響位於圖像完全獨立部分的白色像素。
一個最小的Java類:
class BucketFill {
private char[][] pixels;
public BucketFill(char[][] pixels) {
this.pixels = pixels;
}
public void fill(int x, int y, char color) {
// TODO: make this method work
}
public void inspect() {
for (int y = 0; y < pixels.length; y++) {
for (int x = 0; x < pixels[y].length; x++) {
System.out.print(pixels[y][x]);
}
System.out.print("\n");
}
}
public static void main(String argv[]) {
char pixels[][] =
{
{ 'O', 'X', 'X', 'X', 'X' },
{ 'X', 'O', 'O', 'O', 'X' },
{ 'X', 'O', '#', 'O', 'X' },
{ 'X', 'O', 'O', 'O', 'X' },
{ 'X', 'X', 'X', 'X', 'X' },
{ 'X', 'X', 'X', '#', '#' },
{ 'X', 'X', 'X', 'X', 'X' }
};
BucketFill bucketFill = new BucketFill(pixels);
bucketFill.fill(0, 0, '*');
bucketFill.fill(3, 0, 'O');
bucketFill.fill(2, 1, '@');
bucketFill.inspect();
}
}
首先,我不得不說,你需要一個更好的標題爲您的問題。另外,請出示你自己的作品,你做了什麼?你的想法是什麼?即使這個想法是愚蠢的,沒有人關心。只要你努力嘗試自己解決問題。回到問題,請嘗試谷歌「洪水填充」。它只需要你5分鐘。 – 2014-12-05 15:02:08
你可以從[這裏]開始(http://docs.oracle.com/javase/tutorial/)。接下來的步驟是把任何代碼**顯示出你已經嘗試過。那麼,我們可以幫助! :) – cno 2014-12-05 15:04:52
嘗試解決問題,至少。填寫一個單一的元素並不難,你甚至沒有證明這一點。 – Compass 2014-12-05 15:06:51