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

Popular posts from this blog

The builder pattern in Java 8

The builder pattern is an alternative to construct complex object. This can be used only when you want to build different immutable object in the same building process. It allows object creation using method chaining and more flexible object creation. Example: Let's take Person as data model package com.javaweblog.build.pattern; public class Person { private String firstName; private String lasteName; private int age; private String gender; public Person(String firstName, String lasteName, int age, String gender){ this.firstName = firstName; this.lasteName = lasteName; this.age = age; this.gender = gender; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLasteName() { return lasteName; } public void setLasteName(String lasteName) { this.lasteName = lasteName; } public int getAge() { return age; } public void setAge(int age) { th...