2021-06-15 00:49:18 -07:00
---
id: 565bbe00e9cc8ac0725390f4
2021-07-21 20:53:20 +05:30
title: Contar cartas
2021-06-15 00:49:18 -07:00
challengeType: 1
videoUrl: 'https://scrimba.com/c/c6KE7ty'
forumTopicId: 16809
dashedName: counting-cards
---
# --description--
2021-07-26 23:39:21 +09:00
No jogo de casino Blackjack, um jogador pode ganhar vantagem sobre a casa, mantendo o número relativo de cartas altas e baixas restantes no baralho. Isso se chama [contagem de cartas ](https://en.wikipedia.org/wiki/Card_counting ).
2021-06-15 00:49:18 -07:00
2021-07-26 23:39:21 +09:00
Ter cartas mais altas restantes no baralho favorece o jogador. A cada carta é atribuído um valor de acordo com a tabela abaixo. Quando o contador for positivo, o jogador deve apostar alto. Quando a contagem for zero ou negativa, o jogador deverá apostar baixo.
2021-06-15 00:49:18 -07:00
2021-07-26 23:39:21 +09:00
< table class = 'table table-striped' > < thead > < tr > < th > Mudança na contagem< / th > < th > Cartas< / th > < / tr > < / thead > < tbody > < tr > < td > +1< / td > < td > 2, 3, 4, 5, 6< / td > < / tr > < tr > < td > 0< / td > < td > 7, 8, 9< / td > < / tr > < tr > < td > -1< / td > < td > 10, 'J', 'Q', 'K', 'A'< / td > < / tr > < / tbody > < / table >
2021-06-15 00:49:18 -07:00
2021-07-26 23:39:21 +09:00
Você vai escrever uma função de contagem de cartas. A função receberá um parâmetro `card` , que pode ser um número ou uma string, e incrementar ou decrementar a variável global `count` de acordo com o valor da carta (veja a tabela). Em seguida, a função retornará a string com o valor atual de contagem (variável count) e a string `Bet` se a contagem for positiva, ou `Hold` se a contagem for zero ou negativa. A contagem atual e a decisão do jogador (`Bet` ou `Hold` ) deve ser separado por um único espaço.
2021-06-15 00:49:18 -07:00
2021-07-26 23:39:21 +09:00
**Exemplo de saída:** `-3 Hold` ou `5 Bet`
2021-06-15 00:49:18 -07:00
2021-07-09 21:23:54 -07:00
**Dica**
2021-07-26 23:39:21 +09:00
NÃO redefina o valor de `count` para 0 quando o valor for 7, 8, ou 9. Não retorne um array.
2021-07-09 21:23:54 -07:00
Não inclua aspas (simples ou duplas) na saída.
2021-06-15 00:49:18 -07:00
# --hints--
2021-12-10 11:14:24 +05:30
Sequência de cartas 2, 3, 4, 5, 6 deve retornar a string `5 Bet`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(2);
cc(3);
cc(4);
cc(5);
var out = cc(6);
if (out === '5 Bet') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 7, 8, 9 deve retornar a string `0 Hold`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(7);
cc(8);
var out = cc(9);
if (out === '0 Hold') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 10, J, Q, K, A deve retornar a string `-5 Hold`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(10);
cc('J');
cc('Q');
cc('K');
var out = cc('A');
if (out === '-5 Hold') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 3, 7, Q, 8, A deve retornar a string `-1 Hold`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(3);
cc(7);
cc('Q');
cc(8);
var out = cc('A');
if (out === '-1 Hold') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 2, J, 9, 2, 7 deve retornar a string `1 Bet`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(2);
cc('J');
cc(9);
cc(2);
var out = cc(7);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 2, 2, 10 deve retornar a string `1 Bet`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(2);
cc(2);
var out = cc(10);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
```
2021-07-09 21:23:54 -07:00
Sequência de cartas 3, 2, A, 10, K deve retornar a string `-1 Hold`
2021-06-15 00:49:18 -07:00
```js
assert(
(function () {
count = 0;
cc(3);
cc(2);
cc('A');
cc(10);
var out = cc('K');
if (out === '-1 Hold') {
return true;
}
return false;
})()
);
```
# --seed--
## --seed-contents--
```js
2021-10-27 15:10:57 +00:00
let count = 0;
2021-06-15 00:49:18 -07:00
function cc(card) {
// Only change code below this line
return "Change Me";
// Only change code above this line
}
cc(2); cc(3); cc(7); cc('K'); cc('A');
```
# --solutions--
```js
2021-10-27 15:10:57 +00:00
let count = 0;
2021-06-15 00:49:18 -07:00
function cc(card) {
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--;
}
if(count > 0) {
return count + " Bet";
} else {
return count + " Hold";
}
}
```