#random #gamedev

无需 std perchance

非常简单的随机数生成,针对易用性进行了优化

12 个版本

0.5.3 2024 年 2 月 22 日
0.5.1 2023 年 8 月 18 日
0.5.0 2022 年 12 月 16 日
0.4.0 2022 年 11 月 23 日
0.2.2 2022 年 3 月 18 日

#694 in 算法

Download history 141/week @ 2024-03-11 69/week @ 2024-03-18 6/week @ 2024-03-25 61/week @ 2024-04-01 8/week @ 2024-04-08 9/week @ 2024-04-15 14/week @ 2024-04-22 9/week @ 2024-04-29 23/week @ 2024-05-06 26/week @ 2024-05-20 9/week @ 2024-05-27 15/week @ 2024-06-03 13/week @ 2024-06-10 17/week @ 2024-06-17 13/week @ 2024-06-24

每月 58 次下载
7 个包中使用(通过 cervo-core

MIT/Apache

28KB
331

🎲 perchance

一个轻量级、快速、易于使用的随机数生成库,适用于游戏中和几何中最常见的用例。

请注意,perchance 并非加密安全,不应 在需要安全性的环境中使用。

使用方法

perchance 是一个简单的随机数生成库,针对易用性进行了调整:创建一个 PerchanceContext 实例并开始。

let mut rng = perchance::PerchanceContext::new(seed);

let between_0_and_1 = rng.uniform_f32();
let dice_roll = rng.uniform_range_i32(1..=6);
let random_direction = rng.uniform_sphere_surface_vec3();
let thing_should_happen = rng.get_bool();

enum Event {
    Thing1,
    Thing2,
    Thing3,
}
let which_should_happen = rng.choose(&[Event::Thing1, Event::Thing2, Event::Thing3]);

如果您已启用 std 功能,也可以使用全局的 perchance::global()

// Seed the global context first. You may do so manually, or, on platforms that support it,
// obtain a seed to pass into it by calling `perchance::gen_time_seed()`.
perchance::seed_global(0x5F3759DF); // ;)

let mut rng = perchance::global();
let between_0_and_1 = rng.uniform_f32();

贡献

我们欢迎社区为此项目做出贡献。

请阅读我们的 贡献指南 了解如何开始。

许可证

许可协议为以下之一:

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的,您提交的任何有意包含在工作中的贡献都将如上所述双重许可,而不附加任何额外条款或条件。

依赖项

~3.5MB
~98K SLoC