问题标签 [rubiks-cube]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
140 浏览

javascript - 魔方的随机移动 javascript 加扰器

我目前正在研究网络计时器,并且我的加扰算法算法存在一些问题。由于是第一个版本,我只希望扰码器是随机移动而不是随机状态,因为它制作起来太复杂了,它将在未来的更新中推出。我有一个算法,它基本上会从可能性中选择一组随机移动,然后检查两个相同的字母(或移动)是否不相邻。一切正常,但我不知道如何添加一些可以避免以下情况的内容:例如“DU D”。两个相同的移动被另一个移动分开是可以接受的例如“DR D”,但不是“DU D”,因为它等于“D2 U”,因此是一个浪费的移动。

来自非立方体的信息:

每个字母代表它的脸,当它被阅读时,它会被移动。例如:“LU L”:“L”表示左脸顺时针旋转一次,“U”表示上脸顺时针旋转,最后“L”再次表示左脸再次旋转。如果一个字母后跟一个撇号,则表示该面应逆时针旋转。如果后面跟着一个“2”,则表示脸要连续旋转两次。L是左,R是右,F是前,B是后,D是下,U是上

这是代码:

0 投票
1 回答
70 浏览

java - 复制多维数组的一部分

我正在尝试为立方体的每个面使用 6 个二维数组创建一个 Rubiks 立方体。我可以使用此代码旋转整个立方体,但由于某种原因,当我尝试“转动”立方体的一个垂直条时,它无法正常工作。这是我到目前为止所拥有的

因此,如果这个立方体被向上翻转,那么立方体的底部变成了前面,后面变成了底部,等等。当我使用“Up1”命令执行此操作时,立方体的底部似乎从我的数组中消失了,并且top 被加倍为两个数组。我究竟做错了什么?我对使用多维数组很陌生,所以我犯了一些愚蠢的错误吗?

编辑:所以为了简化事情,出于某种原因,这是可行的

但这并不

为什么第二个版本不能正常工作?

编辑2:

正确工作的代码示例。它循环通过下,下,上,前,然后再下

输入:up1

输入:up1

输入:up1

输入:up1

使用无法正常工作的 2D 临时数组的代码示例。由于某种原因它跳过了立方体的底部

输入:up1

输入:up1

输入 up1

输入:up1

0 投票
1 回答
189 浏览

c++ - 使用 cout 打印字符串数组不起作用

我有这段代码,它应该计算一个数组的字符串,但它什么都不做:/而且,当我运行 .exe 文件本身时,它会给出一些在文件中找不到 basic_string 的错误。

我该如何解决这个问题,我做错了什么?

0 投票
3 回答
104 浏览

python - Python比较列表中的连续项目并在它们相同时删除它们

这是一个魔方打乱发生器的尝试。我有时会一个接一个地转动同一张脸,例如(R,R')。我试图使用 for 和 while 循环来解决这个问题,但它没有用。

0 投票
0 回答
372 浏览

java - JavaFX Rubik Cube - 魔方选择

我正在尝试从头开始构建一个魔方,作为我real使用 JavaFx 的第一个应用程序。在Moves类中,我根据位置从 ObservableList 中选择 Boxes。问题是 Box.getTranslate 剂量更新,因此当我尝试连续移动正面和左侧时,两者选择的框总是被移动,导致......混乱。我怎样才能重新编写它,以便 Move 方法正确选择要移动的框?这是代码,正在进行中。

主要的

魔方

移动

0 投票
4 回答
1118 浏览

c++ - 为什么 BFS 算法并不总能找到魔方的解?

我正在尝试基于 BFS 算法编写 rubick 的立方体求解器。如果完成了一次洗牌(移动了一堵墙),它就会找到方法。当我做更复杂的随机播放时,内存有问题。

我写了立方体,所以可以在上面移动,所以移动效果很好。我正在通过将立方体与新立方体进行比较(而不是随机播放)来检查立方体是否已解决。我知道它并不完美,但无论如何它应该可以工作......

有一些代码:

0 投票
2 回答
54 浏览

java - 瓷砖从魔方旋转消失

我正在研究一个 2x2 魔方,并且无法通过我的程序进行一侧旋转。立方体是一个二维的正方形数组。我只是想逆时针旋转 90 度。

这就是发生的事情 https://imgur.com/a/tlskNKY

我改变了颜色,所以我可以看到特定的方块以及它们是如何变化的。我尝试更改顺序,一次移动特定的部分,看看问题是否只是重叠的部分(没有这样的运气)。

我希望输出是逆时针旋转的原始图像。

0 投票
2 回答
32 浏览

java - 创建一个名为 RubikRight 的 Rubik 类的子类

我有一个魔方课程,内容如下:

我正在尝试创建一个扩展 Rubik 的 RubikRight 类,并且 RubikRight 的方向是原始 Rubik 的右面现在面向前面。这就是我为 RubikRight 定义构造函数的方式:

但是,我收到错误消息

我可以知道为什么我似乎不能那样定义 RubikRight 吗?

0 投票
1 回答
56 浏览

prolog - 即使定义了基本谓词,prolog 查询也会卡住

我正在prolog 中创建一个魔方求解器我已经实现了解决白边的谓词。但是当我查询它时,它会卡住。这是代码:

当我输入此查询时:-

:(假设 X 是立方体的任何混乱状态)它会卡住而不打印任何东西。如果您可以为我提供任何其他算法的实现或更好的我的实现(最好使用我的谓词 f、f'、u、r、b 等),那就更好了。

0 投票
0 回答
88 浏览

python - 在魔方中存储颜色

我正在尝试找到将颜色存储在魔方中的最佳方法。我决定使用以坐标为键、以立方体对象为值的字典。这很实用,因此我可以使用算法更改立方体的位置。将其绘制成 3d 图形也可能很好。问题是立方体必须存储颜色,我需要一个好方法来做到这一点。有些立方体必须存储 3 种颜色,而另一些只能存储 1 或 2 种颜色。此外,它应该具有旋转功能。这也很困难,这就是我需要帮助的原因。我不确定哪个更好,列表或字典,或者可能只是更改方向,因为生成了立方体并被加扰。

感谢您阅读发布答案。