Simple minesweeper in Rust
minesweeper-rs

Simple minesweeper in Rust based on piston_window
How to Play
To win the game - open all cells with numbers.
Controls:
R- restartH- field height setupW- field width setupM- mines quantity setupArrowsto choose cell (or change settings insetupmode)Spaceto open cellCtrlto mark cellEscto exitLMBclick on a cell to openRMBclick on a cell to mark
NOTE: pressing Space or LMB on opened cell will open it's neighbors (Thanks to waynenilsen and xilec!)
Screenshots
In game screenshot (green cells are marked)
NOTE: you can see counter of marked cells at the right of the window
Defeat (red cells are missed mines)
NOTE: with * marked mines which ended the game
License
minesweeper is licensed under the MIT license. Please read the LICENSE file in this repository for more information.
Compiling
Follow these instructions to compile minesweeper-rs.
1. Clone the project $ git clone https://github.com/Vinatorul/minesweeper-rs && cd minesweeper-rs 2. Build the project $ cargo build --release (NOTE: There is a large performance differnce when compiling without optimizations, so I recommend alwasy using --release to enable to them) 3. Once complete, the binary will be located at target/release/minesweeper
Options
Pass -h to arguments or look here:
USAGE:
minesweeper [FLAGS] [OPTIONS]
FLAGS: -h, --help Prints help information --oldOGL set OpenGL version to 2.1 -V, --version Prints version information
OPTIONS: -f, --field <field> field size "width"x"height" --maxFPS <max_fps> set max fps -m, --mines <mines> max mines -s, --size <size> window size "width"x"height"
How to Contribute
Contributions are always welcome! Please use the following guidelines when contributing to minesweeper
- Fork
minesweeper - Clone your fork (
git clone https://github.com/$YOUR_USERNAME/minesweeper-rs && cd minesweeper-rs) - Create new branch (
git checkout -b new-branch) - Make your changes, and commit (
git commit -am "your message")
imp, wip, gr.
* Format your commit subject line using the following format: TYPE(COMPONENT): MESSAGE where TYPE is one of the following:
- feat - A new feature
- imp - An improvement to an existing feature
- perf - A performance improvement
- tests - Changes to the testing framework or tests only
- fix - A bug fix
- refactor - Code functionality doesn't change, but underlying structure may
- style - Stylistic changes only, no functionality changes
- wip - A work in progress commit (Should typically be git rebase'ed away)
- chore - Catch all or things that have to do with the build system, etc
- gr - Graphics changes
* The COMPONENT is optional, and may be a single file, directory, or logical component. Can be omitted if commit applies globally
- Run the tests (
cargo test) git rebaseinto concise commits and remove--fixups (git rebase -i HEAD~NUMwhereNUMis number of commits back)- Push your changes back to your fork (
git push origin $your-branch) - Create a pull request! (You can also create the pull request first, and we'll merge when ready. This a good way to discuss proposed changes.)