Rubik-kocka környezet
Ez a modul definiálja a Cube3 osztályt, amely egy 3x3x3-as Rubik-kockát reprezentál a félegyfordulós metrika (Half-Turn Metric) szerint.
Osztály:
Cube3
: Egy osztály a 3x3x3-as Rubik-kockához a félegyfordulós metrika (Half-Turn Metric) szerint.
Cube3
class Cube3()
Egy osztály a 3x3x3-as Rubik-kockához a félegyfordulós metrika (HTM) szerint.
Ez az osztály metódusokat biztosít egy 3x3x3-as Rubik-kocka manipulálására és megoldására a félegyfordulós metrika használatával. Definiálja a kocka kezdeti és célállapotát, az elérhető lépéseket, valamint a kocka manipulálására szolgáló metódusokat.
Reprezentáció:
Oldalak sorrendje:
0
2 5 3 4
1Matricák sorrendje minden oldalon:
2 5 8
1 4 7
[0] 3 6Állapotindexek (mindegyik
9 * (n-1)
-gyel kezdődik):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 15Színek (
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
Attribútumok:
state
ndarray - A kocka jelenlegi állapota, matricaszin-tömbként reprezentálva.GOAL
ndarray - A rögzített célállapot, matricaszin-tömbként reprezentálva.moves
list - A lehetséges kockamozdulatok listája (oldal és irány).allow_wide
bool - Jelző, amely azt jelzi, hogy a széles (wide) mozdulatok engedélyezettek-e.max_depth
int - A maximális keverési mélység az adatgenerátor számára.sticker_target
dict - Egy szótár, amely a mozdulat-sztringeket a cél matrica indexek listájához rendeli.sticker_source
dict - Egy szótár, amely a mozdulat-sztringeket a forrás matrica indexek listájához rendeli.sticker_target_ix
ndarray - Egy 2D numpy tömb, amely a mozdulatindexeket a normál mozdulatok cél matrica indexeihez rendeli.sticker_source_ix
ndarray - Egy 2D numpy tömb, amely a mozdulatindexeket a normál mozdulatok forrás matrica indexeihez rendeli.sticker_target_ix_wide
ndarray - Egy 2D numpy tömb, amely a mozdulatindexeket a széles (wide) mozdulatok cél matrica indexeihez rendeli.sticker_source_ix_wide
ndarray - Egy 2D numpy tömb, amely a mozdulatindexeket a széles (wide) mozdulatok forrás matrica indexeihez rendeli.
show
def show(
flat=False,
palette=["white", "yellow", "orange1", "red", "blue", "green"]
)
Megjeleníti a kocka jelenlegi állapotát.
Argumentumok:
flat
bool - Hogy az állapotot kiterített formában jelenítse-e meg.palette
list - A matricák reprezentálására szolgáló színek listája.
validate
def validate(
state=None,
centered=True
)
Ellenőrzi a kocka állapotát és elrendezését.
Argumentumok:
centered
bool - Hogy a középső elemeknek középen kell-e lenniük vagy sem.
Kivételek:
ValueError
- Ha a kocka állapota vagy elrendezése érvénytelen.