# Rubik's Cube — HasiKe

> Rubik's Cube Solver — Layer-by-Layer Algorithmus, 3D Simulator, Move-Notation.

Quelle: https://hasike.de/RubixCube/

## Was ist *das*?

### 3D-Cube *Simulator*.

Ein interaktives Programm, das einen Zauberwürfel simuliert. Drehe die Seiten, vermische ihn
 und lass ihn automatisch lösen.

Die Idee: nicht einfach „ein Spielzeug", sondern **Visualisierung des Algorithmus**.
 Du siehst, was hinter den Kulissen passiert — Zug für Zug, Schicht für Schicht.

Geschrieben in **Java / Processing**, mit **OpenGL**-Beschleunigung.
 Smooth Animations und sauberer, leicht erweiterbarer Code.

![Rubik's Cube Solver Screenshot](../assets/RubixCube.png)

## Der *Algorithmus*.

### Weißes Kreuz

Zuerst bilden wir ein Kreuz auf der weißen Seite. Die Kantensteine werden so positioniert, dass sie auch zu den angrenzenden Centerfarben passen.

### Erste Ebene

Die weißen Ecken werden eingefügt. Damit ist die erste Schicht komplett gelöst — eine solide Basis für den Rest.

### Mittlere Ebene

Die vier Kantensteine der mittleren Schicht werden mit speziellen Algorithmen eingesetzt. Zwei Drittel des Würfels sind jetzt gelöst.

### Gelbes Kreuz (OLL)

Auf der gelben Seite wird ein Kreuz gebildet. Die Orientierung der Kanten stimmt jetzt, die Position noch nicht unbedingt.

### Kreuz ausrichten

Die gelben Kanten werden so permutiert, dass sie zu den Centerfarben der Seiten passen.

### Ecken positionieren (PLL)

Die gelben Ecken werden an ihre richtige Position gebracht. Die Orientierung kann noch falsch sein.

### Ecken orientieren

Im letzten Schritt werden die Ecken gedreht, bis alle Farben stimmen. Der Würfel ist gelöst.

## Move *Notation*.

### Right

Rechte Seite im Uhrzeigersinn drehen

### Left

Linke Seite im Uhrzeigersinn drehen

### Up

Obere Seite im Uhrzeigersinn drehen

### Down

Untere Seite im Uhrzeigersinn drehen

### Front

Vordere Seite im Uhrzeigersinn drehen

### Back

Hintere Seite im Uhrzeigersinn drehen

### Prime

Gegen den Uhrzeigersinn (z. B. R')

### Double

Zweimal drehen (z. B. R2 = 180°)

### Rotation

Ganzen Würfel um Achse rotieren

## Tech *Stack*.

### Processing

Java-basierte Kreativ-Programmiersprache für visuelle Anwendungen.

### Java

Objektorientierte Programmierung für die Cube-Logik.

### OpenGL

Hardware-beschleunigtes 3D-Rendering.

## FAQ.

### Was ist die Layer-by-Layer-Methode?

Ein 7-Phasen-Algorithmus zum Lösen des Rubik's Cube: Weißes Kreuz, erste Ebene, mittlere Ebene, gelbes Kreuz (OLL), Kreuz ausrichten, Ecken positionieren (PLL), Ecken orientieren — Schicht für Schicht, statt den ganzen Würfel auf einmal zu lösen.

### Was bedeutet die Move-Notation (R, U, F, ...)?

Jeder Buchstabe steht für eine Seite: R (Right), L (Left), U (Up), D (Down), F (Front), B (Back). Ein Apostroph (') dreht gegen den Uhrzeigersinn, eine 2 bedeutet 180°-Drehung.

### Womit ist der Solver programmiert?

In Java mit der Processing-Bibliothek für die Visualisierung und OpenGL-Beschleunigung für flüssiges 3D-Rendering.

## Projekt *ansehen*.

Schau dir den Code auf GitHub an oder folge mir für weitere Projekte.
