Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Write a program to generate n random hands of 5 different cards
- * form a standard suit of 52 cards. */
- import java.util.HashSet;
- import java.util.Random;
- import java.util.Scanner;
- public class _06_RandomHandsOf5Cards {
- private static String[] faceCards = { "2", "3", "4", "5", "6", "7", "8",
- "9", "10", "J", "Q", "K", "A" };
- private static char[] suitCards = { '\u2663', '\u2666', '\u2665', '\u2660' };
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Scanner scan = new Scanner(System.in);
- System.out.println("Enter a positive Integer for Count of card Hands:");
- int hands = scan.nextInt();
- if (hands > 0) {
- String[] deckOfCards = generateFullDeckOf52Cards();
- HashSet<String> drawnHands = new HashSet<>();
- do {
- String nextHand = generateTheNextRandomHand(deckOfCards);
- drawnHands.add(nextHand);
- } while (drawnHands.size() < hands);
- System.out.printf("The %d Random generated Hands of 5 different cards are:%n",
- hands);
- for (String cardsHand : drawnHands) {
- System.out.println(cardsHand);
- }
- } else {
- System.out.println("Error! - Invalid Input!!!");
- }
- }
- private static String[] generateFullDeckOf52Cards() {
- String[] deckArr = new String[52];
- int index = 0;
- int face, suit;
- for (face = 0; face < faceCards.length; face++) {
- for (suit = 0; suit < suitCards.length; suit++) {
- deckArr[index] = faceCards[face] + suitCards[suit];
- index++;
- }
- }
- return deckArr;
- }
- private static String generateTheNextRandomHand(String[] deck) {
- Random randomGen = new Random();
- boolean[] drawns = new boolean[deck.length];
- StringBuilder fullHand = new StringBuilder();
- int counter = 0;
- do {
- int randomCard = randomGen.nextInt(deck.length);
- if (!drawns[randomCard]) {
- counter++;
- drawns[randomCard] = true;
- fullHand.append(deck[randomCard]);
- if (counter < 5) {
- fullHand.append(" ");
- }
- }
- } while (counter < 5);
- return fullHand.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement