![]() |
Rubik's Cube - Wie speichern?
Hey,
ich möchte ein Programm zur Simulation eines ![]() Jetzt frage ich mich, wie ich die Stellung der einzelnen "Steine" speichern soll. Also nicht das Speichern in eine Datei, sondern im Programm. Als erstes dachte ich, nehme ich einfach ein dreidimensionales Array, das ist aber mehr oder weniger Quatsch. Die Farben jeder Seite einzeln zu speichern finde ich jetzt auch nicht so gut, da ich nachher eventuell prüfen muss (bei Benutzereingabe), ob jeder Stein einmal verwendet wurde, dass wäre dann relativ unpraktisch. Also, was würdet ihr mir vorschlagen? Zu berücksichtigen ist, dass die Drehungen der einzelnen Seiten und die dadurch entstehende Verschiebung der Steine nachher am besten einfach zu berechnen sein soll. Vielen Dank für die Hilfe! |
Re: Rubik's Cube - Wie speichern?
Mal im Ansatz mathematisch anzugehen, könntest du dir ja die Grundvoraussetzungen ja anschauen.
Ein Stein hat folgende Farben: rot, orange, blau, grün, weiß, gelb. Von jeder Farbe gibt es 3² = 9 Steine. Es gibt 6 Seiten. Somit wäre ein Array doch ein Lösungsweg. Ein Array mit 6 Feldern, wobei jedes Feld ein 2-dimensionales Array repäsentiert, welches den Stein(seine Position auf der Seite) und seine Farbe repräsentiert. Was anderes fällt mir eben nicht ein, obwohl es da bestimmt bessere mathematische konzepte gibt. Eventuell googlest du mal, da wird es mit Sicherheit einige Ansätze geben ... Zitat:
|
Re: Rubik's Cube - Wie speichern?
Zitat:
|
Re: Rubik's Cube - Wie speichern?
Dann nimm doch das dreidimensionale Array. Mit dem ungenutzten Feld in der Mitte kann man ja leben...
|
Re: Rubik's Cube - Wie speichern?
Zitat:
am besten korrigieren :zwinker: |
Re: Rubik's Cube - Wie speichern?
Eine zweidimensionale Tabelle reicht auch (mit mehr Leer-Zellen).
Die Verschiebungen/Drehungen werden dadurch nicht weniger, aber evtl einfacher zu durchschauen:
Code:
.
1 1 1 1 1 1 1 1 1 5 5 5 2 2 2 6 6 6 5 5 5 2 2 2 6 6 6 5 5 5 2 2 2 6 6 6 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 |
Re: Rubik's Cube - Wie speichern?
Wenn es dir eine Hilfe für deine Entscheidung ist.
Ich habe in meinem ![]() |
Re: Rubik's Cube - Wie speichern?
Zitat:
|
Re: Rubik's Cube - Wie speichern?
Code:
\ 1 2 3 4 5 6 7 8 9
1 1 1 1 2 1 1 1 3 1 1 1 4 5 5 5 2 2 2 6 6 6 5 5 5 5 2 2 2 6 6 6 6 5 5 5 2 2 2 6 6 6 7 3 3 3 8 3 3 3 9 3 3 3 10 4 4 4 11 4 4 4 12 4 4 4 Drehe ich jetzt zum Beispiel die oberste Zeile horizontal einmal sieht das dann so aus
Code:
Wer findet denmathematischen Ansatz?
\ 1 2 3 4 5 6 7 8 9
1 1 1 1 2 1 1 1 3 1 1 1 4 2 2 2 6 6 6 4 4 4 5 5 5 5 2 2 2 6 6 6 6 5 5 5 2 2 2 6 6 6 7 3 3 3 8 3 3 3 9 3 3 3 10 5 5 5 11 4 4 4 12 4 4 4 |
Re: Rubik's Cube - Wie speichern?
wenn man sich den "4." Teil nochmal an anderer Stelle vorstellt, dann wird es wohl einfacher.
man muß also beim Drehen einfach nur alles in einer Linie verschieben
Code:
wobei quendolineDD einen Fehler hat ... der 4. ist spiegelverkehrt (klapp ihn mal nach hinten rum)
\ 1 2 3 4 5 6 7 8 9 . . .
1 1 1 1 2 1 1 1 3 1 1 1 4 2 2 2 6 6 6 4 4 4 [color=gray]5 5 5[/color] 5 5 5 5 2 2 2 6 6 6 [color=gray]4 4 4[/color] 6 5 5 5 2 2 2 6 6 6 [color=gray]4 4 4[/color] 7 3 3 3 8 3 3 3 9 3 3 3 10 4 4 4 11 4 4 4 12 5 5 5 |
Re: Rubik's Cube - Wie speichern?
Ich habe nicht gesagt, dass es mit etwas räumlichem Vorstellungsvermögen nicht geht, nur ist das imo nicht die gewünschte "einfache" Lösung.
Obwohl ich gerade merke, dass das 3D-Array auch etwas komplizierter ist, als ich zuerst dachte, weil es ja nicht reicht, nur die Anordnung der Würfel zu verändern, weil jeder Würfel ja bis zu 3 farbige Seiten hat, man also jeden Würfel auch noch mal einzeln drehen muss. Allerdings find ich das immer noch besser als das Würfelnetz. Und wenn man das ganze ordnetlich kapselt, geht es auch recht einfach.... |
Re: Rubik's Cube - Wie speichern?
Beim Netz hat man aber auch noch den Vorteil, daß man ihn einfach mal Nicht-3D-mäßig darstellen kann.
na gut, wenn man hier mal versucht die zusammenhängenden Steine aufzuzählen (Flächen auf einem Stein je eine Nummer), dann wird's schwieriger.
Code:
ach ja, hier sieht man auch die doppelte Spiegelung des 4. Teils ganz gut.
\ 1 2 3 4 5 6 7 8 9 . . .
1 19 20 21 2 22 23 24 3 1 2 3 4 19 22 1 1 2 3 3 24 21 [color=gray]21 20 19[/color] 5 16 25 4 4 5 6 6 26 18 [color=gray]18 17 16[/color] 6 13 10 7 7 8 9 9 12 15 [color=gray]15 14 13[/color] 7 7 8 9 8 10 11 12 9 13 14 15 10 13 14 15 11 16 17 18 12 19 20 21 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz