Skip to content

Instantly share code, notes, and snippets.

@anu1097
Last active April 22, 2021 18:17
Show Gist options
  • Save anu1097/6490338733ef2bff53a877855fcd45d6 to your computer and use it in GitHub Desktop.
Save anu1097/6490338733ef2bff53a877855fcd45d6 to your computer and use it in GitHub Desktop.
BlackJack Problem
function BlackjackHighest(strArr) {
cardValues = {
"two": {"value": 2, "order": 2},
"three": {"value": 3, "order": 3},
"four": {"value": 4, "order": 4},
"five": {"value": 5, "order": 5},
"six": {"value": 6, "order": 6},
"seven": {"value": 7, "order": 7},
"eight": {"value": 8, "order": 8},
"nine": {"value": 9, "order": 9},
"ten": {"value": 10, "order": 10},
"jack": {"value": 10, "order": 11},
"queen": {"value": 10, "order": 12},
"king": {"value": 10, "order": 13},
}
let sum1 = 0;
let sum11 = 0;
let maxCard = null;
strArr.forEach(card => {
if(card !== "ace"){
sum1 += cardValues[card]["value"];
sum11 += cardValues[card]["value"];
if(!maxCard){
maxCard = card;
}
else if(cardValues[maxCard]["order"]< cardValues[card]["order"]){
maxCard = card;
}
}
else{
sum1 += 1;
sum11 += 11;
}
})
let resultSum ;
if (sum11 > 21){
resultSum = sum1;
}
else{
resultSum = sum11;
maxCard = "ace";
}
let result = "";
if(resultSum > 21){
result = "above ";
}
else if(resultSum < 21){
result = "below ";
}
else {
result = "blackjack ";
}
return result + maxCard;
}
// keep this function call here
console.log('Test 1 passing: ' + (BlackjackHighest(["four","ace","ten"]) == 'below ten')); // 15 || 25
console.log('Test 2 passing: ' + (BlackjackHighest(["ace","queen"]) == 'blackjack ace')); // 21 || 11
console.log('Test 3 passing: ' + (BlackjackHighest(["ace","ace","queen"]) == 'below queen')); // 12
// ace 1: || 11
// 2 - 10: same value
// j-q-k: 10
// first output: below, blackjack, above
// second output: highest card
// Priority Order
// blackjack > below > above
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment