Skip to main content

Chess in the command line.

Project description

J-Chess: Play chess in the console!

Checked with mypy linting: pylint code style: black Imports: isort

A simple project allowing you to play chess within your console.

Usage

Requires python 3.10 or later. The package is available on pypi so to play simply install with pip install jchess and then play with jchess or python -m jchess.

The project was developed primarily alongside powershell but the project should be compatible with generic Windows and Linux consoles.

If you have any feedback please feel free to share it!

Features

J-Chess fully implements chess logic and rules - including castling, en-passant, promotion and check/checkmate.

It is primarily designed to be played by 2 people at the same computer but it does feature a "VS Dumb Bot" mode where you can play against an opponent who's moves are random.

For demonstration purposes there is also a "Two Dumb Bots" mode where an entire game is played with no user input.

Motivation

This was simply a project to better familiarize myself with programming in python and other lifecycle practices & tools.

I was able to practice using useful tools like git, github and wsl as well as useful concepts including OOP programming patterns, regular expressions, testing, documentation, packaging and managing dependencies.

The python tooling modules I used were mypy, pylint, black, isort, pytest, pydocstyle and coverage.

Python code features I experimented with and used in the final project include dataclasses, generators, type annotations and context managers.

Scope

The goal of the project was to practice pure python programming so by design there are minimal 3rd party package dependencies - in fact there is only one: colorama.

The scope of the project was intentionally minimal, but some fun ideas if I return to this project would be:

  • Implementing different guis - maybe through a web app or tkinter
  • Implement a genuine AI
  • Implement a non-local multiplayer mode

Project Structure

Not counting recursively, there are currently 8 sub-modules/packages which are published in the jchess whl (plus one module used only for testing). The project structure can be thought of as follows:

+-----------------------------------------------------+
|          pieces ---- board       display ------ run |
|         /                  \    /                   |
| geometry                    game                    |
|         \                  /    \                   |
|          terminal -- action      (testutils)        |
+-----------------------------------------------------+

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

jchess-0.99.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

jchess-0.99-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

Details for the file jchess-0.99.tar.gz.

File metadata

  • Download URL: jchess-0.99.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for jchess-0.99.tar.gz
Algorithm Hash digest
SHA256 2c2cb9b0f828206a19fade159c3a9ff82da3a7a01e0037277a0284aaaaba417a
MD5 cbfa9ec1b4c442a4342b4c610bcf6be2
BLAKE2b-256 0992de5f9156458903e64a8c77a6ba8706dad272ae1a480f76c0276538f7b75c

See more details on using hashes here.

File details

Details for the file jchess-0.99-py3-none-any.whl.

File metadata

  • Download URL: jchess-0.99-py3-none-any.whl
  • Upload date:
  • Size: 32.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for jchess-0.99-py3-none-any.whl
Algorithm Hash digest
SHA256 fdfcb0d0da41631d66a1f46153a2d0b87b02db32490d39c606e04c9e8a1c3b18
MD5 7870d93889a0cdbff3932d36a89937df
BLAKE2b-256 d5091df6a3ab4b05466f1082ac9cdbac0831851bd23af65bc60b0ce0654498c0

See more details on using hashes here.

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