Mit RubiksCubeSolver hat das ungelöste Dasein eurer Zauberwürfel ein Ende. RubiksCubeSolver liefert Ihnen die Lösung für ungelöste Rubik's Cubes in jeder der 43,2 Trillionen Anfangsstellungen.
Name des Programms:
RubiksCubeSolver
Beschreibung:
RubiksCubeSolver besteht aus einem Renderer, der aus diesem Thread entstanden ist und dem eigentlichen Solver, der jeden ungelösten Rubik's Cube lösen kann und dem Benutzer die Lösungsschritte ausgibt. Neben der 3D Darstellung des Zauberwürfels kann der Renderer auch animierte Drehbewegungen durchführen.
Verwendung
Der Umgang mit dem 3D-Model ist anfangs nicht ganz einfach. Deshalb ist es hilfreich, wenn man sich hier mal eine kurze Beschreibung zur korrekten Verwendung der 3D-Darstellung durchliest:
- Der Würfel kann mit der Rechten oder Mittleren Maustaste gedrückt rotiert werden.
- Die Knöpfe und das Hauptmenü sollten relativ selbsterklärend sein, der Knopf neben dem Schichtenselektor gibt die Drehrichtung an.
- Zum Bewegen einer Schicht mit der Maus wählt man zunächst eine Fläche aus (Linksklick), und dann eine zweite (Linksklick). Dabei müssen die beiden Markierung auf einer Würfelseite sein.
- Die durch die beiden Markierungen eindeutig bestimmte Schicht wird nun automatisch gedreht, und zwar so als würde die zweite Markierung die Schicht "drücken".
- Bei Fehlern hilft euch auch die untere Statusleiste.
- ESC oder ENTF heben die aktuelle Auswahl auf.
- Die obere Statusleiste zeigt die momentan gehoverte Fläche an.
- Die Farbe eines Feldes kann man mit der gedrückten Shift-Taste und einem Klick auf ein Feld verändert werden. Mit der linken Maustaste kann man die Farbe um eins weiterschalten (Weiß-Gelb-Orange-usw.) und mit der rechten Maustaste öffnet sich ein Auswahlmenü mit den vorhandenen Farben.
- Der aktuell ausgewählte Zug in der ListBox kann mit der Leertaste ausgeführt werden. Nach einem durchgeführten Lösungsschritt wird der nächste Listbox-Eintrag selektiert.
Statistik:
RubiksCubeSolver benötigt zwischen 100 und 170 Lösungsschritte, um den Zauberwürfel zu lösen. Ich verwende für das Lösen die Anfänger-Methode, die wie der Name schon sagt, die einfachste und auch langsamste Methode ist, um das Kultspielzeug zu lösen. Die Anzahl der Züge habe ich allerdings schon mit einer intelligenten Lösungsreihenfolge der einzelnen Steine in den ersten beiden Ebenen verringert. Ich werde versuchen die Fridrich-Methode ebenfalls umsetzen, die vor allem in der letzten Ebene mit den ganzen fertigen Algorithmen eine Menge Züge spart.
Screenshots:
Video:
RubiksCubeSolver befindet sich aktuell noch einer Beta-Version, da die Eingabe von ungelösten Cubes noch nicht implementiert ist.
Version RubiksCubeSolver v0.9 (27.01.2014)
Erste Beta-Version
3D-Darstellung des Rubik's Cubes
Maussteuerung für die 3D-Ansicht
Animierte Rotationen
Lösung für verdrehte Würfel berechnen und ausgeben
RubiksCubeSolver v0.9.1 (01.02.2014)
Anzahl der Lösungsschritte verringert
Manuelle Änderung der Farbe der Felder
Unlösbare Farbeingaben erkennen und melden
RubiksCubeSolver v0.9.2 (03.02.2014)
Lösungsschritte einzeln durchführen, um mit dem eigenen Würfel mitmachen zu können
RubiksCubeSolver v0.9.3 (04.02.2014)
Bug beim Ausgeben der Lösungsschritte von gelösten Würfeln behoben
Flüssiges "Ziehen" des 3D-Modells mit der rechten Maustaste
(hoffentlich) flüssiges Rotieren der einzelnen Ebenen
Download: vb-paradise.de/index.php/Attac…284b0feec24b473c78973104b
RubiksCubeSolver v0.9.4 (12.02.2014)
Die Rotation der Ebenen wieder zurückgesetzt auf die von Version 0.9.2 (man muss nun nicht mehr die Maus bewegen)
Die Anzahl der Lösungsschritte weiter vermindert durch eine intelligente Reihenfolge in der die einzelnen Steine innerhalb der Lösungsschritte gelöst werden
von ca. 200 auf 100-160 Lösungschritte
RubiksCubeSolver v0.9.5 (25.03.2014)
flüssiges Rotieren der einzelnen Ebenen
To Do
Änderung der Farben der einzelnen Felder, um den eigenen Würfel eingeben zu können mit der Maus
TrySolve-Methode, da bei Änderung der Farben, unlösbare Stellungen vorkommen können
Lösungsschritte einzeln durchführen, um mit dem eigenen Würfel mitmachen zu können
Flüssiges "Ziehen" des 3D-Modells
Flüssiges Rotieren der Ebenen
Verminderung der Anzahl der Lösungszüge bei den ersten beiden Ebenen
Verminderung der Anzahl der Lösungszüge durch die OLL- und PLL-Algorithmen der Fridrich Methode
weitere Lösungsmethoden (Roux, Petrus)
Verwendete Programmiersprache und IDE:
Visual C# (IDE: Visual Studio 2013 Ultimate)
Systemanforderungen:
.NET Framework 4.0
Download und Code der aktuellen Version:
im Anhang
Code auf GitHub
Lizenz/Weitergabe:
RubiksCubeSolver ist Freeware und Opensource. Eine Erwähnung wäre allerdings fair, falls Ihr den Code für euer Programm verwenden möchtet
Danke an @StarGate01 der mir mit VirtualRubik die Grundlage für mein Programm gecodet hat.
Danke an @Artentus, der mir beim neuen Rendermodel sehr geholfen hat.
Dieser Beitrag wurde bereits 15 mal editiert, zuletzt von „Switcherlapp97“ ()