# Counting Cards is giving me a hard time :(

Counting Cards is giving me a hard time :(
0

#1

Hiya - so I’ve tried this two ways both with a result of 0Hold:

``````  case (card >=2 && card <= 6):
count += 1;
break;
case (card >= 7 && card <=6):
count++;
break;
case (card =10 || ('J', 'Q', 'K', 'A')):
count--;
break;

}
if (count > 0){
return count + "Bet";
}
else {
return count + "Hold";

And this way with the same if else declarations:
```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 --;
break;

I've read every post on this and understand all the solutions people have come to but can't seem to pass this challenge. Any tips / guidance would be appreciated!``````

#2

Case 7 through 9 is not required because it does not change the count

Edit: may also need a space before the string in your return: " Bet". That’s what I was stuck on for this challenge, a simple space.

#3

So there’s a few things I noticed …

case (card >= 7 && card <=6):

So how can a card be greater than or equal to 7 and less than or equal to 6. This case isn’t going to do anything …

[quote=“anothermiller, post:1, topic:60198”]
`case (card =10 || ('J', 'Q', 'K', 'A')):`[/quote]

And that’s not going to work how you think.

Firstly, you are assigning card a value of 10 (you only have one `=`, you need 2 or preferably three for a strict equal check).

Secondly, you can’t compare values that way. This: `('J', 'Q', 'K', 'A')` evaluates to `A`, always.

If you want to compare them each, then that’s going to be:

`case ( card === 10 || card === 'J' || card === 'Q' || card === 'K' || card === 'A' ):`

Alternatively you could define a string at the beginning:

``````const face_cards = '10JQKA';
``````

and use:

`case ( face_cards.includes( card ) ):`

I know 10 isn’t a face card, but … oh well.

Hope that helps!

#4

hie,

There will be three conditions:

1st one you got right…
2nd can be -> else if(card>6 && card <10) then count=count+0;
3rd you decrement count by 1.(include this in else part).

#5

Strictly speaking, none of the above answers should pass the test because we were asked to return a string, so count needs to be converted using .toString(). This may sound pedantic but it had me confused for a while, because we have not been shown how to use this method yet in the course. There have been a number of other quibbles I had about earlier parts of the course - how do I make these concerns known?

#6

And sorry I forgot to say, that I agree that what is probably making your code fail is the missing space in your text.

#7

As to making your concerns known, FCC is an open source project, you’re welcome to submit pull requests to pretty much any aspect of it!

#8

Hey,

It is clearly written in the question the function should return a string along with the current count…
so
return count + " Hold";
works fine.
And it does pass the test.
You can try…

#9

Hi

Like I said, I am being pedantic but to quote from the actual question:
“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.” This says, to re-word, current count as a string and the string “Bet” or “Hold”. I don’t think I am mis-interpreting the question, but “no sweat” as either answer was accepted. I will make my next contribution to the forum more positive/useful :-))

#10

Hi Ray,

I didn’t understand your objection earlier, or I would have mentioned this.

Just to be clear: Javascript automatically casts a number as a String when you add it to a string.

`return count + ' Bet';` is the same as `return count.toString() + ' Bet';`

A very simple example:

#11

Hi Micheal

Thanks for that explanation. I don’t think that this was mentioned in the course. I retract my previous “complaint” (and replace it with the objection that this was not made clear in the course! ? No. I will drop the matter).

Thanks again.

#12

No problem at all!

FCC is by no means a completely comprehensive, all you need source for canonical information about every nuance of the language. (And I don’t think they intend to/should be).

The closest thing to a full, canonical reference would be the language spec itself … but, a more user friendly resource and something I refer to constantly, is the Mozilla Developer Network. They have great documentation on all aspects of JavaScript, the DOM, web APIs, along with examples.

I’ve made it a habit, whenever I do a search, to append ’ MDN’ to the search string so that I’m more likely to wind up there than anywhere else.

I also spend time simply browsing there to better get a feel for methods and APIs I don’t currently know about.

Regards,
Micheal