rubik-cube-solver 使用js求解魔方

原文链接: rubik-cube-solver 使用js求解魔方

上一篇: ios filter 和 background 加线性渐变 移动时导致的拖尾问题[已解决]

下一篇: js 在线性能测试 函数调用和三元运算符 闭包和局部变量

npm:

https://www.npmjs.com/package/rubik-cube-solver

yarn add rubik-cube-solver

const cubeState = [
  "dbbburrfb", // front
  "rudrruddl", // right
  "flulfbddr", // up
  "llffdrubf", // down
  "rludlubrf", // left
  "lubfbfudl", // back
]
  .join("")
  .toUpperCase();

import { Cube } from 'rubik-cube-solver'
Cube.initSolver();
const cube = Cube.fromString(cubeState);
console.log(cube.solve());
// U F B R L U2 B2 U L2 F' U' F2 U2 L2 D L2 F2 U' R2 U2 L2 U'

这个网站不错

https://rubiks-cube-solver.com/zh/solution.php?cube=0136361144264254622516542151552133413525425664363613342

up-35f5c6aff6576c9e8408d01b8dacbab8a94.png

node, 浏览器用不了, 或者需要用c导出wasm来做

https://github.com/d-band/kociemba

纯js, 可以用,但是输出数据需要做些转换

https://github.com/slammayjammay/rubiks-cube-solver#readme

用的coffee, 我用插件转了一下, 可以使用ts了, 但是这个库写的实在是太抽象了, 根本没办法重写, 昨天搞到一点多也只是完成了cube的重构, solve基本上看不到希望... 基本放弃了, 就加下类型吧

https://github.com/ldez/cubejs#readme

为了记录下复原、转乱的过程或公式的步骤,会用“辛马斯特标记”(Singmaster notation)来书写(由大卫·辛马斯特发明)[14]。书写方式如下:

R(Right)、L(Left)、U(Up)、D(Down)、F(Front)、B(Back)分别代表右、左、上、下、前、后层。
若是顺时针旋转,则直接写上符号;若是逆时针旋转,则在符号后加上“'”或是“i”;若是旋转180°,则在符号后加上“2”或是“²”。
若要更加详细纪录整个过程,还会使用以下符号:

x、y、z分别代表将整个魔方做R、U、F,因为在速解魔方的时候,并不会总是将一个面朝向自己。
r、l、u、d、f、b分别代表右、左、上、下、前、后两层,代表连中间层一起转。
M(Middle)、E(Equator)、S(Side)代表旋转中间层,相当于Rr'、Uu'、Bb'[15](注意x,y,z和M,E,S对应的方向不一样)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值