// **************************************************
// Function: blackJackValue
//
// Description: Calculates the blackjack value of two cards
//
// Parameters: card1 - first card (char)
// card2 - second card (char)
//
// Returns: total hand value
// -1 if invalid card
//
// **************************************************
#include <stdio.h>
// function prototype
int blackJackValue(char card1, char card2);
int main()
{
char card1, card2;
int result;
// prompt user for cards
printf("Enter first card (2-9, T, J, Q, K, A): ");
scanf(" %c", &card1);
printf("Enter second card (2-9, T, J, Q, K, A): ");
scanf(" %c", &card2);
// call function
result = blackJackValue(card1, card2);
// check for invalid result
if(result != -1)
{
printf("\nFinal Hand Value: %d\n", result);
}
return 0;
}
int blackJackValue(char card1, char card2)
{
int handValue = 0; // MUST initialize
char hand[2] = {card1, card2};
// check for two Aces
if(hand[0] == 'A' && hand[1] == 'A')
{
handValue = 12;
printf("\nThe score is %d", handValue);
return handValue;
}
// loop to determine hand value
for(int i = 0; i < 2; ++i)
{
// number cards
if(hand[i] >= '2' && hand[i] <= '9')
{
handValue += hand[i] - '0';
}
// face cards
else if(hand[i] == 'T' || hand[i] == 'J' || hand[i] == 'Q' || hand[i] == 'K')
{
handValue += 10;
}
// Ace
else if(hand[i] == 'A')
{
handValue += 11;
}
// invalid
else
{
printf("\nInvalid card");
return -1;
}
}
printf("\nThe score is %d", handValue);
return handValue;
}
Ly8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gRnVuY3Rpb246IGJsYWNrSmFja1ZhbHVlCi8vCi8vIERlc2NyaXB0aW9uOiBDYWxjdWxhdGVzIHRoZSBibGFja2phY2sgdmFsdWUgb2YgdHdvIGNhcmRzCi8vCi8vIFBhcmFtZXRlcnM6IGNhcmQxIC0gZmlyc3QgY2FyZCAoY2hhcikKLy8gICAgICAgICAgICAgY2FyZDIgLSBzZWNvbmQgY2FyZCAoY2hhcikKLy8KLy8gUmV0dXJuczogdG90YWwgaGFuZCB2YWx1ZQovLyAgICAgICAgICAtMSBpZiBpbnZhbGlkIGNhcmQKLy8KLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiNpbmNsdWRlIDxzdGRpby5oPgoKLy8gZnVuY3Rpb24gcHJvdG90eXBlCmludCBibGFja0phY2tWYWx1ZShjaGFyIGNhcmQxLCBjaGFyIGNhcmQyKTsKCmludCBtYWluKCkKewogICAgY2hhciBjYXJkMSwgY2FyZDI7CiAgICBpbnQgcmVzdWx0OwoKICAgIC8vIHByb21wdCB1c2VyIGZvciBjYXJkcwogICAgcHJpbnRmKCJFbnRlciBmaXJzdCBjYXJkICgyLTksIFQsIEosIFEsIEssIEEpOiAiKTsKICAgIHNjYW5mKCIgJWMiLCAmY2FyZDEpOwoKICAgIHByaW50ZigiRW50ZXIgc2Vjb25kIGNhcmQgKDItOSwgVCwgSiwgUSwgSywgQSk6ICIpOwogICAgc2NhbmYoIiAlYyIsICZjYXJkMik7CgogICAgLy8gY2FsbCBmdW5jdGlvbgogICAgcmVzdWx0ID0gYmxhY2tKYWNrVmFsdWUoY2FyZDEsIGNhcmQyKTsKCiAgICAvLyBjaGVjayBmb3IgaW52YWxpZCByZXN1bHQKICAgIGlmKHJlc3VsdCAhPSAtMSkKICAgIHsKICAgICAgICBwcmludGYoIlxuRmluYWwgSGFuZCBWYWx1ZTogJWRcbiIsIHJlc3VsdCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCmludCBibGFja0phY2tWYWx1ZShjaGFyIGNhcmQxLCBjaGFyIGNhcmQyKQp7CiAgICBpbnQgaGFuZFZhbHVlID0gMDsgICAvLyBNVVNUIGluaXRpYWxpemUKICAgIGNoYXIgaGFuZFsyXSA9IHtjYXJkMSwgY2FyZDJ9OwoKICAgIC8vIGNoZWNrIGZvciB0d28gQWNlcwogICAgaWYoaGFuZFswXSA9PSAnQScgJiYgaGFuZFsxXSA9PSAnQScpCiAgICB7CiAgICAgICAgaGFuZFZhbHVlID0gMTI7CiAgICAgICAgcHJpbnRmKCJcblRoZSBzY29yZSBpcyAlZCIsIGhhbmRWYWx1ZSk7CiAgICAgICAgcmV0dXJuIGhhbmRWYWx1ZTsKICAgIH0KCiAgICAvLyBsb29wIHRvIGRldGVybWluZSBoYW5kIHZhbHVlCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgMjsgKytpKQogICAgewogICAgICAgIC8vIG51bWJlciBjYXJkcwogICAgICAgIGlmKGhhbmRbaV0gPj0gJzInICYmIGhhbmRbaV0gPD0gJzknKQogICAgICAgIHsKICAgICAgICAgICAgaGFuZFZhbHVlICs9IGhhbmRbaV0gLSAnMCc7CiAgICAgICAgfQoKICAgICAgICAvLyBmYWNlIGNhcmRzCiAgICAgICAgZWxzZSBpZihoYW5kW2ldID09ICdUJyB8fCBoYW5kW2ldID09ICdKJyB8fCBoYW5kW2ldID09ICdRJyB8fCBoYW5kW2ldID09ICdLJykKICAgICAgICB7CiAgICAgICAgICAgIGhhbmRWYWx1ZSArPSAxMDsKICAgICAgICB9CgogICAgICAgIC8vIEFjZQogICAgICAgIGVsc2UgaWYoaGFuZFtpXSA9PSAnQScpCiAgICAgICAgewogICAgICAgICAgICBoYW5kVmFsdWUgKz0gMTE7CiAgICAgICAgfQoKICAgICAgICAvLyBpbnZhbGlkCiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCJcbkludmFsaWQgY2FyZCIpOwogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgfQoKICAgIHByaW50ZigiXG5UaGUgc2NvcmUgaXMgJWQiLCBoYW5kVmFsdWUpOwogICAgcmV0dXJuIGhhbmRWYWx1ZTsKfQ==
Enter first card (2-9, T, J, Q, K, A): Enter second card (2-9, T, J, Q, K, A):
Invalid card