【问题标题】:Python Rubiks Cube How to tell if 2 states are equalPython Rubiks Cube 如何判断两个状态是否相等
【发布时间】:2016-11-17 23:45:55
【问题描述】:

我在 Python 中创建了一个魔方,遇到了检查 2 个魔方是否相同的问题。我将立方体的侧面表示为北、东、南、西、前和后。我最初只是让我的函数检查 cube1.north = cube2.north、cube1.south = cube2.south 等,如果所有这些都是真的,那么它们是一样的。这排除了 cube1.north = cube2.south、cube1.south = cube2.north 等的立方体以及它们相等但特定面不完全匹配的许多其他场景。有没有人知道如何在没有大量 if 语句的情况下检查任何 2 个立方体是否相等?

【问题讨论】:

  • 很难说不知道您用来表示多维数据集状态的数据结构。例如,如果您使用的是每个人脸的列表列表,那么您只需比较每个人脸的列表即可。
  • 想想一些标准化(预定义排序)展平操作,它将任何立方体转换为一维列表。然后做一个基本的列表比较。
  • @sascha 你的意思是,1.find corner with red/white/blue 2.apply flattening operation 3.build a wall?

标签: python rubiks-cube


【解决方案1】:

你为什么不尝试根据立方体的面在中心的颜色来索引它们呢?然后您可以检查一个立方体上的白色中心面是否与另一个立方体上的白色中心面匹配。

换句话说,北面的中心总是有一个白色方块,南面的中心总是有一个黄色的方块,等等。只允许保持中心方向的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多