Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "stdio.h"
- #include "string.h"
- #include "stdarg.h"
- #include "stdlib.h"
- #include "time.h"
- typedef enum S { CLUBS, DIAMONDS, HEARTS, SPADES } SUIT;
- char suits[][10] = { "CLUBS", "DIAMONDS", "HEARTS", "SPADES" };
- typedef enum F { TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE } FACE;
- char faces[][10] = { "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN", "JACK", "QUEEN", "KING", "ACE" };
- typedef struct card
- {
- SUIT suit;
- FACE face;
- };
- typedef struct hand
- {
- card cards[5];
- };
- hand dealHand(hand handsDealt[], int numHandsDealt);
- char * printCard(card aCard);
- char * compareCards(card yourCard, card dealersCard);
- bool fourAces(hand aHand);
- int main()
- {
- int i = 0;
- hand yourHand;
- hand dealersHand;
- int seed = time(NULL);
- srand(seed);
- hand hands[10];
- yourHand = dealHand(hands, 0);
- hands[0] = yourHand;
- dealersHand = dealHand(hands, 1);
- printf("CARD TOURNAMENT RESULTS\n\n");
- while (i <= 4)
- {
- printf("Card#%d: %s (You) VS. %s (Dealer). Winner : %s.\n", i + 1, printCard(yourHand.cards[i]), printCard(dealersHand.cards[i]), compareCards(yourHand.cards[i], dealersHand.cards[i]));
- i++;
- }
- while (1)
- {
- yourHand = dealHand(hands, 0);
- if (fourAces(yourHand))
- {
- break;
- }
- i++;
- }
- printf("\nA hand contaning 4 aces was found after %d hands.\n\n", i);
- return 0;
- }
- hand dealHand(hand handsDealt[], int numberHands)
- {
- int i, j, k = 0;
- int found = 0;
- hand yourHand;
- hand dealerHand;
- hand newHand;
- int numberCards = 0;
- SUIT newSuit;
- FACE newFace;
- for (i = 0; numberCards <= 4; i++)
- {
- newFace = (FACE)(rand() % 13);
- newSuit = (SUIT)(rand() % 4);
- yourHand.cards[i].face = newFace;
- yourHand.cards[i].suit = newSuit;
- if (i != 0)
- {
- for (j = 0; j != i; j++)
- {
- while (yourHand.cards[j].suit == yourHand.cards[i].suit && yourHand.cards[j].face == yourHand.cards[i].face)
- {
- newFace = (FACE)(rand() % 13);
- newSuit = (SUIT)(rand() % 4);
- yourHand.cards[i].face = newFace;
- yourHand.cards[i].suit = newSuit;
- }
- /*while ((yourHand.cards[j].suit == yourHand.cards[0].suit && yourHand.cards[j].face == yourHand.cards[0].face) || (yourHand.cards[j].suit == yourHand.cards[1].suit && yourHand.cards[j].face == yourHand.cards[1].face) || (yourHand.cards[j].suit == yourHand.cards[2].suit && yourHand.cards[j].face == yourHand.cards[2].face)
- || (yourHand.cards[j].suit == yourHand.cards[3].suit && yourHand.cards[j].face == yourHand.cards[3].face) || (yourHand.cards[j].suit == yourHand.cards[4].suit && yourHand.cards[j].face == yourHand.cards[4].face))
- {
- newFace = (FACE)(rand() % 13);
- newSuit = (SUIT)(rand() % 4);
- yourHand.cards[i].face = newFace;
- yourHand.cards[i].suit = newSuit;
- }*/
- }
- newHand = yourHand;
- }
- if (numberHands != 0)
- {
- j = 0;
- for (k = 0; k != j; k++)
- {
- while (newHand.cards[k].suit == handsDealt[0].cards[j].suit && newHand.cards[k].face == handsDealt[0].cards[j].face)
- {
- newFace = (FACE)(rand() % 13);
- newSuit = (SUIT)(rand() % 4);
- newHand.cards[j].face = newFace;
- newHand.cards[j].suit = newSuit;
- }
- }
- }
- numberCards++;
- }
- return newHand;
- }
- char * compareCards(card yourCard, card dealersCard)
- {
- char * comparePointer;
- comparePointer = (char *)malloc(10 * sizeof(char));
- if (yourCard.face < dealersCard.face)
- {
- sprintf(comparePointer, "Dealer");
- }
- if (yourCard.face > dealersCard.face)
- {
- sprintf(comparePointer, "You");
- }
- if (yourCard.face == dealersCard.face)
- {
- sprintf(comparePointer, "Draw");
- }
- return comparePointer;
- }
- char * printCard(card anyCard)
- {
- char * cardPointer;
- cardPointer = (char *)malloc(20 * sizeof(char));
- sprintf(cardPointer, "%s %s", faces[anyCard.face], suits[anyCard.suit]);
- return cardPointer;
- }
- bool fourAces(hand anyHand)
- {
- int i;
- int numberAces = 0;
- bool fourAces = false;
- for (i = 0; i <= 4; i++)
- {
- if (anyHand.cards[i].face == 12)
- {
- numberAces++;
- }
- if (numberAces == 4)
- {
- fourAces = true;
- }
- }
- return fourAces;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement