Skip to main content

Simple Java Deck Of Cards

Simple Java Deck Of Cards




package com.design.misc;

public class Card {

 private String suit;
 private String face;

 public Card(String suit, String face) {
  super();
  this.suit = suit;
  this.face = face;
 }

 public String getSuit() {
  return suit;
 }

 public void setSuit(String suit) {
  this.suit = suit;
 }

 public String getFace() {
  return face;
 }

 public void setFace(String face) {
  this.face = face;
 }
 
 @Override
 public String toString(){
  return suit +" - "+ face;
 }

}

package com.design.misc;

import java.util.Random;

public class DeckOfCard {

 private Card[] cards;
 private int currentCount;
 private int size = 52;

 private String[] suits = { "CLUBS", "SPADES", "HEARTS", "DIAMONDS" };
 private String[] faces = { "ACE", "2", "3", "4", "5", "6", "7", "8", "9",
   "10", "JACK", "QUEEN", "KING" };

 public DeckOfCard() {

  cards = new Card[size];
  currentCount = 0;

  for (String suit : suits) {
   for (String face : faces) {
    cards[currentCount++] = new Card(suit, face);
   }
  }

 }

 public void shuffle(int numOfShuffle) {

  Random rand = new Random();
  for (int i = 0; i < numOfShuffle; i++) {
   int m = rand.nextInt(currentCount);
   int n = rand.nextInt(currentCount);

   Card temp = cards[m];
   cards[m] = cards[n];
   cards[n] = temp;
  }

 }

 public Card draw() {
  return cards[--currentCount];
 }

 public void printStack() {
  int cardPointer = 0;
  System.out.println("__________________________________");
  for (String suit : suits) {
   for (String face : faces) {
    System.out.println(cards[cardPointer++].toString());
   }
  }
  System.out.println("__________________________________");
 }

}

package com.design.misc;

public class DeckOfCardTest {

 public static void main(String[] args) {
  
  DeckOfCard deckOfCard = new DeckOfCard();
  deckOfCard.printStack();
  deckOfCard.shuffle(10);
  deckOfCard.printStack();
  
  Card card = deckOfCard.draw();
  System.out.println(card.toString());
  
  card = deckOfCard.draw();
  System.out.println(card.toString());
  card = deckOfCard.draw();
  System.out.println(card.toString());
  card = deckOfCard.draw();
  System.out.println(card.toString());

 }

}



Comments