please i have this task to to but i can only manage to display five cards but i cant compare my result, here is what should be done:
(Card Shuffling and Dealing) Modify the application to deal a five-card poker
hand. Then modify class "DeckOfCards" to include methods that determine whether a
hand contains :
a) a pair
b) two pairs
c) three of a kind (e.g., three jacks)
d) four of a kind (e.g., four aces)
e) a flush (i.e., all five cards of the same suit)
f) a straight (i.e., five cards of consecutive face values)
g) a full house (i.e., two cards of one face value and three cards of another face value)
also and also Use the methods developed to write an application
that deals two five-card poker hands, evaluates each hand and determines which is better.
below is the codes of classes
i have tried introducing this code bu it gives me 3 errors:"
"if(myDeckOfCards.dealCard(face + " of " + suit).equals("Duece of Hearts"))
{
System.out.printf( "A Pair" );
}"
<// Card.java // Card class represents a playing card. public class Card { private String face; // face of card ("Ace", "Deuce", ...) private String suit; // suit of card ("Hearts", "Diamonds", ...) // two-argument constructor initializes card's face and suit public Card( String cardFace, String cardSuit ) { face = cardFace; // initialize face of card suit = cardSuit; // initialize suit of card } // end two-argument Card constructor // return String representation of Card public String toString() { return face + " of " + suit; } // end method toString } // end class Card >
<// DeckOfCards.java // DeckOfCards class represents a deck of playing cards. import java.util.Random; public class DeckOfCards { private Card[] deck; // array of Card objects private int currentCard; // index of next Card to be dealt private static final int NUMBER_OF_CARDS = 52; // constant # of Cards // random number generator private static final Random randomNumbers = new Random(); // constructor fills deck of Cards public DeckOfCards() { String[] faces = { "Ace", "Deuce", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King" }; String[] suits = { "Hearts", "Diamonds", "Clubs", "Spades" }; deck = new Card[ NUMBER_OF_CARDS ]; // create array of Card objects currentCard = 0; // set currentCard so first Card dealt is deck[ 0 ] // populate deck with Card objects for ( int count = 0; count < deck.length; count++ ) deck[ count ] = new Card( faces[ count % 13 ], suits[ count / 13 ] ); } // end DeckOfCards constructor // shuffle deck of Cards with one-pass algorithm public void shuffle() { // after shuffling, dealing should start at deck[ 0 ] again currentCard = 0; // reinitialize currentCard // for each Card, pick another random Card and swap them for ( int first = 0; first < deck.length; first++ ) { // select a random number between 0 and 51 int second = randomNumbers.nextInt( NUMBER_OF_CARDS ); // swap current Card with randomly selected Card Card temp = deck[ first ]; deck[ first ] = deck[ second ]; deck[ second ] = temp; } // end for } // end method shuffle // deal one Card public Card dealCard() { // determine whether Cards remain to be dealt if ( currentCard < deck.length ) return deck[ currentCard++ ]; // return current Card in array else return null; // return null to indicate that all Cards were dealt } // end method dealCard } // end class DeckOfCards>
<// DeckOfCardsTest.java // Card shuffling and dealing. public class DeckOfCardsTest { // execute application public static void main( String[] args ) { DeckOfCards myDeckOfCards = new DeckOfCards(); myDeckOfCards.shuffle(); // place Cards in random order // print all 52 Cards in the order in which they are dealt for ( int i = 1; i <= 5; i++ ) { // deal and display a Card System.out.printf( "%-19s", myDeckOfCards.dealCard() ); if ( i % 1 == 0 ) // output newline every 4 cards System.out.println(); } // end for /* if(myDeckOfCards.dealCard(face + " of " + suit).equals("Duece of Hearts")) { }*/ } // end main } // end class DeckOfCard>