{"id":20665178,"url":"https://github.com/martan03/minesweeper","last_synced_at":"2026-06-08T14:32:38.728Z","repository":{"id":230728535,"uuid":"778947449","full_name":"Martan03/minesweeper","owner":"Martan03","description":"Minesweeper TUI implementation in Rust 🦀","archived":false,"fork":false,"pushed_at":"2026-04-01T21:47:30.000Z","size":151,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-02T09:24:51.738Z","etag":null,"topics":["minesweeper","minesweeper-cli","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Martan03.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-03-28T18:14:36.000Z","updated_at":"2026-04-01T21:47:36.000Z","dependencies_parsed_at":"2024-04-14T16:41:03.300Z","dependency_job_id":"ab06de92-e431-440e-979f-dbca2c352a02","html_url":"https://github.com/Martan03/minesweeper","commit_stats":null,"previous_names":["martan03/minesweeper"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Martan03/minesweeper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2Fminesweeper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2Fminesweeper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2Fminesweeper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2Fminesweeper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Martan03","download_url":"https://codeload.github.com/Martan03/minesweeper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Martan03%2Fminesweeper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34067348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["minesweeper","minesweeper-cli","rust"],"created_at":"2024-11-16T19:28:54.867Z","updated_at":"2026-06-08T14:32:38.723Z","avatar_url":"https://github.com/Martan03.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# minesweeper\n\nMinesweeper TUI implementation in Rust 🦀\n\n![game](https://github.com/user-attachments/assets/655bd777-b89a-4e49-9a5e-fe6b9bb8e259)\n\n## Installation:\n\nYou have to compile it yourself, but that shouldn't be a problem. Only thing\nyou need is `cargo`:\n\n```bash\ncargo build -r\n```\n\nAfter its done compiling, you can start it in `./target/release/minesweeper`\n\n## Usage:\n\nRunning minesweeper without any arguments behaves based on the configuration.\nBy default it opens difficulty picker, where you can select difficulty and\nstart playing:\n\n```bash\n./minesweeper\n```\n\nStart the minesweeper game with given difficulty:\n\n```bash\n./minesweeper -d \u003ceasy|medium|hard\u003e\n```\n\nYou can also create your own difficulty by running:\n\n```bash\n./minesweeper -c \u003cboard width\u003e \u003cboard height\u003e \u003cnumber of mines\u003e\n```\n\nEvery usage is shown in the program help:\n\n```bash\n./minesweeper -h\n```\n\n## What is Minesweeper?\n\n**Minesweeper** is a puzzle game where your objective is to clear a rectanguler\nboard containing hidden mines without detonating any of them.\n\nIn the beginning all the cells are hidden. You can reveal any cell to see, what\nis underneath. Each cell contains a **number of mines** around it\n_(8 neighboring cells)_. If the number is zero, the cell is empty\n_(doesn't have any number)_.\n\nBased on the numbered cells you have to **deduce** where the mines are located\nand mark them with a **flag**. If you flag all the mines, you win the game. But\nif you denote even a single mine, the game is over.\n\n## Detailed description\n\n### Difficulty picker:\n\n![difficulty picker](https://github.com/user-attachments/assets/38c60748-c101-4ba0-94e1-3c78e16e2f7f)\n\nWhen you start the game without previously setting the default difficulty or\nrunning the program with CLI arguments setting the difficulty, you will be\ngreeted with this difficulty picker page. It contains a list of three\npredefined difficulties you can choose from. You can use arrow keys or vim\nmotion keys (`jk`) to change the selected difficulty. To confirm you choice,\npress `Enter`.\n\nYou can also open it from the game screen by pressing `Tab`.\n\n### Game screen:\n\n![game](https://github.com/user-attachments/assets/655bd777-b89a-4e49-9a5e-fe6b9bb8e259)\n\nAfter you choose a difficulty you want to play, you will be greeted with the\nboard in the middle. You can also see number of flags left above the board on\nthe left side. You can then use arrow keys or vim motion keys (`hjkl`) to\nchange the selected cell. By pressing `d` or `Enter` you reveal the currently\nselected cell. There's also special reveal feature, where when you reveal\nalready revealed cell and the number of flags around it matches its number, it\nreveals all the neighboring cells. To place/remove flag, you can press `f` key.\n\nWhen you fill the whole board and it's correct, you will see Victory message\nabove the board on the right side.\n\nIf you finish a game, or you fail one, you can reset the board by pressing `r`.\nYou can also press `c` to select the board's center cell.\n\n### Help screen\n\n![image](https://github.com/user-attachments/assets/02afff94-23e6-4913-9c36-846cf368b918)\n\nBy pressing `i` you can toggle between help screen and game screen. It contains\nlist of all the described keybinds above.\n\n### Configuration\n\nSome players prefer playing certain difficulty and for that reason there's\nconfiguration. You can open the config file by running:\n\n```bash\n./minesweeper config\n```\n\nWhich opens the config file in editor based on the `EDITOR` environment\nvariable. You can change the `default_difficulty` to any of the difficulties\nand when running without arguments, the game of that difficulty will be\nstarted without showing you the difficulty picker. By default the value is\n`null`, which opens the difficulty picker on start.\n\nYou can set it to predefined difficulty:\n\n- `\"Easy\"`\n- `\"Medium\"`\n- `\"Hard\"`\n\nOr you can set it to a custom difficulty:\n\n```json\n{\n    \"Custom\": {\n        \"width\": 20,\n        \"height\": 10,\n        \"mines\": 30\n    }\n}\n```\n\n## Links\n\n- **Author:** [Martan03](https://github.com/Martan03)\n- **GitHub repository:** [termint](https://github.com/Martan03/minesweeper)\n- **Author website:** [martan03.github.io](https://martan03.github.io)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartan03%2Fminesweeper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartan03%2Fminesweeper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartan03%2Fminesweeper/lists"}