Seite 1 von 1

Rubiks Cube; Lego NXT

Verfasst: Montag 29. April 2013, 19:03
von fail
Ich will ein Rubiks Cube lösender NXT Roboter bauen.
Mein Problem ist: ich suche ein Algorithmus um den Cube zu lösen (ausser Bruteforce alle Möglichkeiten ausprobieren, da der NXT Brick nicht genug Rechenkraft hat) alle die ich bis jetzt gefunden habe sind für Menschen welche vorwissen und intuition haben. Kennt ihr ein Algorithmus?

Danke im voraus.
-fail

Re: Rubiks Cube; Lego NXT

Verfasst: Montag 29. April 2013, 19:39
von BlackJack
@fail: Was meinst Du mit Vorwissen und Intuition? Es gibt soweit ich weiss mindestens zwei Lösunganleitungen, die wenn nicht optimal, zumindest nah dran sind. Die sollte man problemlos in Code umsetzen können. Wobei problemlos natürlich nicht ausschliesst, dass das ein bisschen Arbeit macht. :-)

Edit: http://www.zauberwuerfel.de/zauberwuerfel-loesen/

Den dort erwähnten Spiegel-Artikel hatte ich mir in den 80ern mal in der Leihbücherei fotokopiert, als ich den Würfel zum Geburtstag geschenkt bekam.

Re: Rubiks Cube; Lego NXT

Verfasst: Montag 29. April 2013, 20:25
von webspider
Es gibt ganze Communities von Leuten welche sich immer wieder neue Arten beibringen den Würfel schnellstmöglich zu lösen. Bemüh mal Google, programmier Funktionen für die grundlegenden Bewegungen/Translationen und implementiere dann den Algorithmus deiner Wahl. Sonderlich schwierig sollte das nicht sein.

Re: Rubiks Cube; Lego NXT

Verfasst: Dienstag 30. April 2013, 20:08
von fail
http://www.youtube.com/watch?v=mzRV7Q5dZUY
Hab ich noch gefunden, ist sehr gut erklärt.

Noch eine Frage. Wie kann ich so ein Würfel am besten darstellen? Als 3D Liste, und evtl. eine Klasse für Steine.
Oder 6 2D Listen. Up, Down, Right, Left, Front, Back

andere Vorschläge?

Re: Rubiks Cube; Lego NXT

Verfasst: Dienstag 30. April 2013, 20:13
von EyDu
Hallo.

webspider hat dir die Datenstruktur doch schon verraten. Es bietet sich eine Klasse für den Würfel an, auf denen du abstrakt die Operationen durchführen kannst. Als interne Struktur ist wohl eine dreidimensionale Liste am einfachsten. Eine Klasse für einen Stein ist vollkommen überflüssig, die einzige Eigenschaft eines Steins ist die Farbe. Das kannst du aber auch leicht mit Konstanten lösen.

Re: Rubiks Cube; Lego NXT

Verfasst: Dienstag 30. April 2013, 20:43
von fail
Ja aber ein Stein hat mehrere Seiten mit anderen Farben

Re: Rubiks Cube; Lego NXT

Verfasst: Dienstag 30. April 2013, 20:56
von BlackJack
@fail: Das macht doch nichts, wenn Du sechs 2D-Strukturen hast, dann brauchst Du keinen Stein mehr, weil die Seiten von den Steinen ja durch die sechs Seitenstrukturen abgedeckt sind.

Re: Rubiks Cube; Lego NXT

Verfasst: Mittwoch 1. Mai 2013, 11:24
von fail
Ja, ich dachte du meinst eine 3D Liste
z.B.

[
First Layer
[[Steineigenschaften,Steineigenschaften,Steineigenschaften],
.............

, Second Layer
[[Steineigenschaften,Steineigenschaften,Steineigenschaften],
.......

Third Layer
[[Steineigenschaften,Steineigenschaften,Steineigenschaften],
....

Re: Rubiks Cube; Lego NXT

Verfasst: Mittwoch 1. Mai 2013, 13:15
von BlackJack
@fail: Ich würde das mit 2D-Seiten-Strukturen modellieren. Das als 3D-Struktur zu modellieren macht die Sache unnötig kompliziert. Ein Modell sollte die Idee und die benötigten Daten repräsentieren, nicht zwingend die physikalischen Eigenschaften des realen Objekts, wenn die zum Lösen gar nicht nötig sind.

Re: Rubiks Cube; Lego NXT

Verfasst: Sonntag 1. Juni 2014, 16:17
von Miche
das ist sehr interessant