Advertisement
dimipan80

Random Hands of 5 Cards

Aug 18th, 2014
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.03 KB | None | 0 0
  1. /* Write a program to generate n random hands of 5 different cards
  2.  * form a standard suit of 52 cards. */
  3.  
  4. import java.util.HashSet;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7.  
  8. public class _06_RandomHandsOf5Cards {
  9.  
  10.     private static String[] faceCards = { "2", "3", "4", "5", "6", "7", "8",
  11.             "9", "10", "J", "Q", "K", "A" };
  12.  
  13.     private static char[] suitCards = { '\u2663', '\u2666', '\u2665', '\u2660' };
  14.  
  15.     public static void main(String[] args) {
  16.         // TODO Auto-generated method stub
  17.         Scanner scan = new Scanner(System.in);
  18.         System.out.println("Enter a positive Integer for Count of card Hands:");
  19.         int hands = scan.nextInt();
  20.  
  21.         if (hands > 0) {
  22.             String[] deckOfCards = generateFullDeckOf52Cards();
  23.             HashSet<String> drawnHands = new HashSet<>();
  24.             do {
  25.                 String nextHand = generateTheNextRandomHand(deckOfCards);
  26.                 drawnHands.add(nextHand);
  27.             } while (drawnHands.size() < hands);
  28.  
  29.             System.out.printf("The %d Random generated Hands of 5 different cards are:%n",
  30.                             hands);
  31.             for (String cardsHand : drawnHands) {
  32.                 System.out.println(cardsHand);
  33.             }
  34.  
  35.         } else {
  36.             System.out.println("Error! - Invalid Input!!!");
  37.         }
  38.     }
  39.  
  40.     private static String[] generateFullDeckOf52Cards() {
  41.         String[] deckArr = new String[52];
  42.         int index = 0;
  43.         int face, suit;
  44.         for (face = 0; face < faceCards.length; face++) {
  45.             for (suit = 0; suit < suitCards.length; suit++) {
  46.                 deckArr[index] = faceCards[face] + suitCards[suit];
  47.                 index++;
  48.             }
  49.         }
  50.  
  51.         return deckArr;
  52.     }
  53.  
  54.     private static String generateTheNextRandomHand(String[] deck) {
  55.         Random randomGen = new Random();
  56.         boolean[] drawns = new boolean[deck.length];
  57.         StringBuilder fullHand = new StringBuilder();
  58.         int counter = 0;
  59.         do {
  60.             int randomCard = randomGen.nextInt(deck.length);
  61.             if (!drawns[randomCard]) {
  62.                 counter++;
  63.                 drawns[randomCard] = true;
  64.                 fullHand.append(deck[randomCard]);
  65.                 if (counter < 5) {
  66.                     fullHand.append(" ");
  67.                 }
  68.             }
  69.         } while (counter < 5);
  70.  
  71.         return fullHand.toString();
  72.     }
  73.  
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement