计数卡游戏

时间:2016-12-16 08:06:41

标签: javascript

我正在尝试在javascript中编写卡片计数功能。根据下表为每张卡分配一个值。当计数为正数时,玩家应该下注。当计数为零或负数时,玩家应该下注。

(i)如果牌是2,3,4,5,6,则计数变化=(+ 1);

(ii)如果牌是7,8,9,则计数变化= 0;

(iii)如果牌是10,'J','Q','K','A',那么计数变化=(-1);

这是我的功能:

var count = 0;

function cc(card) {
  {
   case 2:
   case 3:
   case 4:
   case 5:
   case 6:
  return count++;
   case 7:
   case 8:
   case 9:
  return count;
   case 10:
   case 'J':
   case 'Q':
   case 'K':
   case 'A':
  return count--;
 }
}

cc(2); cc(3); cc(7); cc('K'); cc('A');

从代码的最后一行开始,我期待得到一个'0',但它给了我一个'1'。任何人都可以为此启发我吗?

2 个答案:

答案 0 :(得分:2)

请注意,表达式count ++(或count--)在更新之前返回计数器(并将其更新为副作用)。 如果要在更新后返回计数器,则应在计数器前使用++(或 - )。 例如,如果计数为1 -

  • 如果你返回count ++,那么将返回1,副作用数将增加到2。
  • 如果您返回++ count,则count将首先增加,然后返回,以便返回2。

答案 1 :(得分:0)

var count = 0;

function cc(card) {

  if (card >= 2 && card <= 6) {
    count += 1
  }
  else if (card >= 7 && card <= 9) {
    count += 0
  } else {
    count -= 1
  }
  return count <= 0 ? `${count} Hold` : `${count} Bet`;

}