Code:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. typedef struct {
  5. char* shortValue;
  6. char shortSuit[1];
  7. char value[20];
  8. char suit[20];
  9. } CARD;
  10. CARD cards[5];
  11. int score;
  12. int failed;
  13. int main(void){
  14. /* Putting space between the lines makes it look "Tidy" or "Professional" */
  15. printf("Welcome to Poker Game.\n\n");
  16. printf("Lets Start.\n\n");
  17. printf("Draw Your Cards.\n\n");
  18. for(int i = 0; i < 5; i++){
  19. cards[i].shortValue = calloc(1, sizeof(char));
  20. }
  21. scanf("%c%c %c%c %c%c %c%c %c%c", cards[0].shortValue, cards[0].shortSuit, cards[1].shortValue, cards[1].shortSuit, cards[2].shortValue, cards[2].shortSuit, cards[3].shortValue, cards[3].shortSuit, cards[4].shortValue, cards[4].shortSuit);
  22. /* Use of switch command for long if statement */
  23. /* Use value of 0 as Ten */
  24. /* For each card in input, run check to determine number/letter in word form */
  25. for(int i = 0; i < 5; i++){
  26. switch(cards[i].shortValue[0])
  27. {
  28. case '2':
  29. sprintf(cards[i].value, "Two");
  30. break;
  31. case '3':
  32. sprintf(cards[i].value, "Three");
  33. break;
  34. case '4':
  35. sprintf(cards[i].value, "Four");
  36. break;
  37. case '5':
  38. sprintf(cards[i].value, "Five");
  39. break;
  40. case '6':
  41. sprintf(cards[i].value, "Six");
  42. break;
  43. case '7':
  44. sprintf(cards[i].value, "Seven");
  45. break;
  46. case '8':
  47. sprintf(cards[i].value, "Eight");
  48. break;
  49. case '9':
  50. sprintf(cards[i].value, "Nine");
  51. break;
  52. case '0':
  53. sprintf(cards[i].value, "Ten");
  54. break;
  55. case 'J':
  56. sprintf(cards[i].value, "Jack");
  57. cards[i].value[5] = "11";
  58. score += 1;
  59. break;
  60. case 'Q':
  61. sprintf(cards[i].value, "Queen");
  62. cards[i].value[5] = "12";
  63. score += 1;
  64. break;
  65. case 'K':
  66. sprintf(cards[i].value, "King");
  67. cards[i].value[5] = "13";
  68. score += 1;
  69. break;
  70. case 'A':
  71. sprintf(cards[i].value, "Ace");
  72. cards[i].value[5] = "14";
  73. score += 1;
  74. break;
  75. default:
  76. printf("Invalid value character for card #%d. \n", i+1);
  77. failed = 1;
  78. break;
  79. }
  80. }
  81. /* Run check for all short suits in input */
  82. for(int i = 0; i < 5; i++)
  83. {
  84. switch(cards[i].shortSuit[0])
  85. {
  86. case 'C':
  87. sprintf(cards[i].suit, "Clubs");
  88. break;
  89. case 'D':
  90. sprintf(cards[i].suit, "Diamonds");
  91. break;
  92. case 'H':
  93. sprintf(cards[i].suit, "Hearts");
  94. break;
  95. case 'S':
  96. sprintf(cards[i].suit, "Spades");
  97. break;
  98. default:
  99. printf("Invalid suit character for card #%d.\n", i+1);
  100. failed = 1;
  101. break;
  102. }
  103. }
  104. if(failed == 1){
  105. printf("Invalid value or suit character. Program exiting.\n");
  106. return 0;
  107. }
  108. for(int i = 0; i < 5; i++)
  109. printf("%s of %s\n", cards[i].value, cards[i].suit);
  110. printf("\n"); }