Oh nein, ich bin auf dem Weg zu den großen Schätzen von Marakov verloren! Und alles, was ich habe, sind diese nutzlosen Anweisungen, die aussehen S10R10D30... Ich habe keine Ahnung, was sie bedeuten! Können Sie mir helfen?
Herausforderung
Geben Sie bei gegebenen Anweisungen an N E S W U D L R 1 2 3 4 5 6 7 8 9 0, wie weit ich von meinem Ausgangspunkt entfernt sein werde, wenn ich diesen Anweisungen folge (dh euklidische Entfernung).
N E S W beziehe mich auf Nord, Ost, Süd und West;
U D L Rbeziehen sich auf mich drehe oben, unten, links und rechts (So NRist das gleiche wie E, und so ist SL, SLList das gleiche wie N). Up bedeutet weiterzumachen; Runter heißt umdrehen.
Nach jedem Buchstaben wird eine Zahl stehen, wie weit ich in diese Richtung gehen werde. N10E20bedeutet 10 Einheiten nach Norden, dann nach Osten und 20 Einheiten nach Osten.
Eingabedetails
- Die Eingabe beginnt immer mit einem von
NESW(daher müssen leere Eingaben nicht berücksichtigt werden). - Anweisungen mit zwei Buchstaben hintereinander sind zulässig.
NEsollte interpretiert werden: "Biegen Sie nach Norden ab, dann sofort nach Osten". Es ist das gleiche wie geradeE.SLList "Biegen Sie nach Süden ab und dann sofort zweimal links ab". Es ist das gleiche wieN. - Alle Zahlen sind ganze Zahlen (beachten Sie, dass dies
.nicht im Zeichensatz enthalten ist). - Eingang wird nur aus
NESWUDLR1234567890(Wenn es braucht etwas anderes, wie ‚\ 0‘ in C, oder wenn Sie die Sprache des Eingabefunktion hat ein Newline, oder etwas, das ist in Ordnung.)
Ausgabe
- Die Norm.
- Wenn Sie eine Funktion verwenden, sollten Sie einen numerischen Datentyp oder eine Zeichenfolge ausgeben.
- Muss auf 3 Dezimalstellen genau sein.
Testfälle
N10::10N10E10::14.1421N10S10::0NSEWUDLR10::10N100RR20E300D40L12::268.7452ERR10LL20UN30D100::70.71067
Das einfallslose Python-Programm, mit dem ich diese erstellt habe.
Gewinnen
Dies ist Codegolf, also gewinnen die niedrigsten Bytes nach einer Woche!
NESWUDLR1234567890?