Среда кубика Рубика
Этот модуль определяет класс Cube3
, представляющий кубик Рубика 3x3x3 в метрике полуоборотов (Half-Turn Metric).
Класс:
Cube3
: Класс для кубика Рубика 3x3x3 в метрике полуоборотов.
Cube3
class Cube3()
Класс для кубика Рубика 3x3x3 в метрике полуоборотов (HTM).
Этот класс предоставляет методы для манипулирования и сборки кубика Рубика 3x3x3 с использованием метрики полуоборотов. Он определяет начальное и целевое состояния кубика, доступные ходы и методы для манипулирования кубиком.
Представление:
Порядок граней:
0
2 5 3 4
1Порядок наклеек на каждой грани:
2 5 8
1 4 7
[0] 3 6Индексы состояния (каждый начинается с
9 * (n-1)
):2 5 8
1 4 7
[0] 3 6
20 23 26 47 50 53 29 32 35 38 41 44
19 22 25 46 49 52 28 31 34 37 40 43
[18] 21 24 [45] 48 51 [27] 30 33 [36] 39 42
11 14 17
10 13 16
[9] 12 15Цвета (
indices // 9
):0 0 0
0 0 0
0 0 0
2 2 2 5 5 5 3 3 3 4 4 4
2 2 2 5 5 5 3 3 3 4 4 4
2 2 2 5 5 5 3 3 3 4 4 4
1 1 1
1 1 1
1 1 1
Атрибуты:
state
ndarray - Текущее состояние кубика, представленное в виде массива цветов наклеек.GOAL
ndarray - Фиксированное целевое состояние, представленное в виде массива цветов наклеек.moves
list - Список возможных ходов кубика (грань и направление).allow_wide
bool - Флаг, указывающий, разрешены ли широкие ходы.max_depth
int - Максимальная глубина скрамбла для генератора данных.sticker_target
dict - Словарь, сопоставляющий строки ходов со списками индексов целевых наклеек.sticker_source
dict - Словарь, сопоставляющий строки ходов со списками индексов исходных наклеек.sticker_target_ix
ndarray - Двумерный массив numpy, сопоставляющий индексы ходов с индексами целевых наклеек для обычных ходов.sticker_source_ix
ndarray - Двумерный массив numpy, сопоставляющий индексы ходов с индексами исходных наклеек для обычных ходов.sticker_target_ix_wide
ndarray - Двумерный массив numpy, сопоставляющий индексы ходов с индексами целевых наклеек для широких ходов.sticker_source_ix_wide
ndarray - Двумерный массив numpy, сопоставляющий индексы ходов с индексами исходных наклеек для широких ходов.