#include <stdio.h> #include <stdlib.h> #include <time.h> struct bitCard{ unsigned face : 4; unsigned suit : 2; unsigned color : 1; }; typedef struct bitCard Card; void fillDeck(Card *); void deal (Card *, const char *wFaceBase[], const char *wSuitBase[], const char *wColor[]); void shuffle(Card *wDeck); int main() { Card deck[52]; const char * faceBase [14] = {"Ace", "Deuce", "Three", "Four",//Номинал "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King", "\n"}; const char *suitBase[5] = {"Hearts", "Diamonds", "Clubs", "Spades", "\n"}; const char *color[2] = {"Red", "Black"}; srand (time(NULL)); fillDeck(deck); shuffle(deck); deal(deck, faceBase, suitBase, color); return 0; } void fillDeck(Card *wDeck) { int i; for (i = 0; i <= 51; i++) { wDeck[i].face = i % 13; wDeck[i].suit = i / 13; wDeck[i].color = i / 26; } } void deal(Card *wDeck, const char *wFaceBase[], const char *wSuitBase[], const char *wColor[]) { int k1, k2; for(k1 = 0, k2 = k1 + 26; k1 <= 25; k1++, k2++) { printf("%6s of %8s Color is %5s ", wFaceBase[wDeck[k1].face], wSuitBase[wDeck[k1].suit], wColor[wDeck[k1].color]); printf("%6s of %8s Color is %5s\n", wFaceBase[wDeck[k2].face], wSuitBase[wDeck[k2].suit], wColor[wDeck[k2].color]); } } void shuffle(Card *wDeck) { int i, j; Card temp; for (i = 0; i < 52; i++) { j = rand() % 52; temp = wDeck[i]; wDeck[i] = wDeck[j]; wDeck[j] = temp; } }
