5 个稳定版本

1.1.3 2022年6月18日
1.1.1 2022年6月11日
1.1.0 2022年6月10日
1.0.0 2021年2月18日

科学 类别中排名 #204

MIT 许可证

495KB
4K SLoC

FreeBJ 黑杰克模拟器

FreeBJ 是一个免费开源的黑杰克模拟器,用于对游戏策略进行统计分析。它支持各种游戏规则,包括以下有效组合:

  • 欧洲无孔牌(ENHC)或美国孔牌(AHC);
  • 击打软17或停在软17;
  • 任意数量的牌组;
  • 分牌后加倍(DAS)或不加倍;
  • 仅在10-11、9-11或任意两张牌上加倍;
  • 击打分牌的A或不用击打;
  • 最大分牌手数;
  • 早和晚投降;

FreeBJ 能够使用高-低系统计数牌,并基于可编程的投注策略调整投注。模拟器还支持播放偏差,并且可以动态添加自己的偏差。

FreeBJ 是一个命令行界面程序,它在其标准输出上打印收集到的所有统计信息的 JSON;程序还可以按需输出银行存款样本的 CSV,以便查看整个游戏会话中资本的演变。

安装

安装 FreeBJ 最简单的方法是通过 Rust 的 Cargo

$ cargo install freebj

有关如何为您的操作系统和发行版安装和使用 Cargo 的更多信息,请参阅 crates.io

典型用法

FreeBJ 可以不使用任何参数调用,它将运行默认规则的模拟,模拟一百万轮

  • 美国孔牌(AHC);
  • 停在软17(S17);
  • 无DAS;
  • 6副牌;
  • 无投降;

默认禁用计牌。

$ freebj
{
  "rounds": 1000000,
  "rules": {
    "game_type": "ahc",
    "soft17": "s17",
    "das": false,
    "bj_pays": 1.5,
    "double_down": "any_two",
    "surrender": "no_surrender",
    "play_ace_pairs": false,
    "max_splits": 4,
    "decks": 6,
    "penetration_cards": 250
  },
  "ev": -0.006965999999999973,
  "stddev": 1.134225621872368,
  "winning_distrib": {
    "-4.0": 78,
    "-3.0": 565,
    "-2.0": 42360,
    "-1.0": 436266,
    "+0.0": 88616,
    "+1.0": 326537,
    "+1.5": 44988,
    "+2.0": 59870,
    "+3.0": 612,
    "+4.0": 108
  },
  "hands": {
    "total": 1024402,
    "won": 445247,
    "lost": 491025,
    "push": 88130,
    "busted": 161041,
    "blackjack": 47147,
    "doubled": 95252,
    "split": 46241,
    "insured": 0,
    "surrender": 0
  }
}

有关 JSON 输出和所有选项的更多信息,请参阅手册页 freebj(1)

更多用法示例

运行跨16个线程的10亿轮模拟

$ freebj -n 10G -j 16

玩带有早投降、DAS、击打软17和4副牌的欧洲游戏

$ freebj --enhc --esurr --das --h17 -d4

始终以一张A和5作为玩家的牌,以及一张8作为庄家的上牌开始每一轮,并总是加倍(而不是击打)

$ freebj -c A,5 --dealer=8 -aD

启用高-低计牌并使用默认的播放偏差(前20个偏差),使用默认的投注策略(TC 0上投注1.0,每个TC点增加投注1,不玩负TC)

$ freebj --hilo --deviations

启用高低牌,无默认偏差,但添加特定用户玩偏差,包括用TC ≥ 3对庄家6的加倍下注

$ freebj --hilo -D "12vs6:>3D"

启用高低牌,无玩法偏差,并设置自定义投注策略,其中玩家在TC 0时投注10.00美元,在每个正TC点(分别)或负TC点(分别)增加(减少)5.00美元的投注。将最大TC设置为6以限制风险

TC 投注
−3 0.00美元
−2 0.00美元
−1 5.00美元
0 10.00美元
+1 15.00美元
+2 20.00美元
+3 25.00美元
+4 30.00美元
+5 35.00美元
+6 40.00美元
+7 40.00美元
$ freebj --hilo -b 10.0 --bet-per-tc=5.0 --bet-max-tc=6

使用FreeBJ进行黑杰克研究

FreeBJ可以被视为研究工具,用于研究黑杰克及其策略。其他研究工具可以建立在freebj(所谓“研究”脚本)的基础上;本源树中未提供,但作者在freebj_study存储库中提供了许多输出数据。

还可以通过网站发布这些结果

https://freebj.lesenechal.fr

依赖关系

~4–6MB
~99K SLoC