-
Notifications
You must be signed in to change notification settings - Fork 340
Lesson Review Counting Cards
About Blackjack
In the casino game Blackjack, a player can gain an advantage over the house by keeping track of the relative number of high and low cards remaining in the deck. This is called Card Counting.
Having more high cards remaining in the deck favors the player. Each card is assigned a value according to the table below. When the count is positive, the player should bet high. When the count is zero or negative, the player should bet low.
Value | Cards |
---|---|
+1 | 2, 3, 4, 5, 6 |
0 | 7, 8, 9 |
-1 | 10, 'J', 'Q', 'K','A' |
Instructions
You will write a card counting function. It will receive a card parameter and increment or decrement the global count variable according to the card's value (see table). The function will then return the current count and the string "Bet" if the count is positive, or "Hold" if the count is zero or negative.
Example Output:
- -3 Hold
- 5 Bet
Remember to use Read-Search-Ask if you get stuck. Try to pair program. Write your own code.
- Waypoint: Selecting from many options with Switch Statements
- Waypoint: Chaining If Else Statements
- Waypoint: Increment a Number with Javascript
- Change the code below
// Only change code below this line
and up to// Only change code above this line
- Take note that you are editing the inside of the
cc
function - Use what you've learned to check the value of each
card
parameter passed into the function - Keep a running count of that number
- If the final count is 1 or greater, return # Hold
- If the final count is 0 or less, return # Bet
- Use a
switch
(orelse if
) statement to count the value of each card.
- Add/subtract the value of each card to variable
count
. If the card is worth 0, don't do anything!
- After you've counted the cards, use an
if
statement to check the value ofcount
. Also, make sure your return has a space between the number and the string. If you are familiar with Ternary Operatiosn then you can use that.
Solution ahead!
var count = 0;
function cc(card) {
// Only change code below this line
switch (card){
case 2:
case 3:
case 4:
case 5:
case 6:
count+=1;
break;
case 7:
case 8:
case 9:
count+=0;
break;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count-= 1;
break;
}
return count + (count > 0 ? " Bet" : " Hold");
// Only change code above this line
}
// Add/remove calls to test your function.
// Note: Only the last will display
cc(2); cc(3); cc(7); cc('K'); cc('A');
- Checks 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'
- Returns
count
and concatenateBet
orHold
depending on the value ofcount
using a ternary operator.
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, we return the value ofcount
which is0
- We also have on the same return statement a ternary operator which concatenate the right string based on the value of
count
, which will return 0 Hold
Note You could also use an if - else statement to return the right information.
Thanks for visiting, if you like this please feel free to star my repo, follow me or even contact me about contributing as it will be a lot of work and having help would be cool.
- HTML5 and CSS
- Responsive Design with Bootstrap
- Gear up for Success
- jQuery
- Basic JavaScript
- Object Oriented and Functional Programming
- Basic Algorithm Scripting
- Basic Front End Development Projects
- Intermediate Algorithm Scripting
- JSON APIs and Ajax
- Intermediate Front End Development Projects
- Claim Your Front End Development Certificate
- Upper Intermediate Algorithm Scripting
- Automated Testing and Debugging
- Advanced Algorithm Scripting
- AngularJS (Legacy Material)
- Git
- Node.js and Express.js
- MongoDB
- API Projects
- Dynamic Web Applications
- Claim Your Back End Development Certificate
- Greefield Nonprofit Project 1
- Greefield Nonprofit Project 2
- Legacy Nonprofit Project 1
- Legacy Nonprofit Project 2
- Claim your Full Stack Development Certification
- Whiteboard Coding Interview Training
- Critical Thinking Interview Training
- Mock Interview 1
- Mock Interview 2
- Mock Interview 3