private Tile findTileFor(Map map, int row, int start, boolean startAtSea) {
        Tile tile = null;
        Tile seas = null;
        int offset = (start == 0) ? 1 : -1;
        for (int x = start; 0 <= x && x < map.getWidth(); x += offset) {
            tile = map.getTile(x, row);
            if (tile.isDirectlyHighSeasConnected()) {
                seas = tile;
            } else if (tile.isLand()) {
                if (startAtSea) {
                    if (seas == null) {
                        logger.warning("No high seas in row " + row);
                    }
                    return seas;
                }
                return tile;
            } 
        }
        logger.warning("No land in row " + row);
        return null;
    }