JavaScript 基础:21点算法

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

Count ChangeCards
+12, 3, 4, 5, 6
07, 8, 9
-110, ‘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 值不变,那我们就可以忽略这种情况。

var count = 0;
function cc(card) {   /*方法一:使用switch*/
  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--;
      break;
  }
  if (count > 0){
    return count + " Bet";
  } else {
    return count + " Hold";
  }
}

cc(2); cc(3); cc(7); cc('K'); cc('A');
cc(2); cc(3); cc(4); cc(5); cc(6);    //返回5 Bet
cc(7); cc(8); cc(9);                  //返回 0 Hold
cc(10); cc('J'); cc('Q'); cc('K'); cc('A'); //返回 -5 Hold
cc(3); cc(7); cc('Q');  cc(8); cc('A'); //返回 -1 Hold
cc(2); cc('J'); cc(9);  cc(2); cc(7); //返回 1 Bet
cc(2); cc(2);  cc(10);  //返回 1 Bet
cc(3); cc(2);  cc('A'); cc(10); cc('K'); //返回 -1 Hold

function cc(card) {   /*方法二:使用正则和 if */
  var regex = /[JQKA]/;
  if (card > 1 && card < 7){count++;}
  else if (card === 10 || String(card).match(regex)){count--;}

  if (count > 0) return count + " Bet";
  return count + " Hold";
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值