102 lines
1.7 KiB
Markdown
102 lines
1.7 KiB
Markdown
# MineSweeper
|
|
|
|
A modern GTK4/C++ implementation of the classic Minesweeper game with multiple difficulty levels, customizable board sizes, animations, and a leaderboard system.
|
|
|
|

|
|
|
|
## Features
|
|
|
|
- Multiple difficulty levels: Beginner, Intermediate, Expert, and Master
|
|
- Custom board size and mine count configuration
|
|
- Win/lose animations
|
|
- Persistent leaderboard to track best scores
|
|
- Modern GTK4 user interface
|
|
- Modern C++20 implementation
|
|
|
|
## Building from Source
|
|
|
|
### Dependencies
|
|
|
|
- GTK 4.0 or later
|
|
- gtkmm 4.0 or later
|
|
- sigc++ 3.0 or later
|
|
- Meson build system
|
|
- Ninja build system
|
|
|
|
### Ubuntu/Debian
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo apt install build-essential meson ninja-build libgtkmm-4.0-dev libsigc++-3.0-dev
|
|
```
|
|
|
|
### Fedora
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo dnf install gcc-c++ meson ninja-build gtkmm4.0-devel libsigc++3-devel
|
|
```
|
|
|
|
### Arch Linux
|
|
|
|
Install dependencies:
|
|
|
|
```bash
|
|
sudo pacman -S base-devel meson ninja gtkmm-4.0 libsigc++-3.0
|
|
```
|
|
|
|
### Building the Project
|
|
|
|
Clone the repository:
|
|
|
|
```bash
|
|
git clone https://github.com/username/minesweeper.git
|
|
cd minesweeper
|
|
```
|
|
|
|
Configure and build with Meson:
|
|
|
|
```bash
|
|
meson setup build
|
|
meson compile -C build
|
|
```
|
|
|
|
Run the game:
|
|
|
|
```bash
|
|
./build/minesweeper
|
|
```
|
|
|
|
### Installing
|
|
|
|
To install system-wide:
|
|
|
|
```bash
|
|
meson install -C build
|
|
```
|
|
|
|
## Using Nix
|
|
|
|
If you use the Nix package manager, you can build and run the application with:
|
|
|
|
```bash
|
|
nix-build
|
|
./result/bin/minesweeper
|
|
```
|
|
|
|
Or install it with:
|
|
|
|
```bash
|
|
nix-env -i -f .
|
|
```
|
|
|
|
## Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the LICENSE file for details.
|