#拼图 #解决 #鲁比克 #WCA

立方体

Rust 中的 cubing.js 功能

37 个版本 (12 个破坏性更新)

0.13.0 2024年1月15日
0.12.4 2023年12月26日
0.11.1 2023年11月25日
0.5.2 2023年7月18日
0.1.2 2021年5月3日

#1 in #鲁比克


2 crates 中使用

MPL-2.0 许可证

115KB
2.5K SLoC

cubing.rs

cubing.js 中的功能在 Rust 中实现。

结构

有关 Rust 文档,请参阅 https://docs.rs/cubing/latest/cubing/

在 cubing 下实现了 cubing.js API 的一个子集

  • cubing::alg
  • cubing::kpuzzle
  • cubing::puzzles

大多数应用程序将使用 str.parse::<Alg>()KPuzzle 作为 API 的入口点

use cubing::{alg::parse_alg, puzzles::cube3x3x3_kpuzzle};

pub fn main() {
    let kpuzzle = cube3x3x3_kpuzzle();
    let default_pattern = kpuzzle.default_pattern();

    let input_alg = parse_alg!("R U R' F' U2 L' U' L F U2");

    let input_pattern = default_pattern
        .apply_alg(&input_alg)
        .expect("Input alg is not valid for puzzle.");
    println!(
        "The following alg {} the puzzle to its original pattern (including center orientation): {}",
        if default_pattern == input_pattern { "returns" } else { "does NOT return" },
        input_alg,
    )
}

开发

此存储库包含 f2lfast 的移植版本,该版本可用于测试功能(尽管它尚未达到全速)

cargo run --example f2lfast -- --scramble "U2 F2 U' L' U L D2 F D2 B' D2 B D2 L2 B L2 F"

使用以下命令运行测试

make test

依赖项

~1.6–2.5MB
~52K SLoC