#bluetooth #rubik #cubing #rubiks #speedcubing

twisted

一个速拧和智能魔方库

3个版本

0.1.3 2022年4月10日
0.1.2 2022年4月10日
0.1.1 2022年4月9日
0.1.0 2022年4月8日

#573图形API

GPL-3.0-only

75KB
2K SLoC

一个智能速拧库。

twisted不仅模拟了许多常见的速拧概念,还提供了与智能魔方交互的抽象,以及一个可选模块,该模块可以使用sdl2绘制魔方状态。

目标

目前,twisted有三个主要目标

  • 为与智能魔方一起工作提供连接抽象。
  • 通过简化记录和分解解决方案,促进开源速拧软件(如模拟器和训练工具)的开发。
  • 通过提供方法和子步骤的抽象,促进方法开发。

未来,我们希望支持优化解决方案和通过IDA-Star搜索算法,但这将需要子步骤的性能优化模型,以及许多不同子步骤和方法的启发式表。

此外,我们希望支持更多智能魔方和每个智能魔方的附加功能,例如陀螺仪和检索电池水平等信息。

智能魔方

`twisted'支持以下智能魔方

  • Moyu Weilong AI

每个魔方都存在以下功能

  • 将原始转动数据导出到文件。
  • 从文件加载原始转动数据。
  • 实时录制和重建转动。
  • 从转动数据中重建动作。

以下功能计划应用于每个魔方

  • 实现Stream特质。
  • 将记录的缓冲区中的数据导出到文件。

支持的方法

'twisted'包含以下方法的模型,以及它们的子步骤模型。这些都是MethodSubstep特质的实现。

入门指南

要将twisted添加到您的项目中,只需将库添加到您的Cargo.toml的依赖项部分即可。

[dependencies]
...
twisted =  "0.1.3"

如果您需要任何智能魔方或GUI功能,请记住启用bluetooth或`sdl2`模块。

[dependencies]
...
twisted = { version = "0.1.3", features = ["bluetooth", "sdl2"] }

依赖项

~0.5–12MB
~137K SLoC