5.3 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 565bbe00e9cc8ac0725390f4 | Підрахунок карт | 1 | https://scrimba.com/c/c6KE7ty | 16809 | counting-cards |
--description--
В азартній грі «Блекджек» гравець може визначити, чи він має перевагу в наступній роздачі, відстежуючи кількість старших та молодших карт, що залишились в колоді. Це називається підрахунком карт.
Чим більше старших карт у колоді, тим краще для гравця. Кожній карті присвоєне значення відповідно до нижчеподаної таблиці. Якщо підрахунок більший за нуль, гравець повинен ставити старшу карту. Якщо підрахунок дорівнює нулю або менший за нуль, гравець повинен ставити молодшу карту.
| Зміна рахунку | Карти |
|---|---|
| +1 | 2, 3, 4, 5, 6 |
| 0 | 7, 8, 9 |
| -1 | 10, 'J', 'Q', 'К', 'A' |
Ви писатимете функцію підрахунку карт. Вона отримає параметр card, який може бути числом або рядком, а також збільшуватиме або зменшуватиме глобальну змінну count, відповідно до значення карти (див. таблицю). Тоді функція поверне рядок з поточним підрахунком і рядок Bet, якщо підрахунок більше нуля, або Hold, якщо підрахунок дорівнює або менше нуля. Між поточним підрахунком та рішенням гравця (Bet або Hold) повинен бути один пробіл.
Приклад виводів: -3 Hold або 5 Bet
Підказка
НЕ скидайте count до 0, якщо значення становить 7, 8 або 9. НЕ повертайте масив.
НЕ використовуйте лапки (одинарні чи подвійні) у виводі.
--hints--
Ваша функція повинна повертати значення для підрахунку та текст (Bet або Hold) з одним пробілом між ними.
assert(//
(function () {
count = 0;
let out = cc(10);
const hasSpace = /-?\d+ (Bet|Hold)/.test('' + out);
return hasSpace;
})()
);
Послідовність карт 2, 3, 4, 5, 6 повинна повертати рядок 5 Bet
assert(
(function () {
count = 0;
cc(2);
cc(3);
cc(4);
cc(5);
var out = cc(6);
if (out === '5 Bet') {
return true;
}
return false;
})()
);
Послідовність карт 7, 8, 9 повинна повертати рядок 0 Hold
assert(
(function () {
count = 0;
cc(7);
cc(8);
var out = cc(9);
if (out === '0 Hold') {
return true;
}
return false;
})()
);
Послідовність карт 10, J, Q, K, A повинна повертати рядок -5 Hold
assert(
(function () {
count = 0;
cc(10);
cc('J');
cc('Q');
cc('K');
var out = cc('A');
if (out === '-5 Hold') {
return true;
}
return false;
})()
);
Послідовність карт 3, 7, Q, 8, A повинна повертати рядок -1 Hold
assert(
(function () {
count = 0;
cc(3);
cc(7);
cc('Q');
cc(8);
var out = cc('A');
if (out === '-1 Hold') {
return true;
}
return false;
})()
);
Послідовність карт 2, J, 9, 2, 7 повинна повертати рядок 1 Bet
assert(
(function () {
count = 0;
cc(2);
cc('J');
cc(9);
cc(2);
var out = cc(7);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
Послідовність карт 2, 2, 10 повинна повертати рядок 1 Bet
assert(
(function () {
count = 0;
cc(2);
cc(2);
var out = cc(10);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
Послідовність карт 3, 2, A, 10, K повинна повертати рядок -1 Hold
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--
let count = 0;
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--
let count = 0;
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";
}
}