Würfeln
Also habe ich vor einiger Zeit gewürfelt und an eine Herausforderung gedacht.
Wenn der Würfel ein aus der Eingabe entnommenes Netz und eine Liste von Zügen enthält, finden Sie das Quadrat unten am Ende.
Ich werde dieses Bild für die Beispiele hier verwenden.
Eingang
Sie nehmen eine Zeichenfolge mit einer Liste von Zügen auf. Die Zeichenfolge enthält nur die ASCII-Großbuchstaben N, S, W und E. Diese entsprechen dem Rollen des Würfels um einen Schritt in diese Richtung.
Im Bild würde ein N die Unterseite zu einer 6 machen. In diesem Bild ist Norden von der Kamera entfernt, Süden ist in Richtung, Osten ist rechts und Westen ist links.
Sie können auch eine Zeichenfolge im folgenden Format eingeben: 1P 2P 3P 4P 5P 6P, wobei jedes P eine Position von N, S, W, E, T und B ist. T & B sind unten und oben.
Die Zahlen sind das Gesicht mit dieser Nummer, und der Buchstabe stellt die Position dar, an der sich das Gesicht befindet. Wenn es nicht klar ist, wird das Netz immer nach der Nummer sortiert, also 1P 2P 3P 4P 5P 6P, niemals 2B 1T 3N 4S 5W 6E.
Die Position im Bild ist 1S 2B 3E 4W 5T 6N.
Ausgabe
Ihr Programm sollte eine Zahl ausgeben, die die Unterseite darstellt.
Testfälle
(nothing), 1S 2B 3E 4W 5T 6N -> 2
N, 1S 2B 3E 4W 5T 6N -> 6
NS, 1S 2B 3E 4W 5T 6N -> 2
NWS, 1S 2B 3E 4W 5T 6N -> 2
NWSNWS, 1S 2B 3E 4W 5T 6N -> 2
NWSS, 1S 2B 3E 4W 5T 6N -> 3
NNNNNN, 1S 2B 3E 4W 5T 6N -> 5
SNWEEWS, 1N 2T 3E 4W 5B 6S, 6
SNEEWS, 1N 2T 3W 4S 5B 6E, 4
Andere Regeln
Sie können auch annehmen, dass sich der Würfel auf einer unendlichen flachen Ebene befindet, wahrscheinlich mit irgendeiner Reibung.
Standard-Schlupflöcher sind nicht erlaubt, obwohl ich keine finde.
Bei ungültiger Eingabe kann Ihr Code alles tun, außer die Apokalypse zu starten.
Da dieses Programm auf meine Würfel passen sollte, sollte es so klein wie möglich sein. Ich zähle in Bytes, mit einigen Ausnahmen für Sprachen wie Ordner .
(nothing) -> 2
, dass kein Netz bereitgestellt wird, oder sollte irgendwo ein Netz vorhanden sein?