একটি রেক্ট্যাঙ্গেল দেওয়া আছে। ফ্লাড ফিল অ্যালগরিদম ব্যবহার করে এই রেক্ট্যাঙ্গেল ভরতে হবে। রিকারসিভভাবে পিক্সেল রিপ্লেস করা হয়।
পদ্ধতি
- flood(x, y, new_col, old_col) রিকারসিভ ফাংশন।
- যদি (x,y) স্ক্রিনের বাইরে হয় তবে রিটার্ন।
- যদি getpixel(x,y) == old_col হয়, তবে putpixel(x,y,new_col) এবং চারদিকেই রিকারসিভ কল (x±1,y), (x,y±1)।
C প্রোগ্রাম উদাহরণ
#include <graphics.h>
#include <stdio.h>
void flood(int x, int y, int new_col, int old_col) {
if (getpixel(x, y) == old_col) {
putpixel(x, y, new_col);
flood(x+1, y, new_col, old_col);
flood(x-1, y, new_col, old_col);
flood(x, y+1, new_col, old_col);
flood(x, y-1, new_col, old_col);
}
}
int main() {
int gd, gm = DETECT;
initgraph(&gd, &gm, "");
int top=50, left=50, bottom=300, right=300;
rectangle(left, top, right, bottom);
int x=51, y=51, newcolor=12, oldcolor=0;
flood(x, y, newcolor, oldcolor);
getch();
return 0;
}
আউটপুট
গ্রাফিক্স উইন্ডোতে রেক্ট্যাঙ্গেল পুরো ভরা হবে।