118k views
4 votes
The programming projects of Chapter 4 discussed a Card class that represents a standard playing card. Create a class called DeckOfCards that stores 52 objects of the Card class. Include methods to shuffle the deck, deal a card, and report the number of cards left in the deck. The shuffle method should assume a full deck. Create a driver class with a main method that deals each card from a shuffled deck, printing each card as it is dealt.

User Majidarif
by
5.0k points

1 Answer

5 votes

Answer:

Check the explanation

Step-by-step explanation:

====================Card.java====================

package card_game;

public class Card {

public final static int ACE = 1;

public final static int TWO = 2;

public final static int THREE = 3;

public final static int FOUR = 4;

public final static int FIVE = 5;

public final static int SIX = 6;

public final static int SEVEN = 7;

public final static int EIGHT = 8;

public final static int NINE = 9;

public final static int TEN = 10;

public final static int JACK = 11;

public final static int QUEEN = 12;

public final static int KING = 13;

public final static int CLUBS = 1;

public final static int DIAMONDS = 2;

public final static int HEARTS = 3;

public final static int SPADES = 4;

private final static int NUM_FACES = 13;

private final static int NUM_SUITS = 4;

private int face, suit;

private String faceName, suitName;

// -----------------------------------------------------------------

// Creates a random card.

// -----------------------------------------------------------------

public Card() {

face = (int) (Math.random() * NUM_FACES) + 1;

setFaceName();

suit = (int) (Math.random() * NUM_SUITS) + 1;

setSuitName();

}

// -----------------------------------------------------------------

// Creates a card of the specified suit and face value.

// -----------------------------------------------------------------

public Card(int faceValue, int suitValue) {

face = faceValue;

setFaceName();

suit = suitValue;

setSuitName();

}

// -----------------------------------------------------------------

// Sets the string representation of the face using its stored

// numeric value.

// -----------------------------------------------------------------

private void setFaceName() {

switch (face) {

case ACE:

faceName = "Ace";

break;

case TWO:

faceName = "Two";

break;

case THREE:

faceName = "Three";

break;

case FOUR:

faceName = "Four";

break;

case FIVE:

faceName = "Five";

break;

case SIX:

faceName = "Six";

break;

case SEVEN:

faceName = "Seven";

break;

case EIGHT:

faceName = "Eight";

break;

case NINE:

faceName = "Nine";

break;

case TEN:

faceName = "Ten";

break;

case JACK:

faceName = "Jack";

break;

case QUEEN:

faceName = "Queen";

break;

case KING:

faceName = "King";

break;

}

}

// -----------------------------------------------------------------

// Sets the string representation of the suit using its stored

// numeric value.

// -----------------------------------------------------------------

private void setSuitName() {

switch (suit) {

case CLUBS:

suitName = "Clubs";

break;

case DIAMONDS:

suitName = "Diamonds";

break;

case HEARTS:

suitName = "Hearts";

break;

case SPADES:

suitName = "Spades";

break;

}

}

// -----------------------------------------------------------------

// Determines if this card is higher than the parameter. The

// second parameter determines if aces should be considered high

// (beats a King) or low (lowest of all faces). Uses the suit

// if both cards have the same face.

// -----------------------------------------------------------------

public boolean isHigherThan(Card card2, boolean aceHigh) {

boolean result = false;

if (face == card2.getFace()) {

if (suit > card2.getSuit())

result = true;

}

else {

if (aceHigh && face == ACE)

result = true;

else if (face > card2.getFace())

result = true;

}

}

=========================Sample output=======================

The programming projects of Chapter 4 discussed a Card class that represents a standard-example-1
User Enducat
by
5.1k points