WOO logo

在这一页

二十一点(加密版)

在这一页

简介

本页介绍的是加密版二十一点,通常在使用加密货币的赌场进行。我假设读者已经熟悉传统二十一点的基本规则。

公平公正的赌场

CryptoSlots Casino
3.9 / 5.0
Players rated CryptoSlots Casino 3.9 out of 5 Stars
注册 重新加载 bonus

44% Halloween Bonus

44% on $10 – $99. Redeem: 2x per day. Valid: All games (excl. Jackpot Trigger). Valid from Wednesday, October 1, 2025, 12:01 am until Friday, October 31, 2025, 11:59 pm EDT.

WOO seal
Wizard of Odds概率巫师认可的赌场
US-OH 友善
CryptoWins Casino
3.9 / 5.0
Players rated CryptoWins Casino 3.9 out of 5 Stars
注册 bonus - Sticky

77% 高达
₿1

New Customer Offer. T&C’s Apply. 18+. This offer is not available for players residing in Ontario. New Customer Offer. T&C’s Apply. 19+. Min deposit: 5$. Maximum cashout: $30,000. Selected games only: See the website for a list of online slots. Playthrough for the bonuses is 10 days.
US-OH 友善

分析

就 Crypto.Games 的游戏而言,其奇怪的规则如下:

  • 4层甲板
  • 每手牌后洗牌
  • 庄家不偷看二十一点
  • 二十一点赔率 6:5
  • 庄家在软 17 点时加牌
  • 任意两张牌加倍
  • 击中分牌 A
  • 提前投降
  • 分牌后,10 和 A 算作黑杰克
  • 允许分牌后加倍
  • 玩家只能分牌一次(我假设)

不考虑提前投降和分牌后10-A算作黑杰克,我的二十一点庄家优势计算器显示,使用基本策略的庄家优势为1.91%。然而,我的二十一点规则变体列表显示,计算器不支持的两条规则的值为0.74%。这使得整体庄家优势达到1.17%,对于在线二十一点游戏来说,这个数字相当高。

公平游戏

以下是 Crypto.Games 用于从四副牌中随机选择二十一点游戏牌的过程。

  1. 在下注之前向玩家透露服务器种子的 SHA-256 哈希值。
  2. 下注后,按顺序组合服务器种子和客户端种子。
  3. 获取步骤 1 中组合种子的 SHA-512 哈希值。
  4. 从步骤 2 中找到的 Hash 中取出两个字符,从左边开始。
  5. 将步骤 3 中的两个字符从十六进制转换为十进制。如果你不明白我在说什么,我在我的 Dice(加密版本)页面中讲解了十六进制数学。
  6. 如果步骤 4 的结果为 207 或更小,则将该卡号映射到 208 张牌的牌盒中的特定卡片。
  7. 如果在手中尚未找到该牌号,则将其映射到特定的扑克牌上。操作方法如下:
    • 要计算点数,将牌号除以 13,然后取余数。将余数映射到点数,如下所示:0 对应 A,1 对应 2,2 对应 3,3 对应 4,4 对应 5,5 对应 6,6 对应 7,7 对应 8,8 对应 9,9 对应 10,10 对应 J,11 对应 Q,12 对应 K。
    • 要确定花色,请将牌面数字除以 13,去掉余数。然后将商除以 4,取余数。最后,将余数映射到相应的花色,如下所示:0 表示黑桃,1 表示红桃,2 表示方块,3 表示梅花。
  8. 否则,如果步骤 5 的结果大于 207,或者已经找到该卡,则忽略哈希中的这两位数字。
  9. 在哈希表中前进两个位置,然后返回步骤3,直到到达哈希表末尾。这样你得到的牌应该比处理一手二十一点所需的牌多得多。

例子

以下是示例手的运作过程。

bj1

上图来自公平游戏面板,是在下注前拍摄的。为了确保游戏公平,最重要的步骤是输入并记录新的客户端种子(一组随机字符即可)以及下一个服务器种子的哈希值,游戏将其命名为“下一个服务器种子 SHA256”。具体如下:

  • 客户端种子 = 5v5b85n85vb856nvbn5vbn

  • 下一个服务器种子 SHA256 = 581b31f8cd6e5d4bb510ac0e53a440af7baab92f8f1f220eff14e20201e0b1f6

就我个人而言,我会将这些项目复制并粘贴到记事本中,以完成这个过程。

bj2

在上图中,我先下注0.00001 BTC(比特币),相当于大约10美分。他们让玩家用这个赌注买下10个筹码,然后再把全部10个筹码都押上。我不知道他们为什么要用这个步骤来混淆视听。

我最初的牌是 11 点,对面是 3 点,所以我加倍,得到了 3 点。庄家的牌是 5,总共是 8 点,然后抽了一张 K,总共是 18 点。因此,我以 18 比 14 输了。

png" />

接下来,我回到公平游戏面板,确保游戏公平,因为在我下注之前,牌的顺序就已经确定了。步骤如下:

  1. 从公平游戏面板中,我们看到服务器种子是Yt5IDwsb3Ldc5vyusvcQNfLqqjoYmCHGRkasqXNQ
  2. 我们对其执行 SHA-256 哈希运算,得到581b31f8cd6e5d4bb510ac0e53a440af7baab92f8f1f220eff14e20201e0b1f6
  3. 我们将步骤 2 中的哈希值与下注前记录的“下一个服务器种子 SHA256”进行比较,并验证它们是否匹配。如果不匹配,则说明您操作有误,或者赌场在撒谎/作弊。在这种情况下,它们匹配。这验证了牌的顺序是预先确定的。
  4. 要检查您是否拿到了正确的卡牌,请按顺序组合服务器种子和客户端种子。这样您将获得Yt5IDwsb3Ldc5vyusvcQNfLqqjoYmCHGRkasqXNQ5v5b85n85vb856nvbn5vbn 。如果您选择使用随机数,则该随机数位于客户端种子的末尾。
  5. 取步骤4中合并哈希值的SHA-512哈希值。我不知道他们为什么使用两个不同的哈希函数(SHA-256和SHA-512)。这将得到2b87fbc5eac7368ef393c8ab292f71a0251702f6db028ca8a855bfaa541b78df3ae996ad22ac022588a46231ed32180d5cbde86dff5d2368cbb7658332bbb9bc。
  6. 取前两个字符2b ,并将其转换为十六进制:2b = 2*16 + 11 = 43。
  7. 由于 43 <= 207,将其转换为一张牌:rank = mod(43,13) = 4,对应数字 5。suit = mod(int(43/13),4) = mod(3,4) = 3,对应数字梅花。这是发给玩家的第一张牌,梅花 5。
  8. 将步骤 4 中的哈希值前进两位,即87 。将其从十六进制转换为十进制:8*16 + 7 = 135。
  9. 由于 135 <= 207 且尚未找到,因此将其转换为一张牌:rank = mod(135,13) = 5,对应 6。花色 = mod(int(135/13),4) = mod(10,4) = 2,对应方块。这是发给玩家的第二张牌,方块 6。
  10. 将步骤 4 中的哈希值前进两位,即fb 。将其从十六进制转换为十进制:15*16 + 11 = 251。
  11. 由于 251 > 207,我们跳过这两个位置。
  12. 将步骤 4 中的哈希值前进两位,即c5 。将其从十六进制转换为十进制:12*16 + 5 = 197。
  13. 由于 197 <= 207 且尚未找到,因此将其转换为一张牌:rank = mod(197,13) = 2,映射到 3 的等级。花色 = mod(int(197/13),4) = mod(15,4) = 3,映射到梅花。这是发给庄家的第一张(面朝上的)牌,即梅花 3。
  14. 将步骤 4 中的哈希值前进两位,即ea 。将其从十六进制转换为十进制:14*16 + 10 = 234。
  15. 由于 234 > 207,我们跳过这两个位置。
  16. 将步骤 4 中的哈希值前进两位,即c7 。将其从十六进制转换为十进制:12*16 + 7 = 199。
  17. 由于 199 <= 207 且尚未找到,因此将其转换为一张牌:rank = mod(199,13) = 4,映射到 5。花色 = mod(int(199/13),4) = mod(15,4) = 3,映射到梅花。这是发给庄家的第二张(面朝下)牌,即梅花 5。
  18. 将步骤 4 中的哈希值前进两位,即36 。将其从十六进制转换为十进制:3*16 + 6 = 54。
  19. 由于 54 <= 207 且尚未找到,因此将其转换为一张牌:rank = mod(54,13) = 2,对应 3。花色 = mod(int(54/13),4) = mod(4,4) = 0,对应黑桃。这张黑桃 3 是牌盒中的下一张牌,在玩家加倍后发给了他。因此,玩家的点数为 5+6+3 = 14
  20. 将步骤 4 中的哈希值前进两位,即8e 。将其从十六进制转换为十进制:8*16 + 14 = 142。
  21. 由于 142 <= 207 且尚未找到,因此将其转换为一张牌:rank = mod(142,13) = 12,对应为 K。花色 = mod(int(142/13),4) = mod(10,4) = 2,对应为方块。这张方块 K 是牌盒中的下一张牌,当庄家必须拿到硬 8 时,这张牌会归庄家所有,最终总点数为 18。
  22. 选手以 14 比 18 落败。
  23. 如果需要更多卡片,我们将继续循环此过程,直到找到足够的卡片。

如果觉得步骤太多,我同意。所以我写了一个 PHP 脚本来帮你完成!使用方法如下:

  1. 转到PHP 沙盒
  2. 在第 3 行输入服务器种子。
  3. 在第 4 行输入客户端种子。
  4. 在第 5 行输入下一个服务器种子的哈希值。
  5. 单击“执行代码”。

该程序将把服务器种子哈希值与您下注前提供的内容以及游戏中发出的牌进行比较。

我还有一份代码副本,您可以点击下面的按钮查看。

[剧透]

php 第 1 行

// Crypto.Games 的二十一点公平性检查
$server_seed = "Yt5IDwsb3Ldc5vyusvcQNfLqqjoYmCHGRkasqXNQ";
$客户端种子 = “5v5b85n85vb856nvbn5vbn”;
$next_hash =“581b31f8cd6e5d4bb510ac0e53a440af7baab92f8f1f220eff14e20201e0b1f6”;
$rank_array=array("A",2,3,4,5,6,7,8,9,10,"J","Q","K");
$suit_array=array("黑桃","红心","方块","梅花");
$cards_found=0;
$位置=0;
$combined_seed = $server_seed.$client_seed;
echo "组合种子 = $combined_seed\n";
$combined_hash = hash('sha512', $combined_seed);
echo“组合种子的哈希值=$combined_hash\n”;
做
{
    $first_two=substr($combined_hash,$position,2);
    $hex_to_dec=hexdec($first_two);
    如果 ($hex_to_dec <=207)
    {
        $重复=0;
        如果 ($cards_found>0)
        {
            对于 ($i=0; $i<$cards_found; $i++)
            {
                如果($hex_to_dec == $card_array[$i]) 
                { $重复=1; }
            }
        }
        如果 ($repeat==0)
        {
            $card_array[$cards_found] = $hex_to_dec;
            $cards_found++;
            $rank=$hex_to_dec%13;
            $suit=intdiv($hex_to_dec,13)%4;
            echo "卡 $cards_found = \t$rank_array[$rank] 的 $suit_array[$suit]\n";
        }
    }
    $位置+=2;
    如果 ($位置==128)
    {
        echo“错误——哈希中没有更多空间。\n”;
        $cards_found=10;
    }
}
当 ($cards_found<20) 时;
$server_seed_hash=hash('sha256', $server_seed);
如果 ($server_seed_hash==$next_hash)
{ echo "服务器种子匹配.\n"; }
别的
{   
    echo“服务器种子不匹配!\n”;
    echo "服务器种子 =\t$server_seed\n";
    echo“服务器种子哈希=\t$server_seed_hash\n”;
    echo“所谓的下一个哈希=\t$next_hash\n”;
}

// 程序
// 1. 将“步长”设置为 0,并将“位置”设置为 0。 
// 2. 按顺序加入服务器和客户端种子、步骤和服务器种子。 
// 3. 生成步骤 2 中字符串的 SHA-512 哈希值。
// 4. 从步骤 3 中的哈希“位置”开始,将前两个字符从十六进制转换为十进制。
// 5. 如果步骤 4 的结果为 0 到 207,则将其映射到四副牌盒中的特定牌。
// 6. 如果步骤 5 的结果已经出现,那么这将是游戏中下一张要发的牌。 
// 7. 要将步骤 6 中的卡片位置转换为实际卡片,请执行以下操作: 
// A. 将步骤 4 的结果除以 13 并取余数。
// B. 将步骤 7A 的结果映射得到排名,如下:0 到 A,1 到 2,2 到 3,……,9 到 10,10 到 J,11 到 Q,12 到 K。
// C. 将步骤 4 的结果除以 13,然后删除余数。  
// D. 将步骤 7C 的结果除以 4 并取余数。
// E. 将步骤 7D 的结果映射为花色,如下所示:0 为黑桃,1 为红桃,2 为方块,3 为梅花。 
// 8. 继续重复步骤 4 到 7,直到到达哈希的末尾,尽管游戏中不太可能需要这么多卡片。
?>
[剧透]