Advertisement
Guest User

Untitled

a guest
Dec 22nd, 2014
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.01 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. #include<string.h>
  5.  
  6. const int STRAIGHT_FLUSH = 256;
  7. const int FOUR_OF_A_KIND = 128;
  8. const int FULL_HOUSE = 64;
  9. const int FLUSH = 32;
  10. const int STRAIGHT = 16;
  11. const int THREE_OF_A_KIND = 8;
  12. const int TWO_PAIRS = 4;
  13. const int HIGHT_CARD = 2;
  14.  
  15. void print_welcome_message() {
  16.     printf("Welcom!\n");
  17. }
  18.  
  19. int gen_num_among_0_to_51() {
  20.     return rand() % 52;
  21. }
  22.  
  23. void print_deck(char* deck[], int is_used[]) {
  24.     int i;
  25.     for (i = 0; i < 52; i++) {
  26.         if (i != 0 && i % 13 == 0) {
  27.             printf("\n");
  28.         }
  29.  
  30.         if (is_used[i] == 1) {
  31.             printf("\033[1;31m%s\033[0m", deck[i]);
  32.         } else {
  33.             printf("\033[2;31m%s\033[0m", deck[i]);
  34.         }
  35.  
  36.         printf(", ");
  37.     }
  38.     printf("\n");
  39. }
  40.  
  41. char** gen_card_perm_by_ignore_index(char** cards, int i, int j) {
  42.     int x, count = 0;
  43.     char** gen_cards = (char**) malloc(sizeof(char*) * 5);
  44.     for (x = 0; x < 7; x++) {
  45.         if (x != i && x != j) {
  46.             gen_cards[count] = cards[x];
  47.             count++;
  48.         }
  49.     }
  50.     return gen_cards;
  51. }
  52.  
  53. char* dispatch_card(char* deck[], int* is_used) {
  54.     int target_index;
  55.     do {
  56.         target_index = gen_num_among_0_to_51();
  57.     } while (is_used[target_index] == 1);
  58.     is_used[target_index] = 1;
  59.     return deck[target_index];
  60. }
  61.  
  62. char*** choose_5_from_7(char** cards) {
  63.     int i, j, count = 0;
  64.     char*** card_perms = (char***) malloc(sizeof(char**) * 21);
  65.     for (i = 0; i < 7; i++) {
  66.         for (j = i ; j < 7; j++) {
  67.             if (i != j) {
  68.                 card_perms[count] = gen_card_perm_by_ignore_index(cards, i, j);
  69.             }
  70.         }
  71.     }
  72.     return card_perms;
  73. }
  74.  
  75. int is_straight_flush(char** cards) {
  76.     return 0;
  77. }
  78.  
  79. int is_four_of_a_kind(char** cards) {
  80.     return 0;
  81. }
  82.  
  83. int is_full_house(char** cards) {
  84.     return 0;
  85. }
  86. int is_flush(char** cards) {
  87.     return 0;
  88. }
  89. int is_straight(char** cards) {
  90.     return 0;
  91. }
  92. int is_three_of_a_kind(char** cards) {
  93.     return 0;
  94. }
  95. int is_two_pairs(char** cards) {
  96.     return 0;
  97. }
  98.  
  99. int is_high_card(char** cards) {
  100.     return 0;
  101. }
  102.  
  103. int detect_type(char** cards) {
  104.     if (is_straight_flush(cards)) {
  105.         return STRAIGHT_FLUSH;
  106.     } else if (is_four_of_a_kind(cards)) {
  107.         return FOUR_OF_A_KIND;
  108.     } else if (is_full_house(cards)) {
  109.         return FULL_HOUSE;
  110.     } else if (is_flush(cards)) {
  111.         return FLUSH;
  112.     } else if (is_straight(cards)) {
  113.         return STRAIGHT;
  114.     } else if (is_three_of_a_kind(cards)) {
  115.         return THREE_OF_A_KIND;
  116.     } else if (is_two_pairs(cards)) {
  117.         return TWO_PAIRS;
  118.     } else {
  119.         return HIGHT_CARD;
  120.     }
  121. }
  122. int main(int argc, char** argv) {
  123.     char* deck[] = {
  124.         "CA", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "CJ", "CQ", "CK",
  125.         "DA", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "DJ", "DQ", "DK",
  126.         "HA", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "HJ", "HQ", "HK",
  127.         "SA", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10", "SJ", "SQ", "SK",
  128.     };
  129.  
  130.     int* is_used = (int*) malloc(sizeof(int) * 52);
  131.     int i, j; for (i = 0; i < 52; i++) is_used[i] = 0;
  132.     srand (time(NULL));
  133.     print_welcome_message();
  134.  
  135.     print_deck(deck, is_used);
  136.  
  137.     char** cards = (char**) malloc(sizeof(char*) * 7);
  138.     cards[0] = dispatch_card(deck, is_used);
  139.     cards[1] = dispatch_card(deck, is_used);
  140.     cards[2] = dispatch_card(deck, is_used);
  141.     cards[3] = dispatch_card(deck, is_used);
  142.     cards[4] = dispatch_card(deck, is_used);
  143.     cards[5] = dispatch_card(deck, is_used);
  144.     cards[6] = dispatch_card(deck, is_used);
  145.  
  146.  
  147.     printf("\n");
  148.     print_deck(deck, is_used);
  149.     printf("\n");
  150.  
  151.     char*** cards_perm = choose_5_from_7(cards);
  152.     char** cards_temp;
  153.     for (i = 0; i < 21; i++) {
  154.         for (j = 0; j < 5; j++) {
  155.             cards_temp = cards_perm[i];
  156.             printf("%s ", cards_temp[j]);
  157.         }
  158.     }
  159.     return 0;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement