Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<time.h>
- #include<string.h>
- const int STRAIGHT_FLUSH = 256;
- const int FOUR_OF_A_KIND = 128;
- const int FULL_HOUSE = 64;
- const int FLUSH = 32;
- const int STRAIGHT = 16;
- const int THREE_OF_A_KIND = 8;
- const int TWO_PAIRS = 4;
- const int HIGHT_CARD = 2;
- void print_welcome_message() {
- printf("Welcom!\n");
- }
- int gen_num_among_0_to_51() {
- return rand() % 52;
- }
- void print_deck(char* deck[], int is_used[]) {
- int i;
- for (i = 0; i < 52; i++) {
- if (i != 0 && i % 13 == 0) {
- printf("\n");
- }
- if (is_used[i] == 1) {
- printf("\033[1;31m%s\033[0m", deck[i]);
- } else {
- printf("\033[2;31m%s\033[0m", deck[i]);
- }
- printf(", ");
- }
- printf("\n");
- }
- char** gen_card_perm_by_ignore_index(char** cards, int i, int j) {
- int x, count = 0;
- char** gen_cards = (char**) malloc(sizeof(char*) * 5);
- for (x = 0; x < 7; x++) {
- if (x != i && x != j) {
- gen_cards[count] = cards[x];
- count++;
- }
- }
- return gen_cards;
- }
- char* dispatch_card(char* deck[], int* is_used) {
- int target_index;
- do {
- target_index = gen_num_among_0_to_51();
- } while (is_used[target_index] == 1);
- is_used[target_index] = 1;
- return deck[target_index];
- }
- char*** choose_5_from_7(char** cards) {
- int i, j, count = 0;
- char*** card_perms = (char***) malloc(sizeof(char**) * 21);
- for (i = 0; i < 7; i++) {
- for (j = i ; j < 7; j++) {
- if (i != j) {
- card_perms[count] = gen_card_perm_by_ignore_index(cards, i, j);
- }
- }
- }
- return card_perms;
- }
- int is_straight_flush(char** cards) {
- return 0;
- }
- int is_four_of_a_kind(char** cards) {
- return 0;
- }
- int is_full_house(char** cards) {
- return 0;
- }
- int is_flush(char** cards) {
- return 0;
- }
- int is_straight(char** cards) {
- return 0;
- }
- int is_three_of_a_kind(char** cards) {
- return 0;
- }
- int is_two_pairs(char** cards) {
- return 0;
- }
- int is_high_card(char** cards) {
- return 0;
- }
- int detect_type(char** cards) {
- if (is_straight_flush(cards)) {
- return STRAIGHT_FLUSH;
- } else if (is_four_of_a_kind(cards)) {
- return FOUR_OF_A_KIND;
- } else if (is_full_house(cards)) {
- return FULL_HOUSE;
- } else if (is_flush(cards)) {
- return FLUSH;
- } else if (is_straight(cards)) {
- return STRAIGHT;
- } else if (is_three_of_a_kind(cards)) {
- return THREE_OF_A_KIND;
- } else if (is_two_pairs(cards)) {
- return TWO_PAIRS;
- } else {
- return HIGHT_CARD;
- }
- }
- int main(int argc, char** argv) {
- char* deck[] = {
- "CA", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C9", "C10", "CJ", "CQ", "CK",
- "DA", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "D9", "D10", "DJ", "DQ", "DK",
- "HA", "H2", "H3", "H4", "H5", "H6", "H7", "H8", "H9", "H10", "HJ", "HQ", "HK",
- "SA", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10", "SJ", "SQ", "SK",
- };
- int* is_used = (int*) malloc(sizeof(int) * 52);
- int i, j; for (i = 0; i < 52; i++) is_used[i] = 0;
- srand (time(NULL));
- print_welcome_message();
- print_deck(deck, is_used);
- char** cards = (char**) malloc(sizeof(char*) * 7);
- cards[0] = dispatch_card(deck, is_used);
- cards[1] = dispatch_card(deck, is_used);
- cards[2] = dispatch_card(deck, is_used);
- cards[3] = dispatch_card(deck, is_used);
- cards[4] = dispatch_card(deck, is_used);
- cards[5] = dispatch_card(deck, is_used);
- cards[6] = dispatch_card(deck, is_used);
- printf("\n");
- print_deck(deck, is_used);
- printf("\n");
- char*** cards_perm = choose_5_from_7(cards);
- char** cards_temp;
- for (i = 0; i < 21; i++) {
- for (j = 0; j < 5; j++) {
- cards_temp = cards_perm[i];
- printf("%s ", cards_temp[j]);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement