Die Herausforderung:
Bewegen Sie den Text bei jeder Eingabe, die über eine Tastatur eingegeben werden kann, um N Zeichen.
Hier ist die zu verwendende QWERTZ-Tastatur. Sie können die Zusatztasten (Umschalttaste, Feststelltaste, Eingabetaste, Entf und Tabulator) ignorieren. Sobald Sie eine Seite erreichen (zum Beispiel |
), kehren Sie zurück, also |
geht zu Q
wenn N = 1
.
Leerzeichen müssen nicht verschoben werden (sie werden beim Überspringen von Modifikatoren wieder in Leerzeichen umgewandelt). Wenn die Umschalttaste zum Eingeben des Zeichens (z. B. !
und @
) verwendet wurde, sollte das geänderte Zeichen auch mit der Umschalttaste eingegeben werden (dh !
geht zu @
nicht, 2
wenn N = 1
).
UK-Tastaturen unterscheiden sich davon, aber bitte verwenden Sie diese, damit wir sie vergleichen können.
Eingang:
Jeder Satz, der auf der obigen Tastatur eingegeben werden kann, gefolgt von einer positiven Ganzzahl. Es gibt kein Maximum für die Größe dieser Ganzzahl.
Ausgabe:
Derselbe Satz, verschoben von N.
Beispiele:
My name is Tim 3
?o .f/y [g I[/
Hello World 7
Spgge Oe[g;
I Wi5h I h4d b3773r C@d3ing ski{{s 3
{ T[8l { l7h ,6006u N%h6[.k g'[QQg
Dies ist Codegolf, also gewinnt der kürzeste Code.
N<= 13
Sie höchstens 13 verschieben müssen, um zum ursprünglichen Charakter zurückzukehren?Hello World 7
Beispiel nicht seinSpgge Oe[g;
? Die beideno
sollten auf dasselbe ZeichenAntworten:
C 217 Bytes
Lesbare Version mit Leerzeichen, enthält usw.:
Der Code spricht so ziemlich für sich. Nur eine Nachschlagetabelle, die jedes Zeichen dem nächsten Zeichen zuordnet und dabei die angegebene Anzahl von Malen anwendet. Ein Großteil des Codes dient eigentlich zum Parsen der Zahl aus der Eingabe.
quelle
05AB1E , 61 Bytes
-1 Byte dank Kevin Cruijssen
Probieren Sie es online!
quelle
Pyth, 126 Bytes
Probieren Sie es online aus: Demo oder Test Suite
Erläuterung:
quelle
Python 3, 311 Bytes
quelle
" " for c in " "
Python 3,
271255 BytesBaseline, fast ungolfed, wurde verwendet, um die verschobenen Wörter in der Frage zu erstellen.
Erläuterung:
quelle
JavaScript (ES6), 200
216Mit Hilfe von Template-Strings werden die Zeilenumbrüche signifikant und gezählt.
Hinweis zu
replace
: Die beiden Ausschnittestring.split('x').map(w=>...)
undstring.replace(/[^x]+/g,w=>...)
sind gleichermaßen gültige Methoden zum Ausführen einer Funktion für jeden Teil in einer Zeichenfolge mithilfe eines Trennzeichens. Die Verwendung eines Zeilenumbruchs als Trennzeichen ist praktisch/.+/g
, da die Punkte mit allen nicht-Zeilenumbrüchen übereinstimmen. Bei Verwendung von Templaten fallen für die Zeilenumbrüche keine zusätzlichen Kosten an.quelle
CJam, 107 Bytes
Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
Jelly , 67 Bytes
Probieren Sie es online!
Ein dyadischer Link, der den String als linkes Argument und die Anzahl der zu verschiebenden Stellen als rechtes Argument verwendet.
quelle
Python 2 , 194 Bytes
Probieren Sie es online!
quelle