
Security News
Crates.io Users Targeted by Phishing Emails
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Single-player blackjack including graphical and command line interfaces, written in Python. Can be used to simulate games and to practise basic strategy and card counting.
blackjack-gui
requires Python 3.10 or newer and uses tkinter. Make sure it's installed in your system:
$ sudo apt install python3-tk
or similar (otherwise, you'll see ModuleNotFoundError: No module named 'tkinter'
).
Then:
$ python3 -m venv venv
$ source venv/bin/activate
$ pip3 install blackjack-gui
blackjack [-h] [--cli] [--ai] [--count] [--bet BET] [--stack STACK]
[--n-games N_GAMES] [--loglevel LOGLEVEL] [--cards CARDS]
[--dealer-cards DEALER_CARDS] [--subset {hard,soft,pairs,hard/soft,soft/pairs}]
[--rules {US,Helsinki}]
Name | Default | Description |
---|---|---|
--cli | False | Use command line version. |
--ai | False | If True, computer plays instead of you. Only with --cli . |
--count | False | If True, ai uses card counting. Only with --cli and --ai . The bet spread: 1 unit (true count<1), 2 units (TC=1), 3 units (TC=3), 4 units (TC=4), 8 units (TC=5), 12 units (TC>=6). |
--bet | 10 | Bet size (max 100). |
--stack | 200 | Initial stack. |
--n-games | 10 | Number of rounds to be played. Only with --cli . |
--loglevel | DEBUG | Adjust amount of logging: DEBUG or INFO. Only with --cli . |
--cards | Determine the first player cards, e.g. --cards=A,8,K . Shuffles the shoe after every hand. Multiple options (one will be randomly selected) can be defined like this: "A,7;9,9;10,2" . | |
--subset | Instead of --cards , practice with one of the subsets: hard , soft , pairs , hard/soft , or soft/pairs | |
--dealer-cards | Determine the first dealer cards. Useful for testing. | |
--rules | US | Rules to be used. Can be Helsinki or US . See the basic strategy charts below. |
Open the GUI version with Casino Helsinki Rules:
$ blackjack
With US rules:
$ blackjack --rules US
With the default settings, play 10 rounds of blackjack with the command line interface:
$ blackjack --cli
Let the computer play perfect basic game and use card counting technique to bring down the house:
$ blackjack --cli --ai --count --n-games=100000 --loglevel=INFO
Simulate soft 19 starting hand only:
$ blackjack --cli --ai --n-games=10000 --loglevel=INFO --cards=A,8
Practise to play "hard" starting hands:
$ blackjack --subset hard
Blackjack rules vary depending on the casino. In this application they follow the rules of Casino Helsinki, explained in Finnish here, i.e.:
See overview of the most common rule variations here.
The rules in the U.S. typically include:
There are a few deviations from the basic strategy, which depend on the specific combination of the table rules. For a detailed, rule-specific strategy, consult the Wizard of Odds Blackjack Strategy Calculator to identify the optimal basic strategy for each game configuration.
Card counting affects the basic strategy. The following deviations are implemented
in blackjack-gui
(I will slowly add more). Use "Coach mode" with "Include deviations" to verify your play!
Your Hand | Dealer's Upcard | Basic strategy | Deviation | Index |
---|---|---|---|---|
2-10 | A | Don't take insurance | Take | +3 |
A | A | Don't take even money | Take | +3 |
16 | 10 | Hit | Stand | 0+ |
12 | 2 | Hit | Stand | +3 |
12 | 3 | Hit | Stand | +2 |
12 | 4 | Stand | Hit | 0- |
A,4 | 4 | Double | Hit | 0- |
Where 0- means any negative running count, 0+ means any positive running count, and +X means true count of X or greater.
Install blackjack-gui
with dev-dependencies from GitHub:
git clone https://github.com/tukiains/blackjack-gui
cd blackjack-gui/
python3 -m venv venv
source venv/bin/activate
pip3 install --upgrade pip
pip3 install .[dev,test]
pre-commit install
Run unit and integration tests:
pytest tests/unit.py
pytest tests/integration.py
Run pre-commit
checks:
pre-commit run --all
MIT
FAQs
A game of Blackjack with graphical user interface.
We found that blackjack-gui demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The Rust Security Response WG is warning of phishing emails from rustfoundation.dev targeting crates.io users.
Product
Socket now lets you customize pull request alert headers, helping security teams share clear guidance right in PRs to speed reviews and reduce back-and-forth.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.