Eine verehrte Passzeit von Pedanten soll darauf hinweisen, dass Bilder von "Rubik's Cubes" (auf T-Shirts, Postern etc.) eigentlich nicht lösbar sind.
Das erste, was überprüft werden sollte, ist, dass der Würfel aus den richtigen Teilen besteht. Um lösbar zu sein, benötigt ein Würfel sechs Farben mit jeweils neun Quadraten. Der Würfel benötigt auch jede Kanten- und Eckeinheit (dies sind die kleineren Würfel, aus denen der Würfel besteht), um einzigartig zu sein. Sie müssen nicht nur einzigartig sein, sondern wenn zwei Mittelstücke einander gegenüberliegen, kann kein Rand- oder Eckstück beide Farben enthalten.
Sobald Sie einen Würfel haben, der aus allen richtigen Teilen besteht, müssen Sie noch überprüfen, ob er lösbar ist. Es gibt hier ein paar Regeln, also werde ich mich an einen Experten wenden, um sie zu erklären. Der Spoiler unten erklärt, wie wir das machen können. Wenn Sie daran interessiert sind, das Problem selbst zu lösen, müssen Sie die Website nicht besuchen, um diese Herausforderung zu verstehen oder daran teilzunehmen.
Ihre Aufgabe ist es, ein Muster als Eingabe zu verwenden und festzustellen, ob es sich tatsächlich um einen lösbaren Rubik's Cube handelt. Um lösbar zu sein, muss es eine Möglichkeit geben, gültige Züge für einen Würfel auszuführen, sodass der Würfel auf jeder Seite nur eine Farbe hat (und die verschiedenen Seiten unterschiedliche Farben haben). Die meisten Rubik-Würfel haben eine Standardfarbe (Weiß steht für Gelb usw.). Möglicherweise wird nicht davon ausgegangen, dass der Lösungsstatus dieser bestimmten Farbe folgt.
Eine gültige Bewegung ist entweder die Drehung einer einzelnen Fläche des Würfels im oder gegen den Uhrzeigersinn. Mit der Drehung der Fläche des Würfels werden auch alle an die Fläche angrenzenden Quadrate gedreht und bleiben mit der Fläche verbunden, die sie zuvor berührt haben.
IO
Sie können den Würfel auf jede vernünftige Weise nehmen. Wenn Ihre Sprache einen eingebauten "Würfelgesichtstyp" hat, der für Sie gut ist, können Sie auch eine 2D-Matrix des Netzes, des Würfels, 1 3 mal 3 Listen für jedes Gesicht verwenden. Sei einfach vernünftig. Wenn Sie wissen möchten, ob ein bestimmtes Format akzeptabel ist, senden Sie einen Kommentar oder einen Ping-Befehl an mich im Chat.
Ihr Eingabeformat muss nur bis zu 9 mögliche Farben unterstützen.
Für die Ausgabe ist dies ein Entscheidungsproblem, daher sollten Sie einen konstanten Wert für "Ja, dies ist ein gültiger Rubiks-Würfel" und einen anderen konstanten Wert für "Nein, dies ist kein gültiger Rubiks-Würfel" ausgeben.
Dies ist Codegolf, daher werden die Antworten in Bytes bewertet, wobei weniger Bytes besser sind.
Testfälle
Hier sind Testfälle. Sie sind als Würfelnetz formatiert, wobei jedes Quadrat ein Buchstabe ist. Verschiedene Buchstaben stehen für verschiedene Farben. Weitere Testfälle können auf Anfrage hinzugefügt werden.
Lösbar
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YYY
YYY
YYY
GRR
GRR
ORW
WWRBWYBOOGGY
GGRBWGYBBOOO
OOGRWGYWWRBB
WYO
YYB
YYB
Unlösbar
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWYWBBBOOO
YWY
YYY
YYY
RRR
RRR
RRR
GGGWWWBBBOOO
GGGWWWBBBOOO
GGGWWWBBBOOO
YWY
YYY
YYY
RRR
RRR
GGG
GGYWYWRBBOBO
GGYWWWROBOOO
GGYWWWRBBOOO
BBB
YWY
YYY
RRW
RRW
GGG
GGYWWYEOBROO
GGYWWYEBBROO
GGOWWYWBBROO
BBB
YYW
YYO