#cube #rubik #rubiks-cube #rubiks

bin+lib cubesim

鲁班立方体模拟和求解库

6 个版本

0.0.7 2021 年 11 月 12 日
0.0.6 2021 年 11 月 7 日
0.0.4 2021 年 10 月 13 日

181 in 模拟

MIT 许可证

45KB
879

CubeSim V2

CubeSim 是一个完全用 Rust 编写的鲁班立方体模拟器和求解器。

特性

计划中的特性

  • 用户界面(可能使用 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