This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.

So im sure everybody knows this problem. The goal is to move the farmer from the East side to the West side with either the goat, wolf, or cabbage one by one until everyone is on the WEST. However certain things cannot be left alone (ie leaving the goat and wolf on one side or goat and cabbage). Basically I have to use different Search functions: Depth First Search, Breadth First Searh, and Best Fit Search. For now Im just trying to figure out how to test my code so far before I implement a solution.

is there a solution?
if move wolf first, that leaves goat with cabbage.
if move cabbage first, that leaves wolf with goat.
if move goat first, then have to move either wolf or cabbage next and leave it with goat to go back for the last item.

on second thought it doesn't say he has to do it in 3 trips.
take goat across.
take wolf across and bring back goat.
take cabbage across.
take goat across.

a more practical solution is to kill the wolf first.

The Solution is:
1. Move the Goat first.
2. Now take the wolf.
3. while dropping the wolf on other side take the goat back on the boat.
4. deboard the goat and take the cabbage
5. now come back and take the cabbage..

Do not wait to strike till the iron is hot; but make it hot by striking....

There are 2 unique solutions to this problem (do we bring cabbage or wolf over first, after we took the goat at the first step)...... what will depth first, breadth first or best fit show anything different?

to Paul,

if we are going to make it simple, we might as well make it trivial.

farmer ate a stew of goat and cabbage and then got fid of the wolf. farmer crossed the river in one pass :-)