/minegauler

A clone of the original minesweeper game with many added features

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Build badge Codecov badge PyPI badge Downloads badge Code style badge

Minegauler v4.1.1

Remake of the classic Minesweeper game, written in Python.

Read more about the project history in my blog post.

img1 img2

Try it out!

Download the executable

The application has been packaged with PyInstaller so that it can be played without setting up Python.

Download links available here:

Install from PyPI

The Python package is also available on PyPI: https://pypi.org/project/minegauler/.

  1. Python 3.7+ required
  2. Install with pip install minegauler
  3. Run with python -m minegauler

See note on system dependencies below, or get in touch if you have any issues.

Clone the repo

You will need Python 3.7+ to run the code (see note below about known system dependencies).

  1. Clone the repo: git clone https://github.com/LewisGaul/minegauler
  2. Consider setting up a virtual environment
  3. Install requirements with pip install -r requirements.txt
  4. Run with python -m minegauler

System dependencies

Annoyingly, the latest version of PyQt5 introduced a new system dependency on Linux, and this new version is required to run on Python3.8+.

If running with python -m minegauler fails with Aborted (core dumped) on Linux, try installing the dependency with:
sudo apt install libxkbcommon-x11-0

What's new/upcoming?

Check the changelog to see a log of changes that have been made, as well as some of the upcoming features and planned fixes.

If there's a feature you'd like to see added, please don't hesitate to contact me!

Development guide

Install the developer requirements (e.g. pytest + plugins) with pip install -r requirements-dev.txt.

Run the tests with the command: python -m pytest.

Get coverage information using the pytest-cov plugin: python -m pytest --cov [--cov-report html].

Contact

Email at minegauler@gmail.com, any questions/suggestions/requests welcome.

Alternatively, feel free to open an issue if you find a bug or have a feature request.