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 valueAmount[13];
valueAmount[0] = 2;
valueAmount[1] = 3;
valueAmount[2] = 4;
valueAmount[3] = 5;
valueAmount[4] = 6;
valueAmount[5] = 7;
valueAmount[6] = 8;
valueAmount[7] = 9;
valueAmount[8] = 10;
valueAmount[9] = 11;
valueAmount[10] = 12;
valueAmount[11] = 13;
valueAmount[12] = 14;
int valueSuit[4];
valueSuit[0] = 1;
valueSuit[1] = 2;
valueSuit[2] = 3;
valueSuit[3] = 4;
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");
cards[i].valueAmount[0] = 2;
break;
case '3':
sprintf(cards[i].value, "Three");
cards[i].valueAmount[1] = 3;
break;
case '4':
sprintf(cards[i].value, "Four");
cards[i].valueAmount[2] = 4;
break;
case '5':
sprintf(cards[i].value, "Five");
cards[i].valueAmount[3] = 5;
break;
case '6':
sprintf(cards[i].value, "Six");
cards[i].valueAmount[4] = 6;
break;
case '7':
sprintf(cards[i].value, "Seven");
cards[i].valueAmount[5] = 7;
break;
case '8':
sprintf(cards[i].value, "Eight");
cards[i].valueAmount[6] = 8;
break;
case '9':
sprintf(cards[i].value, "Nine");
cards[i].valueAmount[7] = 9;
break;
case '0':
sprintf(cards[i].value, "Ten");
cards[i].valueAmount[8] = 10;
break;
case 'J':
sprintf(cards[i].value, "Jack");
cards[i].valueAmount[9] = 11;
score += 1;
break;
case 'Q':
sprintf(cards[i].value, "Queen");
cards[i].valueAmount[10] = 12;
score += 1;
break;
case 'K':
sprintf(cards[i].value, "King");
cards[i].valueAmount[11] = 13;
score += 1;
break;
case 'A':
sprintf(cards[i].value, "Ace");
cards[i].valueAmount[12] = 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");
cards[i].valueSuit[0] = 1;
break;
case 'D':
sprintf(cards[i].suit, "Diamonds");
cards[i].valueSuit[1] = 2;
break;
case 'H':
sprintf(cards[i].suit, "Hearts");
cards[i].valueSuit[2] = 3;
break;
case 'S':
sprintf(cards[i].suit, "Spades");
cards[i].valueSuit[3] = 4;
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");
}
i keep getting duplicate error for valueAmount