All Projects → sprang → Marmoset

sprang / Marmoset

Licence: gpl-3.0
Marmoset is a single-player implementation of the card game SET.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Marmoset

Card Game Simulator
Create, Share, and Play
Stars: ✭ 87 (+171.88%)
Mutual labels:  game, card
Foda
You are at FODA source code. Play now for free
Stars: ✭ 92 (+187.5%)
Mutual labels:  game, card
Mage
Magic Another Game Engine
Stars: ✭ 1,180 (+3587.5%)
Mutual labels:  game, card
Searchstone
🃏 Hearthstone's cards search engine built with algolia instantsearch.
Stars: ✭ 117 (+265.63%)
Mutual labels:  game, card
Launchpad
An open-source game launcher for your games
Stars: ✭ 322 (+906.25%)
Mutual labels:  game, gtk
Openjk Launcher
Launcher and installer for OpenJk
Stars: ✭ 16 (-50%)
Mutual labels:  game, gtk
Shots
🥃 A party drinking game that lets you learn more about your friends: Provider + Hive + swipeable_card
Stars: ✭ 89 (+178.13%)
Mutual labels:  game, card
Deck Of Cards
Deck of Cards (old version)
Stars: ✭ 2,684 (+8287.5%)
Mutual labels:  game, card
Magarena
Magarena is a single-player fantasy card game played against a computer opponent.
Stars: ✭ 311 (+871.88%)
Mutual labels:  game, card
Hearthstone Deck Tracker
A deck tracker and deck manager for Hearthstone on Windows
Stars: ✭ 4,496 (+13950%)
Mutual labels:  game, card
Squib
A Ruby DSL for prototyping card games.
Stars: ✭ 850 (+2556.25%)
Mutual labels:  game, card
Falling Words Typing Game
This is the source code for a Falling Words Typing Game created in Unity during a Twitch Livestream.
Stars: ✭ 31 (-3.12%)
Mutual labels:  game
Nsdl
SDL for TI-Nspire calculators
Stars: ✭ 27 (-15.62%)
Mutual labels:  game
Vhackxtbot Python
Python API for vHackXT Game
Stars: ✭ 27 (-15.62%)
Mutual labels:  game
Pixi.js
The HTML5 Creation Engine: Create beautiful digital content with the fastest, most flexible 2D WebGL renderer.
Stars: ✭ 34,982 (+109218.75%)
Mutual labels:  game
Pacgo
A Pac Man clone written in Go (with emojis!)
Stars: ✭ 961 (+2903.13%)
Mutual labels:  game
Openkore
A free/open source client and automation tool for Ragnarok Online
Stars: ✭ 956 (+2887.5%)
Mutual labels:  game
Wallbreaker
Arkanoid/Breakout clone written in C++ and SFML
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Teleball
Build your own Arduino based retro handheld game console
Stars: ✭ 21 (-34.37%)
Mutual labels:  game
Klotski
Klotski Game & Solver (華容道遊戲)
Stars: ✭ 21 (-34.37%)
Mutual labels:  game

Marmoset   License: GPLv3

Marmoset is a single-player implementation of the card game SET®. It uses GTK+ 3 and is written in Rust.

In addition to the classic SET® 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.

See Quickstart for gameplay rules.

Marmoset Gameplay

Building

Check out the code and run cargo build --release.

Desktop File and Icon

To 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:

cp org.nybble.marmoset.desktop ~/.local/share/applications

Make sure the executable target/release/marmoset is somewhere in your $PATH.

Examples

In 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.

count

The 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.

Run count with cargo run --release --example count -- [OPTIONS].

USAGE:
	count [OPTIONS]

FLAGS:
	-h, --help       Prints help information
	-V, --version    Prints version information

OPTIONS:
	-t, --threads <THREADS>    Sets number of threads

simulate

The simulate program simulates games using classic SET® 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.

Run simulate with cargo run --release --example simulate -- [OPTIONS].

USAGE:
	simulate [OPTIONS]

FLAGS:
	-h, --help       Prints help information
	-V, --version    Prints version information

OPTIONS:
	-g, --games <GAMES>        Sets number of games to simulate (default: 1_000_000)
	-t, --threads <THREADS>    Sets number of threads

genpng

The genpng program generates a PNG image for each card in the Marmoset deck.

Run genpng with cargo run --release --example genpng -- [FLAGS] [OPTIONS] <DIRECTORY>.

USAGE:
	genpng [FLAGS] [OPTIONS] <DIRECTORY>

FLAGS:
	-c, --classic-colors       Uses classic SET colors
	-v, --render-vertically    Orients cards vertically
	-h, --help                 Prints help information
	-V, --version              Prints version information

OPTIONS:
	-b, --border <BORDER>    Sets the border width in pixels
	-w, --width <WIDTH>      Sets the card width in pixels

ARGS:
	<DIRECTORY>    Sets the directory in which to place the images

License

Marmoset is released under the GNU General Public License v3.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].