SAMLIKS Posted April 15, 2019 Share Posted April 15, 2019 i am supposed to write a card counting function that It will receive a card parameter, which can be a number or a string, and increment or decrement the global count variable according to the card's value (see table). The function will then return a string with the current count and the string Bet if the count is positive, or Hold if the count is zero or negative. The current count and the player's decision (Bet or Hold) should be separated by a single space. but the code doesn't seem to run,am being told that this must be done: Hide Copy Code Cards Sequence 2, 3, 4, 5, 6 should return 5 Bet Cards Sequence 7, 8, 9 should return 0 Hold Cards Sequence 10, J, Q, K, A should return -5 Hold Cards Sequence 3, 7, Q, 8, A should return -1 Hold Cards Sequence 2, J, 9, 2, 7 should return 1 Bet Cards Sequence 2, 2, 10 should return 1 Bet Cards Sequence 3, 2, A, 10, K should return -1 Hold What I have tried: Hide Expand Copy Code 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 ? "5 Bet": "Hold"); please can anyone help with the solution. Link to comment Share on other sites More sharing options...
Funce Posted April 15, 2019 Share Posted April 15, 2019 For this, I would define an associative array with the card number/letters as Keys, and the change to the count as Values. Then I'd just iterate through the card input, pulling out the values of the aforementioned associative array, and compare the final value, and bet or hold accordingly. Link to comment Share on other sites More sharing options...
JMRKER Posted April 18, 2019 Share Posted April 18, 2019 Associative array would be a good solution, but here is an alternative with a simple function: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width-device-width,initial-scale=1.0, user-scalable=yes"/> <title> HTML5 Test Page </title> <!-- From: http://w3schools.invisionzone.com/topic/58931-javascriptswitch/ --> </head> <body> <pre>Expected: Cards Sequence 2, 3, 4, 5, 6 should return 5 Bet Cards Sequence 7, 8, 9 should return 0 Hold Cards Sequence 10, J, Q, K, A should return -5 Hold Cards Sequence 3, 7, Q, 8, A should return -1 Hold Cards Sequence 2, J, 9, 2, 7 should return 1 Bet Cards Sequence 2, 2, 10 should return 1 Bet Cards Sequence 3, 2, A, 10, K should return -1 Hold </pre> <pre id="demo"></pre> <script> const doc = (IDS) => document.getElementById(IDS); const msg = (IDS, ...message) => doc(IDS).innerHTML += message.join(' ')+'\n'; function countCards(c) { const cards = ['2','3','4','5','6','7','8','9','10','J','Q','K','A']; const arr = c.split(','); var count = 0, pos, a; while (arr.length > 0) { a = arr.shift(); pos = cards.indexOf(''+a); if (pos < 5) { count++; } if (pos > 7) { count--; } } if (count > 0) { return count+' Bet'; } else { return count+' Hold'; } } msg('demo',countCards('2,3,4,5,6')); msg('demo',countCards('7,8,9')); msg('demo',countCards('10,J,Q,K,A')); msg('demo',countCards('3,7,Q,8,A')); msg('demo',countCards('2,J,9,2,7')); msg('demo',countCards('2,2,10')); msg('demo',countCards('3,2,A,10,K')); </script> </body> </html> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now