ich versuche mich immer noch an einer OOP-Version eines Rubiks Cubes. Dazu habe ich eine Klasse geschrieben, die jedem Stein ein Objekt mit mehreren Eigenschaften zuweist. Zur Zeit bin ich mir auch noch etwas unsicher, ob das sinnvoll oder einfach nur kompliziert ist, aber als Übung ist es bestimmt nicht ganz verkehrt...
Jetzt muss ich mir den Würfel natürlich auch anzeigen lassen können und muss dafür die Position der Steine den einzelnen Feldern der sechs Seiten zuweisen. Eigentlich muss ich noch ein paar Sachen mehr beachten, aber die Sachen spielen bei dem Problem erstmal keine Rolle.
Zum Zuweisen könnte ich für jede Position eine IF-Bedingung erstellen, wie hier in Kurzform für den Kantenstein Frontseite oben mitte. Die [45, 0] sind Raumwinkel, die die Position des Steins beschreiben:
Code: Alles auswählen
up = [[0, 0, 0], [0, 'y', 0], [0, 0, 0]]
front = [[0, 0, 0], [0, 'r', 0], [0, 0, 0]]
edgeblock = [45, 0]
if edgeblock == [45, 0]:
up[2][1] = 1
front[0][1] = 2
print(up)
print(front)
Meine erste Idee war jetzt das ganze über ein Dictionary zu lösen, da ich das sehr übersichtlich finde:
Code: Alles auswählen
up = [[0, 0, 0], [0, 'y', 0], [0, 0, 0]]
front = [[0, 0, 0], [0, 'r', 0], [0, 0, 0]]
edgeblocks = {(45, 0):[up[2][1], front[0][1]]}
edgeblocks[45, 0][0] = 1
edgeblocks[45, 0][1] = 2
print(up)
print(front)
Kennt jemand eine Möglichkeit oder Datenstruktur mit der sich das schön lösen lässt?
Schon einmal vielen Dank für eure Zeit.