Advertisement
vacendak

Shuffle Cards

Jul 10th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. struct card{
  6.     int number;
  7.     char suit[9];
  8. };
  9.  
  10. typedef struct card Card;
  11. typedef char Suit[10];
  12.  
  13. void start_cdeck(Card m[], Suit p[]);
  14. void shuffle(Card m[]);
  15. void outcard(Card m[]);
  16. void copycard(char a[], char b[], int name);
  17.  
  18. int main() {
  19.     Card cdeck[48];
  20.     Suit p[4] = {"diamonds", "clubs", "hearts", "spades"};
  21.  
  22.     srand(time(NULL));
  23.     start_cdeck(cdeck, p);
  24.     shuffle(cdeck);
  25.     outcard(cdeck);
  26.  
  27.     return 0;
  28. }
  29.  
  30. void copycard(char a[], char b[], int name){
  31.  
  32.     for (int i = 0; i < 9; ++i) {
  33.         a[i] = b[i];
  34.     }
  35. }
  36.  
  37. void start_cdeck(Card m[], Suit p[]){
  38.  
  39.     for (int i = 0; i < 48; ++i) {
  40.         m[i].number = (i%12)+1;
  41.         copycard(m[i].suit, p[i/12], 9);
  42.     }
  43. }
  44.  
  45. void shuffle(Card m[]){
  46.     int j;
  47.     Card temp;
  48.  
  49.     for (int i = 0; i < 48; ++i) {
  50.         j = rand()%48;
  51.         temp = m[i];
  52.         m[i] = m[j];
  53.         m[j] = temp;
  54.     }
  55. }
  56.  
  57. void outcard(Card m[]){
  58.  
  59.     for (int i = 0; i < 48; ++i) {
  60.         printf(" %2i of ", m[i].number);
  61.         printf("%s", m[i].suit);
  62.         printf("\n");
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement