使用JavaScript如何创建21点算法函数

题目是这样的:在赌场21点游戏中,玩家可以通过计算牌桌上已经发放的卡牌的高低值来让自己在游戏中保持优势,这就叫21点算法。 根据下面的表格,每张卡牌都分配了一个值。如果卡牌的值大于0,那么玩家应该追加赌注。反之,追加少许赌注甚至不追加赌注。

Count Change Cards
+1 2, 3, 4, 5, 6
0 7, 8, 9
-1 10, ‘J’, ‘Q’, ‘K’,’A’

你需要写一个函数,实现21点算法,它根据参数 card的值来递增或递减变量count,函数返回一个由当前count和 “Bet”(count>0)或”Hold”(count<=0) 拼接的字符串。注意count和”Bet” 或 “Hold”应该用空格分开。
例如:

“-3 Hold”
“5 Bet”

函数返回的例子:

* 卡牌序列 2, 3, 4, 5, 6 应该返回 "5 Bet"         
* 卡牌序列 7, 8, 9 应该返回 "0 Hold"         
* 卡牌序列 10, J, Q, K, A 应该返回 "-5 Hold"         
* 卡牌序列 3, 7, Q, 8, A 应该返回 "-1 Hold"         
* 卡牌序列 2, J, 9, 2, 7 应该返回 "1 Bet"         
* 卡牌序列 3, 2, A, 10, K 应该返回 "-1 Hold"     

想了半天也没想明白,最后上网搜了一下。代码块如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var count = 0;
function cc(card) {
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 -= 1;
break;
}
if(count>0){
return count+" Bet";
}else if(count<=0){
return count+" Hold";
}
}
cc(3); cc(5); cc(10); cc('Q'); cc('A');

越学越发现,问题本来很简单 ,但脑子就好像转不过弯一样。也许我本就不适合当程序员吧,看来还是修电脑适合我。求大牛支招啊,我不想修电脑!!!

坚持原创文章分享,您的支持将鼓励我继续创作!