Well they already have the Sentry function, they could just call that (with optional "pathing" object) which would just move the ship between the queue/list of points and if it senses a ship (like sentry) it stops and becomes IDLE, which would notify the user.
Pathing {
List<Hex> positions;
Boolean loop; // default true
Hex currentDestination; // mark path of current movement
Boolean alert; //default false (go idle if you see a ship to alert user)
}
Hex {
// assume they have something already which marks desitination
Int x,y;
}
Code would simply move a ship from one Hex to another Hex. The current destination Hex would need to be tracked (or index into List which marks current Hex). Then if it it sights a ship, the ship becomes IDLE.
obviously the code above is fairly simple, and depending on how (and in what) they coded it may not be nearly as simple to implement.
You could even attach this "pathing" object to the ship, since a ship already knows how to move to a destination, once it reaches the destination it would simply check 1 if there are any more destinations in the pathing object, if so set it's new destination (movement) to the next Hex. By making it part of that you could then "path" ships rather than depend on the computer for calculating the path. An option parameter could be set to "Alert" (or make the ship go idle to alert user). That way if you just want to set a complicated path (and not partrol) you could. A special key would be needed like <Cntrl-Key>-Mouse to set destination.