Skip to main content

A game of Blackjack with graphical user interface.

Project description

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

Tests

Install blackjack-gui from GitHub and pytest:

$ git clone https://github.com/tukiains/blackjack-gui
$ cd blackjack-gui/
$ python3 -m venv venv
$ source venv/bin/activate
$ pip3 install .
$ pip3 install pytest

Run unit and integration tests:

$ pytest-3 tests/unit.py
$ pytest-3 tests/integration.py

Notes

  • Card images taken from here.

Licence

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blackjack-gui-0.3.1.tar.gz (5.8 MB view hashes)

Uploaded Source

Built Distribution

blackjack_gui-0.3.1-py3-none-any.whl (5.8 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page