//recursive void _color_zone(int line, int col, unsigned int color, unsigned int target) { if (is_valid(line, col) && get_color(line, col) == color) { set_color(line, col, target); _color_zone(line + 1, col, color, target); _color_zone(line - 1, col, color, target); _color_zone(line, col + 1, color, target); _color_zone(line, col - 1, color, target); } }
//recursive void _color_zone(std::size_t line, std::size_t col, unsigned int color, unsigned int target) { if (is_valid(line, col) && get_color(line, col) == color) { set_color(line, col, target); _color_zone(line + 1, col, color, target); _color_zone(line - 1, col, color, target); _color_zone(line, col + 1, color, target); _color_zone(line, col - 1, color, target); /* _color_zone(line + 1, col + 1, color, target); _color_zone(line - 1, col + 1, color, target); _color_zone(line + 1, col - 1, color, target); _color_zone(line - 1, col - 1, color, target); */ } }
void color_zone(int line, int col, unsigned int color) { _color_zone(line, col, get_color(line, col), color); }
void color_zone(std::size_t line, std::size_t col, unsigned int color) { _color_zone(line, col, get_color(line, col), color); }