minesweeper-rs Build Status license Join the chat at https://gitter.im/Vinatorul/minesweeper-rs

Simple minesweeper in Rust based on piston_window

How to Play

To win the game - open all cells with numbers.

Controls: * R - restart * H - field height setup * W - field width setup * M - mines quantity setup * Arrows to choose cell (or change settings in setup mode) * Space to open cell * Ctrl to mark cell * Esc to exit * LMB click on a cell to open * RMB click on a cell to mark

NOTE: marked cells disallow opennig them, until mark will be removed.

Screenshots

In game screenshot (green cells are marked) minesweeper ingame

Defeat (red cells are missed mines) minesweeper defeat

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 cargo-count, then skip down to Installation.

  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 -V, --version Prints version information

OPTIONS: -f, --field field size "width"x"height" -m, --mines ... max mines -s, --size window size "width"x"height" ```

How to Contribute

Contributions are always welcome! Please use the following guidelines when contributing to minesweeper

  1. Fork minesweeper
  2. Clone your fork (git clone https://github.com/$YOUR_USERNAME/minesweeper-rs && cd minesweeper-rs)
  3. Create new branch (git checkout -b new-branch)
  4. Make your changes, and commit (git commit -am "your message")
  5. Run the tests (cargo test)
  6. git rebase into concise commits and remove --fixups (git rebase -i HEAD~NUM where NUM is number of commits back)
  7. Push your changes back to your fork (git push origin $your-branch)
  8. 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.)

Dependencies Tree

minesweeper dependencies