6 个版本
0.0.7 | 2021 年 11 月 12 日 |
---|---|
0.0.6 | 2021 年 11 月 7 日 |
0.0.4 | 2021 年 10 月 13 日 |
181 in 模拟
45KB
879 行
CubeSim V2
CubeSim 是一个完全用 Rust 编写的鲁班立方体模拟器和求解器。
特性
- 模拟任意大小的 NxNxN 鲁班立方体。
- 使用 Thistlethwaite 算法 生成解决方案
计划中的特性
- 用户界面(可能使用 WASM 的 Web 界面)。
- 使用 Kociemba 算法 生成最优解
使用方法
库中的核心类型如下
Cube trait
:为了支持鲁班立方体的多种实现,我们定义了一个 trait,其中包含了对鲁班立方体期望的最小行为集合。具体实现可以用于不同的场景。例如,FaceletCube
具有最高的性能,而GeoCube
允许轻松地进行 3D 建模。Face enum
:用 WCA 表示法 表示的鲁班立方体贴纸的面。Move enum
:用 WCA 表示法 表示的 3x3x3 鲁班立方体的移动。每个Move
必须标记一个MoveVariant
来完全定义一个移动。MoveVariant enum
:必须应用于Move
枚举的移动变体。
理解了这些核心类型后,我们可以开始编写基本的模拟
use cubesim::prelude::{Cube, Face, Move, MoveVariant};
use cubesim::cube_implementors::FaceletCube;
let cube = FaceletCube::new(3);
let turned_cube = cube.apply_move(Move::U(MoveVariant::Double));
println!("{:?}", turned_cube.get_state());
要构建更复杂的模拟和求解器,请参阅我们的 官方文档。
使用的资源
依赖关系
~2.5MB
~44K SLoC