【发布时间】: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/blue2.apply flattening operation3.build a wall?
标签: python rubiks-cube