Card Dealer In Java in Less than 5 minutes
Code:
package design;
import java.util.Collections;
import java.util.Stack;
public class CardDealer {
private int totalPlayers;
private static Stack<Card> deck;
CardDealer(int players){
totalPlayers=players;
deck = Deck.getCardDeck();
}
public static void main(String[] args) {
CardDealer cardDealer = new CardDealer(5);
cardDealer.dealCards();
}
public void dealCards(){
int cardsToPlayer = deck.size()/totalPlayers;
for(int i=0;i<cardsToPlayer;i++){
for(int j=1;j<=totalPlayers;j++){
System.out.println("Player:"+j+ " gets "+deck.pop());
}
}
}
private int getPlayers() {
return totalPlayers;
}
}
class Deck{
static Stack<Card> deck = new Stack<Card>();
static Deck d=null;
static {
d = new Deck();
}
public static Stack<Card> getCardDeck(){
return deck;
}
private Deck(){
populateDeckWithcards();
shuffle();
}
private void shuffle() {
Collections.shuffle(deck);
}
private void populateDeckWithcards() {
CardColor[] cardColor = CardColor.values();
CardNumber[] cardNumber = CardNumber.values();
for(CardColor cc : cardColor){
for(CardNumber cn : cardNumber){
deck.push(new Card(cc,cn));
}
}
}
}
class Card{
CardColor cc;
CardNumber cn;
public Card(CardColor cc, CardNumber cn) {
this.cc=cc;
this.cn=cn;
}
@Override
public String toString() {
return "Card [ " + cc + ", " + cn + "]";
}
}
enum CardColor{
SPADE,HEART,DIAMOND,CLUB;
}
enum CardNumber{
ACE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING;
}
Comments
Post a Comment