2个版本
0.1.1 | 2021年4月11日 |
---|---|
0.1.0 | 2021年4月10日 |
#355 在 游戏
9KB
131 行
rollz 🎲
rollz
是一个超级简单的Rust包,允许你...掷骰子!你还需要包里有什么呢?!
实际上,这个包是我为了理解Rust返回类型多态而进行的实验,而且我在做这个实验的时候,为什么不把它发布成一个包供大家享受呢!?
我不期望这个包对 真实项目™️ 特别有用,除非你可能正在实现一些与D&D或类似类型的桌面游戏有关的东西。
是的,这个包实现了标准的D&D骰子组: D4
, D6
, D8
, D10
, D12
和 D20
。
安装
要安装库,请将以下行添加到您的 Cargo.toml
[dependencies]
rollz = "0"
或者,如果您有 cargo add
,您可以运行以下命令
cargo add rollz@0
示例用法
这是使用 rollz
掷 D10
的方法
use rollz::prelude::*;
use rollz::D10;
fn main() {
let d: D10 = roll();
println!("You got a {}", d.val()); // You got a 2
}
或者你也可以一起掷多个骰子,为什么不呢?
use rollz::prelude::*;
use rollz::D6;
fn main() {
let d: (D6, D6) = (roll(), roll());
println!("You got {:?}", d); // You got (D6(4), D6(6))
}
更多用法示例可在 examples
文件夹中找到。
创建你自己的自定义骰子
以下是一个示例,如果你想构建一个自定义骰子
use rollz::prelude::*;
/// A roll of this guy will always give you 100!
/// Shush ... Don't tell anyone! 🤫
#[derive(Debug)]
struct Fake100(u8);
impl Rollable for Fake100 {
fn roll() -> Fake100 {
Fake100 { 0: 100 }
}
fn val(&self) -> u8 {
self.0
}
}
fn main() {
println!("I bet I'll get a 100 this time!");
let d: Fake100 = roll();
println!("Look what I got: {}!", d.val())
}
贡献
每个人都非常欢迎为这个项目做出贡献。你可以通过 在GitHub上打开一个问题 来提交错误或提出改进建议。
许可证
在 MIT许可证 下授权。© Luciano Mammino。
依赖关系
~315KB