public boolean isRoyal() {

        if(isStraight() && isFlush()) {
            List<PokerCard> sorted = new ArrayList<PokerCard>();
            for(Card card: _cards) {
                sorted.add((PokerCard)card);
            }

            Collections.sort(sorted, new CardComparator());

            // Debug
            // for(PokerCard card: sorted) {
            //    // System.out.println("Sorted " + card.getFace());
            // }

            //
            // By default, ace is sorted low so check for
            // ace at beginning and king at end.
            //
            if( sorted.get(0).getFace().equals(BaseEngine.ACE) &&
                sorted.get(4).getFace().equals(BaseEngine.KING) ) {

                return true;
            }

            //
            // Alternatively, the ace object might already be marked as high
            //
            if( sorted.get(3).getFace().equals(BaseEngine.KING) &&
                sorted.get(4).getFace().equals(BaseEngine.ACE) ) {

                return true;
            }


        }

        // Debug
        // System.out.println("isRoyal() not a straight flush.");

        return false;
    }