Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* In most Poker games, the "full house" hand is defined as three cards of the same face
- * + two cards of the same face, other than the first, regardless of the card's suits.
- * The cards faces are "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" and "A".
- * The card suits are "♣", "♦", "♥" and "♠".
- * Write a program to generate and print all full houses and print their number. */
- public class _03_FullHouse {
- 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
- int countFullHouses = generateAndPrintAllFullHouses();
- System.out.println();
- System.out..printf("The all combinations of generated full houses are: %d full houses!%n",
- countFullHouses);
- }
- private static int generateAndPrintAllFullHouses() {
- int counter = 0;
- int[] faces = new int[5];
- int i, j;
- String[] suits;
- for (faces[0] = 0; faces[0] < faceCards.length; faces[0]++) {
- faces[1] = faces[0];
- faces[2] = faces[0];
- // Now initialize the string Array for the fifth card suits,
- // and generate all possible combinations for the first 3 suits,
- // without repeating:
- for (i = 0; i < 4; i++) {
- suits = getTheFirst3CardSuits(i);
- for (faces[3] = 0; faces[3] < faceCards.length; faces[3]++) {
- if (faces[3] != faces[0]) {
- faces[4] = faces[3];
- // Here generate all possible combinations without
- // repeats, for the Last two card suits:
- for (j = 0; j < 6; j++) {
- getTheLast2cardSuits(j, suits);
- counter++;
- printTheNextFullHouse(faces, suits);
- }
- }
- }
- }
- }
- return counter;
- }
- private static String[] getTheFirst3CardSuits(int key) {
- String[] suits = new String[5];
- switch (key) {
- case 0:
- suits[0] = "" + suitCards[0];
- suits[1] = "" + suitCards[1];
- suits[2] = "" + suitCards[2];
- break;
- case 1:
- suits[0] = "" + suitCards[0];
- suits[1] = "" + suitCards[1];
- suits[2] = "" + suitCards[3];
- break;
- case 2:
- suits[0] = "" + suitCards[0];
- suits[1] = "" + suitCards[2];
- suits[2] = "" + suitCards[3];
- break;
- case 3:
- suits[0] = "" + suitCards[1];
- suits[1] = "" + suitCards[2];
- suits[2] = "" + suitCards[3];
- break;
- }
- return suits;
- }
- private static void getTheLast2cardSuits(int key, String[] suits) {
- switch (key) {
- case 1:
- suits[3] = "" + suitCards[0];
- suits[4] = "" + suitCards[2];
- break;
- case 2:
- suits[3] = "" + suitCards[0];
- suits[4] = "" + suitCards[3];
- break;
- case 3:
- suits[3] = "" + suitCards[1];
- suits[4] = "" + suitCards[2];
- break;
- case 4:
- suits[3] = "" + suitCards[1];
- suits[4] = "" + suitCards[3];
- break;
- case 5:
- suits[3] = "" + suitCards[2];
- suits[4] = "" + suitCards[3];
- break;
- default:
- suits[3] = "" + suitCards[0];
- suits[4] = "" + suitCards[1];
- break;
- }
- }
- private static void printTheNextFullHouse(int[] faceIndx, String[] suits) {
- StringBuilder fullHouse = new StringBuilder();
- fullHouse.append('(');
- for (int i = 0; i < faceIndx.length; i++) {
- fullHouse.append(faceCards[faceIndx[i]]);
- fullHouse.append(suits[i]);
- if (i < faceIndx.length - 1) {
- fullHouse.append(' ');
- }
- }
- fullHouse.append(" ");
- System.out.print(fullHouse);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement