LewisGaul / minegauler

A clone of the original minesweeper game with many added features
GNU General Public License v3.0
12 stars 8 forks source link
minesweeper minesweeper-game pyqt5 python

Build badge Codecov badge PyPI badge Downloads badge Code style badge

Minegauler v4.2.0-b0

Remake of the classic Minesweeper game, written in Python.

Read more about the project history in my blog post.

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.8+ required (check with python3 --version)
  2. Install with python3 -m pip install minegauler
  3. Run with python3 -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.8+ to run the code (check with python3 --version).

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

System dependencies

WSL

If running in WSL (Windows Subsystem for Linux) you will need to set up an X-server for running graphical apps. This isn't too difficult to do, see https://wiki.ubuntu.com/WSL#Running_Graphical_Applications or search online for further advice - I would recommend downloading and using Xming.

Linux

If running with python -m minegauler fails with Aborted (core dumped) on Linux, you may need a package that provides graphical support. For me this was fixed by running sudo apt install libxkbcommon-x11-0 on Ubuntu in WSL1.

Features

This app provides all of the basic functionality of the classic minesweeper game plus much more!

Special features

Game menu:

Options menu:

Note that all of the options above except 'safe start' have separate highscore tables.

Help menu:

What's new/upcoming?

Check the changelog to see a log of changes that have been made. See issues for upcoming features/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 with python3 -m pip install -r requirements-dev.txt.

Run the tests with the command pytest (see the pytest docs).

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

Contact

Please don't hesitate to open an issue or a discussion if you think you've found a bug, have a feature request, or just want to say hi!

You can also email at minegauler@gmail.com.