Code:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- typedef struct {
- char* shortValue;
- char shortSuit[1];
- char value[20];
- char suit[20];
- } CARD;
- CARD cards[5];
- int score;
- int failed;
- int main(void){
- /* Putting space between the lines makes it look "Tidy" or "Professional" */
- printf("Welcome to Poker Game.\n\n");
- printf("Lets Start.\n\n");
- printf("Draw Your Cards.\n\n");
- for(int i = 0; i < 5; i++){
- cards[i].shortValue = calloc(1, sizeof(char));
- }
- 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);
- /* Use of switch command for long if statement */
- /* Use value of 0 as Ten */
- /* For each card in input, run check to determine number/letter in word form */
- for(int i = 0; i < 5; i++){
- switch(cards[i].shortValue[0])
- {
- case '2':
- sprintf(cards[i].value, "Two");
- break;
- case '3':
- sprintf(cards[i].value, "Three");
- break;
- case '4':
- sprintf(cards[i].value, "Four");
- break;
- case '5':
- sprintf(cards[i].value, "Five");
- break;
- case '6':
- sprintf(cards[i].value, "Six");
- break;
- case '7':
- sprintf(cards[i].value, "Seven");
- break;
- case '8':
- sprintf(cards[i].value, "Eight");
- break;
- case '9':
- sprintf(cards[i].value, "Nine");
- break;
- case '0':
- sprintf(cards[i].value, "Ten");
- break;
- case 'J':
- sprintf(cards[i].value, "Jack");
- cards[i].value[5] = "11";
- score += 1;
- break;
- case 'Q':
- sprintf(cards[i].value, "Queen");
- cards[i].value[5] = "12";
- score += 1;
- break;
- case 'K':
- sprintf(cards[i].value, "King");
- cards[i].value[5] = "13";
- score += 1;
- break;
- case 'A':
- sprintf(cards[i].value, "Ace");
- cards[i].value[5] = "14";
- score += 1;
- break;
- default:
- printf("Invalid value character for card #%d. \n", i+1);
- failed = 1;
- break;
- }
- }
- /* Run check for all short suits in input */
- for(int i = 0; i < 5; i++)
- {
- switch(cards[i].shortSuit[0])
- {
- case 'C':
- sprintf(cards[i].suit, "Clubs");
- break;
- case 'D':
- sprintf(cards[i].suit, "Diamonds");
- break;
- case 'H':
- sprintf(cards[i].suit, "Hearts");
- break;
- case 'S':
- sprintf(cards[i].suit, "Spades");
- break;
- default:
- printf("Invalid suit character for card #%d.\n", i+1);
- failed = 1;
- break;
- }
- }
- if(failed == 1){
- printf("Invalid value or suit character. Program exiting.\n");
- return 0;
- }
- for(int i = 0; i < 5; i++)
- printf("%s of %s\n", cards[i].value, cards[i].suit);
- printf("\n");
}