public boolean hasHighSeasMove() {
        if (canMoveToHighSeas()) return true;
        Tile tile = getTile();
        if (tile != null && getMovesLeft() > 0) {
            for (Tile t : tile.getSurroundingTiles(1)) {
                if (t.isDirectlyHighSeasConnected()
                    && getMoveType(t).isLegal()) return true;
            }
        }
        return false;
    }