Python 2.7 - 197 192 Bytes
q='NESW';x,y,d=raw_input().split(',');x=int(x);y=int(y);d=q.find(d);v={0:'y+',1:'x+',2:'y-',3:'x-'}
for c in raw_input():exec['d+','d-',v[d]]['RL'.find(c)]+'=1;d=d%4'
print`x`+','+`y`+','+q[d]
Ich bin wirklich super stolz auf diesen.
Erläuterung
Lassen Sie uns zuerst dieses Durcheinander beseitigen. Ich habe an vielen Stellen Semikolons anstelle von Zeilenumbrüchen verwendet, weil ich denke, das macht mich cool. Hier ist es normalerweise (das sind immer noch 197 Bytes, es wurde überhaupt nicht ungolfed). Ja, es gibt immer noch ein Semikolon, aber dieses speichert tatsächlich ein Byte.
q='NESW'
x,y,d=raw_input().split(',')
x=int(x)
y=int(y)
d=q.find(d)
v={0:'y+',1:'x+',2:'y-',3:'x-'}
for c in raw_input():m=v[d];exec['d+','d-',m]['RL'.find(c)]+'=1;d=d%4'
print`x`+','+`y`+','+q[d]
Lass uns anfangen!
q='NESW'
Zuerst definieren wir qals die Zeichenfolge 'NESW'. Wir verwenden es zweimal später und len("q='NESW';qq") < len("'NESW''NESW'").
x,y,d=raw_input().split(',')
Hier teilen wir die erste Zeile der Eingabe an jedem Komma. Unsere x-Koordinate ist in x, y in yund der erste Buchstabe unserer Richtung in gespeichert d.
x=int(x)
y=int(y)
Dann machen wir einfach die Koordinaten. (Ich war schockiert darüber, dass ich mir keine bessere Möglichkeit vorstellen konnte, zwei Zeichenfolgen in Ints umzuwandeln. Ich habe es versucht, x,y=map(int,(x,y))aber das wird länger.)
d=q.find(d)
Dies wandelt unsere Richtung in eine ganze Zahl um. 0 ist Norden, 1 ist Osten, 2 ist Süden und 3 ist Westen.
v={0:'y+',1:'x+',2:'y-',3:'x-'}
Hier beginnt der Spaß.
Wenn wir nach Norden gehen, erhöht sich Y um 1. Also nimmt dieses Wörterbuch 0 und gibt die Zeichenfolge 'y+'für " Y erhöhen ". Es gibt ähnliche Ergebnisse für andere Richtungen: y oder x gefolgt von + oder -.
Wir werden darauf zurückkommen.
for c in raw_input():
m=v[d]
exec['d+','d-',m]['RL'.find(c)]+'=1;d=d%4'
Ich bin in die Freiheit gegangen, diese ein wenig zu entgolfen.
Für jedes Zeichen in der zweiten Eingabezeile machen wir zwei Dinge. Zuerst setzen wir die Variable mauf das, was uns unser Wörterbuch für unsere aktuelle Richtung vorgibt. Es gibt keinen Grund, warum wir das jedes Mal brauchen, aber es ist einfacher, als es nur dann zu tun, wenn wir es brauchen.
Als nächstes haben wir eine Liste mit drei Elementen erstellen: 'd+', 'd-', und m. Anmerkung des Herausgebers: Ich denke, ich kann davonkommen, wenn ich die Variable müberhaupt nicht benutze . Ich denke, ich kann es einfach v[d]direkt in die Liste aufnehmen. Das spart mir ein paar Bytes, wenn es funktioniert, aber ich habe keine Lust, es zu testen, bis ich mit dieser Erklärung fertig bin, damit Sie damit umgehen können. (Ja, es hat funktioniert.)
Wir suchen das aktuelle Zeichen der Eingabe in der Zeichenfolge 'RL'. str.findGibt -1 zurück, wenn das Zeichen nicht gefunden wird. Dadurch wird ein R in eine 0, ein L in eine 1 und alles andere in -1 konvertiert. Die einzige andere Eingabe, die wir haben können, ist natürlich M, aber es sind weniger Zeichen, damit es für alles funktioniert.
Wir verwenden diese Nummer als Index für die von uns erstellte Liste. Python-Listenindizes beginnen am Ende, wenn sie negativ sind. Daher erhalten wir das erste Element, wenn die Eingabe R ist, das zweite, wenn es L ist, und das letzte, wenn es M ist. Der Einfachheit halber gehe ich davon aus Wir sind nach Norden ausgerichtet, aber ein ähnliches Prinzip gilt für andere Richtungen.
Die möglichen Werte, mit denen wir arbeiten, sind 'd+'für R, 'd-'für L und 'y+'für M. Dann hängen wir an '=1;d=d%4'das Ende jedes einzelnen an. Das heißt, unsere möglichen Werte sind ...
d+=1;d=d%4
d-=1;d=d%4
y+=1;d=d%4
Das ist gültiger Python-Code! Das ist gültiger Python-Code, der genau das tut, was wir für jedes dieser Eingabezeichen tun wollen! (Der d=d%4Teil hält unsere Anweisungen einfach in Ordnung. Wieder muss er nicht jedes Mal ausgeführt werden, aber es sind weniger Zeichen.)
Alles, was wir tun müssen, ist, den Code auszuführen, den wir für jedes Zeichen erhalten, ihn auszudrucken (unsere Richtung zurück in eine Zeichenkette umzuwandeln) und fertig!