根据下面的表格,每张卡牌都分配了一个值。如果卡牌的值大于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"应该用空格分开。
想到有三种方法实现此功能,分别是采用if条件判断,数组以及switch选择语句。
采用if条件判断:
<script> var count=0; function cc(card){ if (card<=6&&card>=2){ count+=1; } else if (card>=7&&card<=9){ } else {
count-=1;
}
return count+" "+(count>0?Bet:Hold);
} </script>
采用数组的方式:
<script>
var count=0; function cc(card){ var x={2:1,3:1,4:1,5:1,6:1,7:0,8:0,9:0,10:-1,‘J‘:-1;‘Q‘:-1,‘K‘:-1;‘A‘:-1} count+=x[card]; return count+" "+(count>0?"Bet":"Hold") } </script>
采用switch选择语句:
<script> 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;break; } return count+" "+(count>0?"Bet":"Hold"); } </script>
通过这三种方法都可以实现需要的功能,第二种方法比较别出心裁。
原文:https://www.cnblogs.com/railgun/p/10018120.html