4 个版本

0.2.0 2022年2月6日
0.1.2 2022年1月24日
0.1.1 2022年1月24日
0.1.0 2022年1月24日

#146模拟


wordle_strategies 中使用

MIT 许可证

235KB
3K SLoC

wordle_rs

build license docs changelog

警告:此项目尚不稳定,因此次要更新可能会破坏向后兼容性。

你是否曾对 Wordle 迷恋到想要以程序方式评估不同策略?如果是这样,你就在正确的位置。

此包是 wordle_rs 项目的组成部分,该项目有三个部分

  • wordle_rs,这是一个库,你可以用它来编写和评估自己的 Wordle 策略,
  • wordle_strategies,这是一个库,演示了我编写的一些策略,以及
  • wordle_runner (WIP),这是一个命令行程序,可以运行和比较用 wordle_rs 编写的 Wordle 策略。

请随时向 wordle_strategies 贡献您的策略!

使用 wordle_rs 编写策略

将以下内容添加到您的 Cargo.toml

[dependencies]
wordle_rs = "0.2.0"

然后,定义一个新的结构体并为它实现 Strategy 特性。

use wordle_rs::Strategy;

struct MyCoolStrategy;

impl Strategy for MyCoolStrategy {
    // snip
}

然后,为您的策略配置和运行测试工具。您可以在下面看到如何做这件事。您也可以使用 wordle_runner 来为您运行策略,尽管这还是一个正在进行中的工作。

运行 wordle_strategies 的策略

要运行预制的策略(可能针对您自己的策略!),首先将以下内容添加到您的 Cargo.toml

[dependencies]
wordle_rs = "0.2.0"
wordle_strategies = "0.2.0"

然后,导入一个策略并在您的策略上运行 wordle_rs 测试工具。

运行 wordle_rs 测试工具

只需导入工具并配置它以运行您想要测试的策略。您可以添加任何位置的策略,包括您自己编写的策略。方法 Harness::add_strategy 接受任何实现了 Strategy 特性的内容。

use wordle_rs::{harness::Harness, WordleError};
use wordle_strategies::Common;

fn main() -> Result<(), WordleError> {
    let harness = Harness::new()
        .add_strategy(Box::new(Common), None)
        .test_num(10);
    let perfs = harness.run()?;
    perfs.print_report()?;

    Ok(())
}

使用 wordle_runner

即将推出。

wordle_rs 的包级别文档

示例

构建您自己的策略的示例可以在本仓库的 wordle_strategies 文件夹中找到,其中包含同名crate的代码。

构建功能

wordle_rs crate 支持禁用一些非关键功能,允许它在某些主要依赖项缺失的情况下构建。以下是功能和它们的效果:

  • serde:允许序列化和反序列化性能记录,并包括加载和保存基线的机制
  • stats:启用性能记录之间的统计比较
  • fancy:启用带有颜色、进度条和表格的精美显示
  • parallel:允许并行运行测试框架

:默认启用

许可证

本项目中的所有内容均受 MIT 许可证 许可。

依赖项

~0.9–11MB
~109K SLoC