6 releases (stable)
Uses old Rust 2015
1.3.0 | Jun 15, 2017 |
---|---|
1.2.1 | Jan 5, 2016 |
1.2.0 | Oct 26, 2015 |
1.1.0 | Sep 7, 2015 |
0.1.0 | Aug 27, 2015 |
#296 in Games
245KB
1K
SLoC
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 setupArrows
to choose cell (or change settings insetup
mode)Space
to open cellCtrl
to mark cellEsc
to exitLMB
click on a cell to openRMB
click on a cell to mark
NOTE: marked cells disallow opennig them, until mark will be removed.
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
.
- Clone the project
$ git clone https://github.com/Vinatorul/minesweeper-rs && cd minesweeper-rs
- 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) - 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"
)
- I use a conventional changelog format so I can update my changelog using clog
- In addition to the conventions defined above, I also use
imp
,wip
,gr
. - Format your commit subject line using the following format:
TYPE(COMPONENT): MESSAGE
whereTYPE
is one of the following:feat
- A new featureimp
- An improvement to an existing featureperf
- A performance improvementtests
- Changes to the testing framework or tests onlyfix
- A bug fixrefactor
- Code functionality doesn't change, but underlying structure maystyle
- Stylistic changes only, no functionality changeswip
- A work in progress commit (Should typically begit rebase
'ed away)chore
- Catch all or things that have to do with the build system, etcgr
- 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 rebase
into concise commits and remove--fixup
s (git rebase -i HEAD~NUM
whereNUM
is 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.)
Dependencies
~12MB
~229K SLoC