4 个版本
0.9.4 | 2020年4月4日 |
---|---|
0.9.2 | 2018年3月16日 |
0.9.1 | 2017年8月22日 |
0.9.0 | 2017年6月29日 |
#431 在 游戏
520KB
2K SLoC
Marmoset —
Marmoset 是一款单人实现的卡牌游戏 SET®。它使用 GTK+ 3 并用 Rust 编写。
除了经典的 SET® 规则外,Marmoset 还提供另一种名为 SuperSet 的游戏变体,它使用相同的牌组。其他功能包括初学者牌组(仅包含实心卡片)、撤销和重做、提示以及旨在供色觉缺陷人士玩耍的颜色调板。
请参阅 快速入门 了解游戏规则。
构建
检出代码并运行 cargo build --release
。
桌面文件和图标
要在 Linux 上安装 Marmoset 的桌面入口,编辑 org.nybble.marmoset.desktop
,以便 Icon=~/marmoset/icon.svg
条目反映了您系统上 icon.svg
的实际路径,然后
cp org.nybble.marmoset.desktop~/.local/share/applications
确保可执行文件 target/release/marmoset
在您的 $PATH
中的某个位置。
示例
除了 Marmoset 应用程序外,还有三个使用相同底层库的命令行程序。这些程序被编写来回答有关 Set 和 SuperSet 游戏的问题,并生成文档中的卡片图像。
count
count
程序生成所有可能的发牌方式,以确定包含 SuperSet 的最小手牌。结论是,任何 10 张牌的发牌都会至少包含一个 SuperSet。这个结果为 Marmoset 中的 SuperSet 变体的布局和行为提供了信息。
使用 count
与 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
程序使用经典的 SET® 规则来模拟游戏。它计算没有 Sets 的手牌数量以及游戏结束时剩余的卡片数量。这个程序被用来确定游戏陷入 18 张牌的局面有多常见。由于这种情况极为罕见(大约每 1.6 百万次游戏中出现一次),Marmoset 始终保证 18 张牌的牌局中至少包含 1 张 Set。这意味着我们只需要在桌面上有 18 个牌位而不是 21 个。
使用 cargo run --release --example simulate -- [OPTIONS]
运行 simulate
。
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
genpng
程序为 Marmoset 牌组中的每张牌生成一个 PNG 图像。
使用 cargo run --release --example genpng -- [FLAGS] [OPTIONS] <DIRECTORY>
运行 genpng
。
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
许可证
Marmoset 根据 GNU 通用公共许可证 v3 发布。
依赖项
~21MB
~466K SLoC