在赌场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"
提示
既然card的值为7、8、9时,count值不变,那我们就可以忽略这种情况。
卡牌序列 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"
代码如下:
var count = 0;
function cc(card) {
switch(card){
case 2:
case 3:
case 4:
case 5:
case 6:
count+=1;//遇上上面几张卡牌递增
break;
case 10:
case 'J':
case 'Q':
case 'K':
case 'A':
count -=1;//遇上上面几张卡牌递减
break;
default:
count+=0;//遇上其他卡牌保持不变
}
//根据count结果进行判断
if (count>0){
return count +" Bet";
}else if(count<=0){
return count +" Hold";
}
}
// 你可以在这里添加/删除 cc 方法的调用来测试结果
// 提示: 左边只会显示最后一次执行的返回值
cc(2);cc(3);cc(4);cc(5);cc(6);
结果如下: