// **************************************************
// 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): ");
printf("Enter second card (2-9, T, J, Q, K, A): ");
// 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;
char hand[2] = {card1, card2};
//check for two Aces
if(hand[0] =='A' && hand[1] =='A')
{
handValue = 12;
}//if
else
{
//loop to determine hand value
for(int i = 0;i < 2; ++i)
{
// Determines value of number cards by subtracting by 0 to change char to int
if(hand[i] >= '2' && hand[i] <= '9')
{
handValue += hand[i] - '0';
}//if
//Assigns value of tens and face cards as 10
else if(hand[i] =='T'||hand[i] =='J'||hand[i] =='Q'||hand[i] =='K')
{
handValue += 10;
}// else if
//Assigns value of Aces as 11
else if(hand[i] =='A')
{
handValue += 11;
}//else if
//catches invalid entries and returns -1 and error message
else
{
//error message for invalid entry and returns -1
return -1;
}//else
}//for
}//else
//message to display score
printf("\nThe score is %d", handValue
);
//if hand is valid returns point value
return handValue;
}//blackJackValue
Ly8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLy8gRnVuY3Rpb246IGJsYWNrSmFja1ZhbHVlCi8vCi8vIERlc2NyaXB0aW9uOiBDYWxjdWxhdGVzIHRoZSBibGFja2phY2sgdmFsdWUgb2YgdHdvIGNhcmRzCi8vCi8vIFBhcmFtZXRlcnM6IGNhcmQxIC0gZmlyc3QgY2FyZCAoY2hhcikKLy8gICAgICAgICAgICAgY2FyZDIgLSBzZWNvbmQgY2FyZCAoY2hhcikKLy8KLy8gUmV0dXJuczogdG90YWwgaGFuZCB2YWx1ZQovLyAgICAgICAgICAtMSBpZiBpbnZhbGlkIGNhcmQKLy8KLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCiNpbmNsdWRlIDxzdGRpby5oPgoKLy8gZnVuY3Rpb24gcHJvdG90eXBlCmludCBibGFja0phY2tWYWx1ZShjaGFyIGNhcmQxLCBjaGFyIGNhcmQyKTsKCmludCBtYWluKCkKewogICAgY2hhciBjYXJkMSwgY2FyZDI7CiAgICBpbnQgcmVzdWx0OwoKICAgIC8vIHByb21wdCB1c2VyIGZvciBjYXJkcwogICAgcHJpbnRmKCJFbnRlciBmaXJzdCBjYXJkICgyLTksIFQsIEosIFEsIEssIEEpOiAiKTsKICAgIHNjYW5mKCIgJWMiLCAmY2FyZDEpOwoKICAgIHByaW50ZigiRW50ZXIgc2Vjb25kIGNhcmQgKDItOSwgVCwgSiwgUSwgSywgQSk6ICIpOwogICAgc2NhbmYoIiAlYyIsICZjYXJkMik7CgogICAgLy8gY2FsbCBmdW5jdGlvbgogICAgcmVzdWx0ID0gYmxhY2tKYWNrVmFsdWUoY2FyZDEsIGNhcmQyKTsKCiAgICAvLyBjaGVjayBmb3IgaW52YWxpZCByZXN1bHQKICAgIGlmKHJlc3VsdCAhPSAtMSkKICAgIHsKICAgICAgICBwcmludGYoIlxuRmluYWwgSGFuZCBWYWx1ZTogJWRcbiIsIHJlc3VsdCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCmludCBibGFja0phY2tWYWx1ZShjaGFyIGNhcmQxLCBjaGFyIGNhcmQyKQp7CiAgICBpbnQgaGFuZFZhbHVlOwogICAgY2hhciBoYW5kWzJdID0ge2NhcmQxLCBjYXJkMn07CgogICAgLy9jaGVjayBmb3IgdHdvIEFjZXMKICAgIGlmKGhhbmRbMF0gPT0nQScgJiYgaGFuZFsxXSA9PSdBJykKICAgIHsKICAgICAgICAgaGFuZFZhbHVlID0gMTI7CgogICAgfS8vaWYKICAgIGVsc2UKICAgIHsKICAgICAgICAgLy9sb29wIHRvIGRldGVybWluZSBoYW5kIHZhbHVlIAogICAgICAgICBmb3IoaW50IGkgPSAwO2kgPCAyOyArK2kpCiAgICAgICAgIHsKICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHZhbHVlIG9mIG51bWJlciBjYXJkcyBieSBzdWJ0cmFjdGluZyBieSAwIHRvIGNoYW5nZSBjaGFyIHRvIGludAogICAgICAgICAgICAgIGlmKGhhbmRbaV0gPj0gJzInICYmIGhhbmRbaV0gPD0gJzknKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgaGFuZFZhbHVlICs9IGhhbmRbaV0gLSAnMCc7CiAgICAgICAgICAgICAgfS8vaWYKCiAgICAgICAgICAgICAgLy9Bc3NpZ25zIHZhbHVlIG9mIHRlbnMgYW5kIGZhY2UgY2FyZHMgYXMgMTAgCiAgICAgICAgICAgICAgZWxzZSBpZihoYW5kW2ldID09J1QnfHxoYW5kW2ldID09J0onfHxoYW5kW2ldID09J1EnfHxoYW5kW2ldID09J0snKQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgaGFuZFZhbHVlICs9IDEwOwogICAgICAgICAgICAgIH0vLyBlbHNlIGlmCiAgICAKICAgICAgICAgICAgICAvL0Fzc2lnbnMgdmFsdWUgb2YgQWNlcyBhcyAxMQogICAgICAgICAgICAgIGVsc2UgaWYoaGFuZFtpXSA9PSdBJykKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIGhhbmRWYWx1ZSArPSAxMTsKICAgICAgICAgICAgICB9Ly9lbHNlIGlmCgogICAgICAgICAgICAgIC8vY2F0Y2hlcyBpbnZhbGlkIGVudHJpZXMgYW5kIHJldHVybnMgLTEgYW5kIGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgLy9lcnJvciBtZXNzYWdlIGZvciBpbnZhbGlkIGVudHJ5IGFuZCByZXR1cm5zIC0xCiAgICAgICAgICAgICAgICAgICBwcmludGYoIlxuSW52YWxpZCBjYXJkIik7CiAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAgfS8vZWxzZQogICAgIAogICAgICAgICB9Ly9mb3IKICAgIH0vL2Vsc2UKCiAgICAvL21lc3NhZ2UgdG8gZGlzcGxheSBzY29yZQogICAgcHJpbnRmKCJcblRoZSBzY29yZSBpcyAlZCIsIGhhbmRWYWx1ZSk7CgogICAgLy9pZiBoYW5kIGlzIHZhbGlkIHJldHVybnMgcG9pbnQgdmFsdWUKICAgIHJldHVybiBoYW5kVmFsdWU7Cgp9Ly9ibGFja0phY2tWYWx1ZQo=
Enter first card (2-9, T, J, Q, K, A): Enter second card (2-9, T, J, Q, K, A):
Invalid card