问题标签 [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.
prolog - 告诉 prolog 停止并开始搜索其他可能性
我正在尝试用序言解决魔方,我试过这个:
所以我可以做这样的事情:
它会回答
但是当我尝试这个时:
Prolog 尝试仅使用 +f 移动来解决。
我想告诉序言,在 4 +f 开始看其他动作之后。
我还想告诉它,尝试最多 N 个动作。
我怎样才能做到这一点?
谢谢。
PS:我知道这不是解决魔方的最佳方法,但我想尝试这种方法。
java - 魔方的 Java 魔方求解 API
我目前正在构建一个解决魔方的机器人。我使用Android手机扫描立方体,我也想在Android中解决它。有没有可以解魔方的图书馆?
提前致谢
javascript - 绘制魔方的 3d 基础知识
我想在 html 画布元素上用一些透视图绘制一个魔方,但我从未有过 3d 图形、透视图等方面的经验,所以我正在寻找所有有用的资源来实现这一点。我发现的唯一有用的链接是这个演示:
c++ - OpenGL rubiks cube - 用鼠标旋转面部
我正在研究我的第一个真正的 OpenGL 项目。它是一个 3x3x3 魔方。这是我到目前为止的简单截图的链接(我的魔方)
旋转立方体是通过按住鼠标右键拖动鼠标来完成的。这使用来自 NeHe 教程(NeHe Arcball)的轨迹球示例
我有一个类 singleCubes,它通过 6 个实际四边形表示一个立方体,存储在一个显示列表中,可以在它的绘制方法中使用。类 ComplexCube 有一个 3x3x3 singleCubes 数组,在与完整的魔方交互时用作接口。
现在我想根据鼠标左键向下拖动来旋转每个特定的面。我使用pick来获取用户单击的单个立方体的对应侧的ID。这也有效。所以我点击一个立方体的一侧,根据拖动的方向,我设置了受影响的立方体的旋转和偏移因子。(我也想实现你实际上看到脸部旋转而不是仅仅改变颜色)
现在我的问题是,当我用鼠标右键拖动以任何方向旋转魔方时,它会变成上下颠倒。因此,当我单击一侧并想要将面向右旋转时,它会朝错误的方向前进,因为我无法跟踪立方体是否倒置或其他。由于使用了轨迹球旋转,我没有可以用来确定这一点的 x 或 y 旋转角度。
问题 1:当使用上面链接的轨迹球示例时,如果立方体倒置、倾斜等,为了翻译鼠标拖动信息(当旋转一个面时),我如何跟踪或稍后获取信息?
设置:C++ 和 Microsoft Visual Studio 2008、GLEW、freeglut
c - OpenGL:在图像表面上绘制的污点
我正在尝试编写一个魔方的接口。
但是,当我绘制它时,立方体的表面上有污迹:
这是注释良好的代码。有人可以帮助我并运行代码并告诉我哪里可能出错了吗?
好的,我已经修改了代码,以便我在后面绘制青色矩形 0.01f 单位而不是 0.001f 单位,这似乎已经修复了 z-fighting。但是我本来想使用 glPolygonOffset(factor, units) 来解决这个问题,但我无法做到,原因如下:
- 我不知道如何设置因子和单位(我都尝试过 1.0)。
- 我尝试了不同的值,但没有结果。
这是没有流血/缝合/z-fighting的代码:
java - 序列生成/广度优先搜索
本质上,我正在做的是尝试通过广度优先搜索所有可能的动作来解决魔方。我知道这不是解决多维数据集的最佳方法,但我只需要非常短的序列(因此搜索的深度不太可能超过 3),我不需要存储任何东西当前序列。
我正在尝试找到一种打印出不断增加的数字字符串(0,1,2,00,01,02 ...)的方法,因此我可以将每个字符串插入一个函数中以检查该特定序列是否移动解决了多维数据集,但我无法找到无限期地继续序列的方法。
到目前为止,我所管理的只是嵌套 for 循环,但每次搜索更深入时都需要另一个循环。有谁知道我该如何解决这个问题?
抱歉,如果我太含糊了,我可以写一篇关于我正在尝试做的事情的文章,但我想我会尽量保持简单。
python - Python 3.2.1:exec('x = y()') 在玩具示例中设置了一个值,但在完整代码中没有
我正在使用 exec() 语句来设置一个值,如下所示:
正如我所料,结果为 4。
我的程序有操作魔方的操作。在这个精简版中,我将做四件事:
我将实例化一个立方体,填充一个面(带有“front top left”和“front bottom right”等的缩写)。
我将有一个旋转正面的功能。
我将有一个“解释器”函数,它接受一个多维数据集和一个指令列表,并将这些指令应用于多维数据集,返回修改后的多维数据集。这是我使用'exec'的地方(以及我认为破损发生的地方)。
最后,我将在我的部分立方体上运行解释器,并指示旋转一次面。
+
如果我用 x = eval(y) 替换 exec(x = y) 格式,它似乎可以工作。return_cube = eval(指令 + '(return_cube)')
所以也许这只是学术性的。为什么玩具示例有效,而实际代码失败?(我是不是在做一些明显而愚蠢的事情,比如错过一个等号?我要踢自己,我敢打赌......)
感谢任何人都可以提供的任何帮助。
android - Android Kube API 示例脱离了结构
我正在将 Android API Samples 中的Kube应用程序用于我正在开发的应用程序。
该示例在 OpenGL 中创建了一个由 27 个小立方体组成的魔方模型。然后通过旋转立方体的随机层在 animate() 方法中对立方体进行加扰,每次旋转后,在我不完全理解的过程中相应地设置层
该示例工作正常,但由于某种原因,当我将旋转方向更改为 true 时,立方体开始相互重叠,就好像图层没有正确更新一样。
帮助将不胜感激:)
language-agnostic - 如何表示一个魔方
我想知道我们如何在mathematica 中设计一个rubics 立方体。是否可能以及我们如何使用它。我们如何决定立方体 6 个面上较小立方体的不同分隔。
python - 在 Python 中使用字典代替 Case/Switch 语句
我想随机化一个初始化为完整的魔方(所有颜色都在正确的一边)。我有旋转立方体的移动功能。我想连续随机选择 50 个函数来正确随机化它。
我正在做这个项目来了解更多关于 Python 的知识,因为我主要使用 C++ 并且我看到 Python 没有大小写/开关,所以我正在尝试字典。当我制作字典时,代码似乎出于某种原因执行:
所以当我制作这本字典时,它似乎出于某种原因运行并执行了所有 11 个条目(我认为)。我似乎找不到更好的方法,至少比长长的 if/elif 语句更优雅。
!编辑:实现这两个建议,函数的(“倒置”)标志都没有被任何一个建议设置。例如,调用 1 和 7 都给了我 down_turn,但输出显示该标志本应位于编号 7 上时未设置。
有任何想法吗?