{"id":15722037,"url":"https://github.com/sprang/marmoset","last_synced_at":"2025-04-07T07:07:26.824Z","repository":{"id":57636814,"uuid":"95480891","full_name":"sprang/marmoset","owner":"sprang","description":"Marmoset is a single-player implementation of the card game SET.","archived":false,"fork":false,"pushed_at":"2024-12-22T19:04:23.000Z","size":661,"stargazers_count":39,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T05:08:04.443Z","etag":null,"topics":["card","card-game","game","gtk","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":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sprang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-GPL3","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}},"created_at":"2017-06-26T19:15:48.000Z","updated_at":"2024-12-22T19:04:27.000Z","dependencies_parsed_at":"2024-10-24T16:45:03.447Z","dependency_job_id":"43e623ef-afe1-40fc-8924-15da75e92075","html_url":"https://github.com/sprang/marmoset","commit_stats":{"total_commits":22,"total_committers":1,"mean_commits":22.0,"dds":0.0,"last_synced_commit":"69e2c2f729998957d8478790ec4204b93338a0a2"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sprang%2Fmarmoset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sprang%2Fmarmoset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sprang%2Fmarmoset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sprang%2Fmarmoset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sprang","download_url":"https://codeload.github.com/sprang/marmoset/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608151,"owners_count":20965952,"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":["card","card-game","game","gtk","rust"],"created_at":"2024-10-03T22:03:23.288Z","updated_at":"2025-04-07T07:07:26.800Z","avatar_url":"https://github.com/sprang.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Marmoset \u0026emsp; [![License: GPLv3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)\n\nMarmoset is a single-player implementation of the card game [SET]\u0026reg;. It uses [GTK+ 3] and is written in [Rust].\n\nIn addition to the classic [SET]\u0026reg; rules, Marmoset provides another game variant called [SuperSet] that uses the same deck. Other features include a beginner's deck (solid cards only), undo and redo, hints, and a color palette intended to be playable by people with color vision deficiencies.\n\nSee [Quickstart] for gameplay rules.\n\n![Marmoset Gameplay](/images/gameplay.png)\n\n## Building\n\nCheck out the code and run `cargo build --release`.\n\n### Desktop File and Icon\n\nTo install the desktop entry for Marmoset on Linux, edit `org.nybble.marmoset.desktop` so that the `Icon=~/marmoset/icon.svg` entry reflects the actual path to `icon.svg` on your system, then:\n\n`cp org.nybble.marmoset.desktop ~/.local/share/applications`\n\nMake sure the executable `target/release/marmoset` is somewhere in your `$PATH`.\n\n## Examples\n\nIn addition to the Marmoset app, there are three command line programs that use the same underlying library. These were written to answer questions about Set and SuperSet gameplay, and to generate card images for documentation.\n\n### count\n\nThe `count` program generates all possible deals to determine the smallest hand that is guaranteed to contain a SuperSet. The conclusion is that any deal of 10 cards will contain at least one SuperSet. This result informed the layout and behavior of the SuperSet variant in Marmoset.\n\nRun `count` with `cargo run --release --example count -- [OPTIONS]`.\n\n```\nUSAGE:\n\tcount [OPTIONS]\n\nFLAGS:\n\t-h, --help       Prints help information\n\t-V, --version    Prints version information\n\nOPTIONS:\n\t-t, --threads \u003cTHREADS\u003e    Sets number of threads\n```\n\n### simulate\n\nThe `simulate` program simulates games using classic [SET]\u0026reg; rules. It tallies the number of hands that contain no Sets and the number of cards remaining when the game ends. This program was used to determine how often a game was likely to get wedged with 18 cards in play. Since this turned out to be exceedingly rare (approximately once every 1.6 million games), Marmoset always guarantees that an 18 card deal contains at least 1 Set. This means we only need 18 card positions on the tableau rather than 21.\n\nRun `simulate` with `cargo run --release --example simulate -- [OPTIONS]`.\n\n```\nUSAGE:\n\tsimulate [OPTIONS]\n\nFLAGS:\n\t-h, --help       Prints help information\n\t-V, --version    Prints version information\n\nOPTIONS:\n\t-g, --games \u003cGAMES\u003e        Sets number of games to simulate (default: 1_000_000)\n\t-t, --threads \u003cTHREADS\u003e    Sets number of threads\n```\n\n### genpng\n\nThe `genpng` program generates a PNG image for each card in the Marmoset deck.\n\nRun `genpng` with `cargo run --release --example genpng -- [FLAGS] [OPTIONS] \u003cDIRECTORY\u003e`.\n\n```\nUSAGE:\n\tgenpng [FLAGS] [OPTIONS] \u003cDIRECTORY\u003e\n\nFLAGS:\n\t-c, --classic-colors       Uses classic SET colors\n\t-v, --render-vertically    Orients cards vertically\n\t-h, --help                 Prints help information\n\t-V, --version              Prints version information\n\nOPTIONS:\n\t-b, --border \u003cBORDER\u003e    Sets the border width in pixels\n\t-w, --width \u003cWIDTH\u003e      Sets the card width in pixels\n\nARGS:\n\t\u003cDIRECTORY\u003e    Sets the directory in which to place the images\n```\n\n## License\n\nMarmoset is released under the [GNU General Public License v3].\n\n[SET]: http://setgame.com/set\n[GNU General Public License v3]: https://www.gnu.org/licenses/gpl-3.0.en.html\n[GTK+ 3]: http://www.gtk.org/\n[Rust]: https://www.rust-lang.org\n[SuperSet]: http://magliery.com/Set/SuperSet.html\n[QUICKSTART]: QUICKSTART.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsprang%2Fmarmoset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsprang%2Fmarmoset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsprang%2Fmarmoset/lists"}