PHP二十一点脚本很简单,我有一组牌,我随机选择一张并添加它,而且保持计数也很容易,其中最难的部分与 A 一起出现。
除了暴力破解,还有什么有效的方法来计算它们吗?从理论上讲,有可能(尽管极不可能)连续获得 4 个 ace,我如何让它算作 14 而不是 44、34、24 等?(最接近 21 没有克服它)
PHP二十一点脚本很简单,我有一组牌,我随机选择一张并添加它,而且保持计数也很容易,其中最难的部分与 A 一起出现。
除了暴力破解,还有什么有效的方法来计算它们吗?从理论上讲,有可能(尽管极不可能)连续获得 4 个 ace,我如何让它算作 14 而不是 44、34、24 等?(最接近 21 没有克服它)
像这样处理王牌的东西:
$total = 0;
// Sort in a way that the aces are last, handle other cards FIRST
foreach($cards as $card)
{
switch($card)
{
case "king":
case "queen":
case "jack":
case "10":
$total += 10;
break;
// Etc, other cards
case "ace":
if($total >= 11)
{
$total += 1;
}
else
{
$total += 11;
}
break;
}
}
由于 A 的规则,二十一点中的牌本身没有价值。您无需查看每张卡,确定一个值,然后添加它们。
您查看手牌,并确定手牌的价值。
现在在确定一手牌的价值时,对于大多数牌来说,它的价值等于牌号,但你需要针对面牌和 A 的特殊逻辑。
因此:不要从你的牌组中抽出“数字”,抽出“牌”,然后编写一个函数,将“牌”的“手”(列表)计算为一个值。