Flood Fill

By E.Hooijmeijer

1 Inleiding Dat CodeRuler van IBM is best wel lollig dacht Bill. Wereld Overheersing. Paardjes. Kasteeltjes. Lollig. Alleen ik wil wel winnen. En dat is nog niet zo makkelijk. Om CodeRuler efficient te kunnen spelen moet je een goed vlak vul algoritme hebben. En aangezien Bill ogenschijnlijk meer geld dan wijsheid heeft, heeft hij jou ingehuurd om voor hem uit te zoeken hoe je een efficient vlak vul algoritme maakt. 2 Opdracht Implementeer een zogenaamd 'floodfill' algoritme waarbij vanaf een gegeven coordinaat alle aaneensluitende niet gezette pixels gezet worden. 3 Voorbeeld Met de linker bitmap als bron en coordinaten (2,2) moet het resultaat de rechter bitmap zijn : Voor Na . is een niet gezette pixel. ...... ...... x is een gezette pixel. .xxxx. .xxxx. S geeft het start coordinaat aan .xS.x. .xxxx. (op een niet gezette pixel) .x..x. .xxxx. .xxxx. .xxxx. ...... ...... 4 Tips - Recursie is best wel handig voor dit soort problemen.
Test case 1 : One empty Pixel Given the following bitmap, perform a floodfill operation starting at 0,0 . The expected result is : X Test case 2 : One set Pixel Given the following bitmap, perform a floodfill operation starting at 0,0 X The expected result is : X Test case 3 : Great Void Given the following bitmap, perform a floodfill operation starting at 1,1 ... ... ... The expected result is : XXX XXX XXX Test case 4 : Great Wall Given the following bitmap, perform a floodfill operation starting at 2,2 XXXXX X...X X...X X...X XXXXX The expected result is : XXXXX XXXXX XXXXX XXXXX XXXXX Test case 5 : The Path Given the following bitmap, perform a floodfill operation starting at 3,1 XXXXXXX X.....X X.XXX.X X.X.X.X X...X.X XXXXX.X X.....X XXXXXXX The expected result is : XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX XXXXXXX Test case 6 : Diamonds 4Ever Given the following bitmap, perform a floodfill operation starting at 2,2 ..X.. .X.X. X...X .X.X. ..X.. The expected result is : ..X.. .XXX. XXXXX .XXX. ..X.. Test case 7 : Leaving Las Pixel Given the following bitmap, perform a floodfill operation starting at 0,0 ..... ...X. X.X.X ...X. ..... The expected result is : XXXXX XXXXX XXX.X XXXXX XXXXX