【问题标题】:C# Which int is Closer to 21C# 哪个 int 更接近 21
【发布时间】:2015-01-12 18:07:50
【问题描述】:

我正在用 C# 开发一个简单的二十一点游戏

例如我有int playerTotalint dealerTotal 我想比较它们哪个最接近21,哪个大于21。

我该怎么做?

【问题讨论】:

    标签: c# compare blackjack


    【解决方案1】:

    您可以使用Math.Abs 方法找出这些数字与 21 之间的绝对差值,然后进行比较:

    int closest = Math.Abs(playerTotal - 21) <Math.Abs(dealerTotal - 21) 
                 ? playerTotal
                 : dealerTotal;
    

    寻找最伟大的:

    int greatest = playerTotal > 21 ? playerTotal : dealerTotal;
    

    【讨论】:

      【解决方案2】:

      在适当的二十一点规则下,仅仅比较牌是不够的。你必须按正确的顺序做事,即:

      • 如果庄家有一张 A 或 10 张牌,他会偷看,如果他有一张自然牌, 他暴露了它,手就结束了。所有的手都输了,除非他们也输了 自然。如果庄家没有自然牌,则继续游戏。
      • 每个玩家依次击球/分球/双打直到完成。如果有任何手破产, 它立即丢失。任何自然人都会立即付款并移除。
      • 之后,庄家根据赌场规则进行击牌。如果经销商 破产,他支付所有剩余的未破产玩家手牌。
      • 仅在此之后进行手数比较。因为我们已经知道两者都是 非萧条,这是一个简单的问题,更多的胜利,平局。

      您必须按此顺序执行,否则您会得到错误的结果。的主要来源 二十一点的赌场优势在于,如果你和庄家都破产了,你就输了, 因为你先出局了。

      “大西洋城”的规则有点不同,经销商没有 底牌,不偷看。如果庄家最终拥有自然牌,则支出为 调整为就好像它已经按照上面概述的方式完成了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-20
        • 1970-01-01
        • 2018-08-28
        • 2018-09-05
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多