* fix: restructure certifications guide articles * fix: added 3 dashes line before prob expl * fix: added 3 dashes line before hints * fix: added 3 dashes line before solutions
3.6 KiB
title
title |
---|
Counting Cards |
Counting Cards
Hints
Hint 1
Use a switch
(or else if
) statement to count the value of each card.
Hint 2
Add/subtract the value of each card to variable count. If the card is worth 0, don't do anything.
Hint 3
After you've counted the cards, use an if
statement to check the value of count. Also, make sure your return
has a space between the number and the string.
Solutions
Solution 1 (Click to Show/Hide)
function cc(card) {
// Only change code below this line
switch (card) {
case 2:
case 3:
case 4:
case 5:
case 6:
count++;
break;
case 10:
case "J":
case "Q":
case "K":
case "A":
count--;
break;
}
if (count > 0) {
return count + " Bet";
} else {
return count + " Hold";
}
// Only change code above this line
}
Code Explanation
- Check the value of each card via a
switch
statement. - The variable count:
- Increases by 1 if the card is a 2, 3, 4, 5, or 6.
- Since 7, 8, and 9 aren't worth anything, we ignore those cards in our
switch
statement. - Decreases by 1 if the card is a 10, 'J', 'Q', 'K', or 'A'.
- Check the value of count and return the appropriate response.
Example Run
cc(2);
runs.- The
switch
statement hitscase 2
, jumps down and adds 1 to the variablecount
. - The
switch
statement then hits thebreak
andcc(3);
runs. - This cycle continues until the final call is made,
cc('A');
. - After the
switch
statement, theif
statement checkscount
, which is now 0. - This then drops down to the
else
statement, which will return 0 Hold.
Note: As mentioned earlier, the switch
statement could have also been an else if
statement.
Solution 2 (Click to Show/Hide)
function cc(card) {
// Only change code below this line
var regex = /[JQKA]/;
if (card > 1 && card < 7) {
count++;
} else if (card === 10 || String(card).match(regex)) {
count--;
}
if (count > 0) return count + " Bet";
return count + " Hold";
// Only change code above this line
}
Code Explanation
· The function first evaluates if
the condition card
is a value greater than 1
and lower than 7
, in which case it increments count
by one.
· Then if the card is 10
or higher it decrements count
by one.
· The variable regex
is a regular expression representing values (letters) for the higher cards.
· The else
statement checks those values with the || (logical OR)
operator; first for 10
and then for any string that matches the regular expression using String.match().