4.4 KiB
id, title, challengeType, videoUrl, forumTopicId, dashedName
| id | title | challengeType | videoUrl | forumTopicId | dashedName |
|---|---|---|---|---|---|
| 565bbe00e9cc8ac0725390f4 | Karten zählen | 1 | https://scrimba.com/c/c6KE7ty | 16809 | counting-cards |
--description--
Beim Kasinospiel Blackjack kann ein Spieler, indem er die relative Anzahl der im Deck verbliebenen hohen und niedrigen Karten im Auge behält, herausfinden, ob er in der nächsten Runde über einen Vorteil gegenüber dem Haus verfügt. Das nennt man das Zählen von Karten.
Wenn mehr hohe Karten im Deck verbleiben, ist der Spieler im Vorteil. Jeder Karte wird ein Wert gemäß der folgenden Tabelle zugewiesen. Wenn die Zählung positiv ist, sollte der Spieler hoch setzen. Wenn die Anzahl null oder negativ ist, sollte der Spieler niedrig setzen.
| Veränderung der Zählung | Karten |
|---|---|
| +1 | 2, 3, 4, 5, 6 |
| 0 | 7, 8, 9 |
| -1 | 10, 'J', 'Q', 'K', 'A' |
Du wirst eine Funktion zum Zählen von Karten schreiben. Sie erhält einen card-Parameter, der eine Zahl oder ein String sein kann, und erhöht oder verringert die globale count-Variable entsprechend dem Wert der Karte (siehe Tabelle). Die Funktion gibt dann einen String mit dem aktuellen Zählerstand und dem String Bet zurück, wenn der Zählerstand positiv ist, oder Hold, wenn der Zählerstand null oder negativ ist. Die aktuelle Anzahl und die Entscheidung des Spielers (Bet oder Hold) sollten durch ein einzelnes Leerzeichen getrennt werden.
Beispielausgaben: -3 Hold oder 5 Bet
Hinweis
Setze count NICHT auf 0 zurück, wenn der Wert 7, 8 oder 9 ist. Gib KEIN Array zurück.
Die Ausgabe darf KEINE Anführungszeichen (einfach oder doppelt) enthalten.
--hints--
Deine Funktion sollte einen Wert für die Anzahl und den Text (Bet oder Hold), mit einem Leerzeichen dazwischen, zurückgeben.
assert(//
(function () {
count = 0;
let out = cc(10);
const hasSpace = /-?\d+ (Bet|Hold)/.test('' + out);
return hasSpace;
})()
);
Die Kartenfolge 2, 3, 4, 5, 6 sollte den String 5 Bet zurückgeben
assert(
(function () {
count = 0;
cc(2);
cc(3);
cc(4);
cc(5);
var out = cc(6);
if (out === '5 Bet') {
return true;
}
return false;
})()
);
Die Kartenfolge 7, 8, 9 sollte den String 0 Hold zurückgeben
assert(
(function () {
count = 0;
cc(7);
cc(8);
var out = cc(9);
if (out === '0 Hold') {
return true;
}
return false;
})()
);
Die Kartenfolge 10, J, Q, K, A sollte den String -5 Hold zurückgeben
assert(
(function () {
count = 0;
cc(10);
cc('J');
cc('Q');
cc('K');
var out = cc('A');
if (out === '-5 Hold') {
return true;
}
return false;
})()
);
Die Kartenfolge 3, 7, Q, 8, A sollte den String -1 Hold zurückgeben
assert(
(function () {
count = 0;
cc(3);
cc(7);
cc('Q');
cc(8);
var out = cc('A');
if (out === '-1 Hold') {
return true;
}
return false;
})()
);
Die Kartenfolge 2, J, 9, 2, 7 sollte den String 1 Bet zurückgeben
assert(
(function () {
count = 0;
cc(2);
cc('J');
cc(9);
cc(2);
var out = cc(7);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
Die Kartenfolge 2, 2, 10 sollte den String 1 Bet zurückgeben
assert(
(function () {
count = 0;
cc(2);
cc(2);
var out = cc(10);
if (out === '1 Bet') {
return true;
}
return false;
})()
);
Die Kartenfolge 3, 2, A, 10, K sollte den String -1 Hold zurückgeben
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";
}
}