#include <stdio.h>
#include <ctype.h>
int blackjackScore(char card1, char card2)
{
// Convert cards to uppercase
int value1 = 0;
int value2 = 0;
// Card value calculations made into another function for better maintainability
int calcCardValue(char card)
{
if (card >= '2' && card <= '9')
{
return card - '0'; // Regular cards 2 through 9
}
else if (card == 'T' || card == 'J' || card == 'Q' || card == 'K')
{
return 10; // For face cards
}
else if (card == 'A')
{
return 11; // For ace
}
else
{
return -1; // Invalid card
} // If end
}
value1 = calcCardValue(card1);
value2 = calcCardValue(card2);
// Check for invalid input
if (value1 == -1 || value2 == -1)
{
printf("*** Invalid card entered.\n"); return -1;
}
// Checks if you are dealt two aces, makes them equal 11+1=12
if (card1 == 'A' && card2 == 'A')
{
return 12;
}
// makes one ace equal 1 instead so you don't bust
int total = value1 + value2;
if ((card1 == 'A' || card2 == 'A') && total > 21)
{
total -= 10; // 11 - 10 = 1
}
return total;
}
int main()
{
char c1, c2;
scanf(" %c %c", &c1
, &c2
);
int score = blackjackScore(c1, c2);
if (score != -1)
{
printf("The score is %d\n", score
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxjdHlwZS5oPgoKaW50IGJsYWNramFja1Njb3JlKGNoYXIgY2FyZDEsIGNoYXIgY2FyZDIpIAp7CgkKICAgIC8vIENvbnZlcnQgY2FyZHMgdG8gdXBwZXJjYXNlCiAgICBjYXJkMSA9IHRvdXBwZXIoY2FyZDEpOwogICAgY2FyZDIgPSB0b3VwcGVyKGNhcmQyKTsKCiAgICBpbnQgdmFsdWUxID0gMDsKICAgIGludCB2YWx1ZTIgPSAwOwoKICAgIC8vIENhcmQgdmFsdWUgY2FsY3VsYXRpb25zIG1hZGUgaW50byBhbm90aGVyIGZ1bmN0aW9uIGZvciBiZXR0ZXIgbWFpbnRhaW5hYmlsaXR5CiAgICBpbnQgY2FsY0NhcmRWYWx1ZShjaGFyIGNhcmQpIAogICAgewogICAgICAgIGlmIChjYXJkID49ICcyJyAmJiBjYXJkIDw9ICc5JykgCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gY2FyZCAtICcwJzsgLy8gUmVndWxhciBjYXJkcyAyIHRocm91Z2ggOQogICAgICAgIH0KICAgICAgICAKICAgICAgICBlbHNlIGlmIChjYXJkID09ICdUJyB8fCBjYXJkID09ICdKJyB8fCBjYXJkID09ICdRJyB8fCBjYXJkID09ICdLJykKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAxMDsgLy8gRm9yIGZhY2UgY2FyZHMKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZWxzZSBpZiAoY2FyZCA9PSAnQScpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMTE7IC8vIEZvciBhY2UKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIC0xOyAvLyBJbnZhbGlkIGNhcmQKICAgICAgICB9IC8vIElmIGVuZAogICAgfQoKICAgIHZhbHVlMSA9IGNhbGNDYXJkVmFsdWUoY2FyZDEpOwogICAgdmFsdWUyID0gY2FsY0NhcmRWYWx1ZShjYXJkMik7CgogICAgLy8gQ2hlY2sgZm9yIGludmFsaWQgaW5wdXQKICAgIGlmICh2YWx1ZTEgPT0gLTEgfHwgdmFsdWUyID09IC0xKQogICAgewogICAgICAgIHByaW50ZigiKioqIEludmFsaWQgY2FyZCBlbnRlcmVkLlxuIik7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgIC8vIENoZWNrcyBpZiB5b3UgYXJlIGRlYWx0IHR3byBhY2VzLCBtYWtlcyB0aGVtIGVxdWFsIDExKzE9MTIKICAgIGlmIChjYXJkMSA9PSAnQScgJiYgY2FyZDIgPT0gJ0EnKQogICAgewogICAgICAgIHJldHVybiAxMjsKICAgIH0KCiAgICAvLyBtYWtlcyBvbmUgYWNlIGVxdWFsIDEgaW5zdGVhZCBzbyB5b3UgZG9uJ3QgYnVzdAogICAgaW50IHRvdGFsID0gdmFsdWUxICsgdmFsdWUyOwogICAgaWYgKChjYXJkMSA9PSAnQScgfHwgY2FyZDIgPT0gJ0EnKSAmJiB0b3RhbCA+IDIxKQogICAgewogICAgICAgIHRvdGFsIC09IDEwOyAvLyAxMSAtIDEwID0gMQogICAgfQoKICAgIHJldHVybiB0b3RhbDsKfQoKaW50IG1haW4oKSAKewogICAgY2hhciBjMSwgYzI7CiAgICBwcmludGYoIkVudGVyIHR3byBjYXJkczogIik7CiAgICBzY2FuZigiICVjICVjIiwgJmMxLCAmYzIpOwoKICAgIGludCBzY29yZSA9IGJsYWNramFja1Njb3JlKGMxLCBjMik7CiAgICBpZiAoc2NvcmUgIT0gLTEpIAogICAgewogICAgICAgIHByaW50ZigiVGhlIHNjb3JlIGlzICVkXG4iLCBzY29yZSk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K