![]() |
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 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