{"id":16337474,"url":"https://github.com/vinatorul/minesweeper-rs","last_synced_at":"2025-03-16T14:31:21.417Z","repository":{"id":36935791,"uuid":"41243090","full_name":"Vinatorul/minesweeper-rs","owner":"Vinatorul","description":"Simple minesweeper in Rust","archived":false,"fork":false,"pushed_at":"2017-06-15T19:07:07.000Z","size":1285,"stargazers_count":77,"open_issues_count":6,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-27T10:59:51.675Z","etag":null,"topics":["game","minesweeper","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vinatorul.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-08-23T09:07:00.000Z","updated_at":"2025-02-07T10:29:27.000Z","dependencies_parsed_at":"2022-07-08T15:51:33.546Z","dependency_job_id":null,"html_url":"https://github.com/Vinatorul/minesweeper-rs","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinatorul%2Fminesweeper-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinatorul%2Fminesweeper-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinatorul%2Fminesweeper-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vinatorul%2Fminesweeper-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vinatorul","download_url":"https://codeload.github.com/Vinatorul/minesweeper-rs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243819040,"owners_count":20352807,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","minesweeper","rust"],"created_at":"2024-10-10T23:47:07.638Z","updated_at":"2025-03-16T14:31:20.807Z","avatar_url":"https://github.com/Vinatorul.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minesweeper-rs  [![Build Status](https://travis-ci.org/Vinatorul/minesweeper-rs.svg?branch=master)](https://travis-ci.org/Vinatorul/minesweeper-rs) [![](http://meritbadge.herokuapp.com/minesweeper)](https://crates.io/crates/minesweeper) [![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Vinatorul/minesweeper-rs/blob/master/LICENSE) [![Join the chat at https://gitter.im/Vinatorul/minesweeper-rs](https://img.shields.io/badge/GITTER-JOIN%20CHAT-brightgreen.svg)](https://gitter.im/Vinatorul/minesweeper-rs?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\nSimple minesweeper in Rust based on piston_window\n\n## How to Play\n\nTo win the game - open all cells with numbers. \n\nControls:\n* `R` - restart\n* `H` - field height setup\n* `W` - field width setup\n* `M` - mines quantity setup\n* `Arrows` to choose cell (or change settings in `setup` mode)\n* `Space` to open cell\n* `Ctrl` to mark cell\n* `Esc` to exit\n* `LMB` click on a cell to open\n* `RMB` click on a cell to mark\n\n**NOTE**: marked cells disallow opennig them, until mark will be removed.\n\n**NOTE**: pressing `Space` or `LMB` on opened cell will open it's neighbors (Thanks to [waynenilsen](https://github.com/waynenilsen) and [xilec](https://github.com/xilec)!)\n\n## Screenshots\n\nIn game screenshot (green cells are marked)\n![minesweeper ingame](ingame.png)\n**NOTE**: you can see counter of marked cells at the right of the window\n\nDefeat (red cells are missed mines)\n![minesweeper defeat](defeat.png)\n**NOTE**: with `*` marked mines which ended the game\n\n## License\n`minesweeper` is licensed under the MIT license. Please read the LICENSE file in this repository for more information.\n\n## Compiling\n\nFollow these instructions to compile `minesweeper-rs`.\n\n 1. Clone the project `$ git clone https://github.com/Vinatorul/minesweeper-rs \u0026\u0026 cd minesweeper-rs`\n 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)\n 3. Once complete, the binary will be located at `target/release/minesweeper`\n\n## Options\n\nPass `-h` to arguments or look here: \n\n```\nUSAGE:\n    minesweeper [FLAGS] [OPTIONS]\n\nFLAGS:\n    -h, --help       Prints help information\n        --oldOGL     set OpenGL version to 2.1\n    -V, --version    Prints version information\n\nOPTIONS:\n    -f, --field \u003cfield\u003e       field size \"width\"x\"height\"\n        --maxFPS \u003cmax_fps\u003e    set max fps\n    -m, --mines \u003cmines\u003e       max mines\n    -s, --size \u003csize\u003e         window size \"width\"x\"height\"\n```\n\n# How to Contribute\n\nContributions are always welcome! Please use the following guidelines when contributing to `minesweeper`\n\n1. Fork `minesweeper`\n2. Clone your fork (`git clone https://github.com/$YOUR_USERNAME/minesweeper-rs \u0026\u0026 cd minesweeper-rs`)\n3. Create new branch (`git checkout -b new-branch`)\n4. Make your changes, and commit (`git commit -am \"your message\"`)\n * I use a [conventional](https://github.com/ajoslin/conventional-changelog/blob/a5505865ff3dd710cf757f50530e73ef0ca641da/conventions/angular.md) changelog format so I can update my changelog using [clog](https://github.com/thoughtram/clog)\n * In addition to the conventions defined above, I also use `imp`, `wip`, `gr`.\n * Format your commit subject line using the following format: `TYPE(COMPONENT): MESSAGE` where `TYPE` is one of the following:\n    - `feat` - A new feature\n    - `imp` - An improvement to an existing feature\n    - `perf` - A performance improvement\n    - `tests` - Changes to the testing framework or tests only\n    - `fix` - A bug fix\n    - `refactor` - Code functionality doesn't change, but underlying structure may\n    - `style` - Stylistic changes only, no functionality changes\n    - `wip` - A work in progress commit (Should typically be `git rebase`'ed away)\n    - `chore` - Catch all or things that have to do with the build system, etc\n    - `gr` - Graphics changes\n * The `COMPONENT` is optional, and may be a single file, directory, or logical component. Can be omitted if commit applies globally\n5. Run the tests (`cargo test`)\n6. `git rebase` into concise commits and remove `--fixup`s (`git rebase -i HEAD~NUM` where `NUM` is number of commits back)\n7. Push your changes back to your fork (`git push origin $your-branch`)\n8. 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.)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinatorul%2Fminesweeper-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinatorul%2Fminesweeper-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinatorul%2Fminesweeper-rs/lists"}