fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. enum class Suit
  6. {
  7. Club,
  8. Diamond,
  9. Heart,
  10. Spade,
  11. count
  12. };
  13.  
  14. enum class Rank
  15. {
  16. Two,
  17. Three,
  18. Four,
  19. Five,
  20. Six,
  21. Seven,
  22. Eight,
  23. Nine,
  24. Ten,
  25. Jack,
  26. Queen,
  27. King,
  28. Ace,
  29. count
  30. };
  31.  
  32. struct card
  33. {
  34. int rank;
  35. int suit;
  36. };
  37.  
  38. void
  39. print_card(const card* this_card)
  40. {
  41. switch (this_card->rank) {
  42. case int(Rank::Two):
  43. cout << "Two";
  44. break;
  45. case int(Rank::Three):
  46. cout << "Three";
  47. break;
  48. case int(Rank::Four):
  49. cout << "Four";
  50. break;
  51. case int(Rank::Five):
  52. cout << "Five";
  53. break;
  54. case int(Rank::Six):
  55. cout << "Six";
  56. break;
  57. case int(Rank::Seven):
  58. cout << "Seven";
  59. break;
  60. case int(Rank::Eight):
  61. cout << "Eight";
  62. break;
  63. case int(Rank::Nine):
  64. cout << "Nine";
  65. break;
  66. case int(Rank::Ten):
  67. cout << "Ten";
  68. break;
  69. case int(Rank::Jack):
  70. cout << "Jack";
  71. break;
  72. case int(Rank::Queen):
  73. cout << "Queen";
  74. break;
  75. case int(Rank::King):
  76. cout << "King";
  77. break;
  78. case int(Rank::Ace):
  79. cout << "Ace";
  80. }
  81. cout << " of ";
  82. switch (this_card->suit) {
  83. case int(Suit::Club):
  84. cout << "clubs.";
  85. break;
  86. case int(Suit::Diamond):
  87. cout << "diamonds.";
  88. break;
  89. case int(Suit::Heart):
  90. cout << "Heart";
  91. break;
  92. case int(Suit::Spade):
  93. cout << "Spade";
  94. }
  95. cout << ".\n";
  96. }
  97.  
  98. void
  99. initialize_deck(card* d)
  100. {
  101. int card_number = 0;
  102. for (int r = 0; r < int(Rank::count); r++) {
  103. for (int s = 0; s < int(Suit::count); s++) {
  104. d[card_number] = card{.suit = s, .rank = r };
  105. cout << "Initializing ";
  106. print_card(&(d[card_number]));
  107. card_number++;
  108. }
  109. }
  110. cout << "Initialization of " << card_number << " cards complete." << endl;
  111. }
  112.  
  113. void
  114. swap_card(card* card_deck, card* card1, card* card2)
  115. {
  116. // unimplemented
  117. }
  118.  
  119. int
  120. main()
  121. {
  122. card* test = new card{.suit = int(Suit::Heart), .rank = int(Rank::Four) };
  123. print_card(test);
  124. delete test;
  125.  
  126. card* deck = new card[52];
  127. initialize_deck(deck);
  128.  
  129. delete[](deck);
  130.  
  131. return 0;
  132. }
  133.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Four of Heart.
Initializing Two of clubs..
Initializing Two of diamonds..
Initializing Two of Heart.
Initializing Two of Spade.
Initializing Three of clubs..
Initializing Three of diamonds..
Initializing Three of Heart.
Initializing Three of Spade.
Initializing Four of clubs..
Initializing Four of diamonds..
Initializing Four of Heart.
Initializing Four of Spade.
Initializing Five of clubs..
Initializing Five of diamonds..
Initializing Five of Heart.
Initializing Five of Spade.
Initializing Six of clubs..
Initializing Six of diamonds..
Initializing Six of Heart.
Initializing Six of Spade.
Initializing Seven of clubs..
Initializing Seven of diamonds..
Initializing Seven of Heart.
Initializing Seven of Spade.
Initializing Eight of clubs..
Initializing Eight of diamonds..
Initializing Eight of Heart.
Initializing Eight of Spade.
Initializing Nine of clubs..
Initializing Nine of diamonds..
Initializing Nine of Heart.
Initializing Nine of Spade.
Initializing Ten of clubs..
Initializing Ten of diamonds..
Initializing Ten of Heart.
Initializing Ten of Spade.
Initializing Jack of clubs..
Initializing Jack of diamonds..
Initializing Jack of Heart.
Initializing Jack of Spade.
Initializing Queen of clubs..
Initializing Queen of diamonds..
Initializing Queen of Heart.
Initializing Queen of Spade.
Initializing King of clubs..
Initializing King of diamonds..
Initializing King of Heart.
Initializing King of Spade.
Initializing Ace of clubs..
Initializing Ace of diamonds..
Initializing Ace of Heart.
Initializing Ace of Spade.
Initialization of 52 cards complete.