Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- An object of type Deck represents an ordinary deck of 52 playing cards.
- The deck can be shuffled, and cards can be dealt from the deck.
- */
- public class Deck {
- private Card[] deck; // An array of 52 Cards, representing the deck.
- private int cardsUsed; // How many cards have been dealt from the deck.
- public Deck() {
- // Create an unshuffled deck of cards.
- deck = new Card[52];
- int cardCt = 0; // How many cards have been created so far.
- for ( int suit = 0; suit <= 3; suit++ ) {
- for ( int value = 1; value <= 13; value++ ) {
- deck[cardCt] = new Card(value,suit);
- cardCt++;
- }
- }
- cardsUsed = 0;
- }
- public void shuffle() {
- // Put all the used cards back into the deck, and shuffle it into
- // a random order.
- for ( int i = 51; i > 0; i-- ) {
- int rand = (int)(Math.random()*(i+1));
- Card temp = deck[i];
- deck[i] = deck[rand];
- deck[rand] = temp;
- }
- cardsUsed = 0;
- }
- public int cardsLeft() {
- // As cards are dealt from the deck, the number of cards left
- // decreases. This function returns the number of cards that
- // are still left in the deck.
- return 52 - cardsUsed;
- }
- public Card dealCard() {
- // Deals one card from the deck and returns it.
- if (cardsUsed == 52)
- shuffle();
- cardsUsed++;
- return deck[cardsUsed - 1];
- }
- } // end class Deck
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement