2018-10-10 18:03:03 -04:00
|
|
|
|
---
|
|
|
|
|
id: 565bbe00e9cc8ac0725390f4
|
|
|
|
|
title: Counting Cards
|
|
|
|
|
challengeType: 1
|
|
|
|
|
videoUrl: ''
|
|
|
|
|
localeTitle: 计数卡
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Description
|
|
|
|
|
<section id="description">在赌场游戏Blackjack中,玩家可以通过跟踪牌组中剩余的高牌和低牌的相对数量来获得优势。这称为<a href="https://en.wikipedia.org/wiki/Card_counting" target="_blank">卡计数</a> 。在牌组中剩下更多高牌有利于玩家。根据下表为每张卡分配一个值。当计数为正数时,玩家应该下注。当计数为零或负数时,玩家应该下注低。 <table class="table table-striped"><thead><tr><th>计数变化</th><th>牌</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>你会写一个卡计数功能。它将接收一个<code>card</code>参数,可以是数字或字符串,并根据卡的值递增或递减全局<code>count</code>变量(参见表格)。然后,该函数将返回一个包含当前计数的字符串,如果计数为正则返回字符串<code>Bet</code> ,如果计数为零或为负,则返回<code>Hold</code> 。当前计数和玩家的决定( <code>Bet</code>或<code>Hold</code> )应该由一个空格分隔。 <strong>示例输出</strong> <br> <code>-3 Hold</code> <br> <code>5 Bet</code> <strong>提示</strong> <br>当值为7,8或9时,请勿将<code>count</code>重置为0。 <br>不要返回数组。 <br>不要在输出中包含引号(单引号或双引号)。 </section>
|
|
|
|
|
|
|
|
|
|
## Instructions
|
|
|
|
|
<section id="instructions">
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
## Tests
|
|
|
|
|
<section id='tests'>
|
|
|
|
|
|
|
|
|
|
```yml
|
|
|
|
|
tests:
|
|
|
|
|
- text: 牌序列<code>5 Bet</code>应该返回<code>5 Bet</code>
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(2);cc(3);cc(4);cc(5);var out = cc(6); if(out === "5 Bet") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: '卡片序列7,8,9应返回<code>0 Hold</code>'
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(7);cc(8);var out = cc(9); if(out === "0 Hold") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: 卡序列10,J,Q,K,A应返回<code>-5 Hold</code>
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(10);cc('J');cc('Q');cc('K');var out = cc('A'); if(out === "-5 Hold") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: '卡序列3,7,Q,8,A应返回<code>-1 Hold</code>'
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(3);cc(7);cc('Q');cc(8);var out = cc('A'); if(out === "-1 Hold") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: 牌序列2,J, <code>1 Bet</code>应该返回<code>1 Bet</code>
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(2);cc('J');cc(9);cc(2);var out = cc(7); if(out === "1 Bet") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: 牌序列<code>1 Bet</code>应该返回<code>1 Bet</code>
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(2);cc(2);var out = cc(10); if(out === "1 Bet") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
- text: '卡序列3,2,A,10,K应返回<code>-1 Hold</code>'
|
2020-02-18 01:40:55 +09:00
|
|
|
|
testString: assert((function(){ count = 0; cc(3);cc(2);cc('A');cc(10);var out = cc('K'); if(out === "-1 Hold") {return true;} return false; })());
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
## Challenge Seed
|
|
|
|
|
<section id='challengeSeed'>
|
|
|
|
|
|
|
|
|
|
<div id='js-seed'>
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
var count = 0;
|
|
|
|
|
|
|
|
|
|
function cc(card) {
|
|
|
|
|
// Only change code below this line
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return "Change Me";
|
|
|
|
|
// Only change code above this line
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Add/remove calls to test your function.
|
|
|
|
|
// Note: Only the last will display
|
|
|
|
|
cc(2); cc(3); cc(7); cc('K'); cc('A');
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
|
|
## Solution
|
|
|
|
|
<section id='solution'>
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
// solution required
|
|
|
|
|
```
|
|
|
|
|
</section>
|