# MineSweeper A modern GTK4/C++ implementation of the classic Minesweeper game with multiple difficulty levels, customizable board sizes, animations, and a leaderboard system. ![Game Screenshot](screenshots/screen1.png) ## 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.