Alright, I'm developing a program that is going to take in .pbm image files, manipulate them, and output them in .ppm (P3) format.
That's all fine and good; I've got that down.
However, I'm looking for suggestions on good and efficient ways to figure out if 2 points ( row , col ) are connected in an object within an object. By object I mean a region of all one colour, that has no diagonal connectivity. If I figure this out fast enough, I will implement a diagonal-connectivity checker as well.
Any suggestions? I was thinking about using an STL stack to store my moves, in case I end up at a dead end, so I can go back a few moves and take another possible road. something like this (but I don't think this is efficient enough for me.), conceptually.
push all possible moves in order W , S , E , N - impossible moves are moves that go outside the region.
These will be something like a struct I'll call move, like this:
struct point
{
int row;
int col;
};
struct move
{
point here;
point next;
};
pop off the last possibility and go that way.
repeat.
if I run out of possibilities for moves (a dead end) pop and set my position to the next in the first alternative possibility and go forth.
However, it seems to me that if I were to go that way, with the specific order of directions to take, it would be horribly inefficient.
Any ideas? I'll be much obliged. I just wanna bounce ideas.