Skip to content

tukiains/blackjack-gui

Repository files navigation

blackjack-gui

Downloads

Single-player Blackjack including GUI and CLI interfaces, written in Python. Can be used to simulate games with or without card counting and to practise basic strategy.

Installation

blackjack-gui requires Python 3.8 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

Usage

GUI version

blackjack [OPTION...]

CLI version

blackjack --gui=False [OPTION...]

Options

Name Default CLI only Description
--stack 1000 Initial stack.
--bet 1 Initial bet size.
--n_games 10 x Number of rounds to be played.
--ai False x If True, computer plays instead of you.
--count False x If True, ai uses card counting.
--loglevel DEBUG x Adjust amount of logging: DEBUG or INFO.
--cards Determine the first player cards, e.g. --cards=A,8,K. Shuffles the shoe after every hand.
--dealer_cards Determine the first dealer cards. Useful for testing.

Examples

Open the GUI version:

$ blackjack

With the default settings, play 10 rounds of Blackjack without GUI:

$ blackjack --gui=False

Let the computer play perfect basic game and use card counting technique to bring down the house:

$ blackjack --n_games=100000 --ai=True --count=True --loglevel=INFO --gui=False

Simulate soft 19 starting hand only:

$ blackjack --n_games=10000 --ai=True --loglevel=INFO --gui=False --cards=A,8

Rules

Blackjack rules vary depending on the casino. In this application they follow: https://casinohelsinki.fi/en/games/blackjack-eng/, i.e.:

  • 6 decs
  • Blackjack pays 3 to 2
  • Dealer must stand on soft 17
  • Any two cards can be doubled
  • Max. 4 hands can be achieved by splitting
  • Aces can be split but they receive only one extra card
  • Doubling after splitting is allowed
  • Surrender is allowed but not against Ace

Optimal basic strategy

  • Note that 16 vs 10 with 3 or more cards = Stay

Development

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]
pre-commit install

Run unit and integration tests:

pytest tests/unit.py
pytest tests/integration.py

Run pre-commit checks:

pre-commit run --all

Notes

  • Card images taken from here.

Licence

MIT

About

Blackjack with a graphical user interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages