Le défi:
Étant donné toute entrée pouvant être saisie sur un clavier, déplacez le texte de N caractères.
Voici le clavier QWERTY à utiliser. Vous pouvez ignorer les touches de modification (Maj, Maj, Entrée, Supprimer et Tab). Une fois que vous avez atteint un côté (par exemple |
) en boucle, passez |
à Q
if N = 1
.
Il n'est pas nécessaire de déplacer les espaces (ils retournent dans l'espace lorsque vous sautez les modificateurs). Si shift a été utilisé pour taper le caractère (par exemple !
et @
), le caractère modifié doit également être tapé en utilisant shift (c. !
-à- d. Passe à @
pas 2
si N = 1
).
Les claviers britanniques sont différents de cela, mais veuillez les utiliser pour que nous puissions comparer.
Contribution:
Toute phrase pouvant être saisie sur le clavier ci-dessus, suivie d'un entier positif. Il n'y a pas de maximum à la taille de cet entier.
Production:
La même phrase, décalée de N.
Exemples:
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
C'est le golf de code, donc le code le plus court gagne.
N<= 13
comme vous devrez déplacer au plus 13 pour revenir au caractère original?Hello World 7
exemple ne devrait-il pas l' êtreSpgge Oe[g;
? Les deuxo
devraient correspondre au même personnageRéponses:
C, 217 octets
Version lisible avec espace, inclut, etc.:
Le code parle à peu près de lui-même. Juste une table de recherche qui mappe de chaque caractère au caractère suivant, qui est appliqué le nombre de fois donné. Une grande partie du code sert en fait à analyser le nombre hors de l'entrée.
la source
05AB1E , 61 octets
-1 octet grâce à Kevin Cruijssen
Essayez-le en ligne!
la source
Pyth, 126 octets
Essayez-le en ligne: démonstration ou suite de tests
Explication:
la source
Python 3, 311 octets
la source
" " for c in " "
Python 3,
271255octetsLa ligne de base, presque non golfée, créait les mots décalés dans la question.
Explication:
la source
JavaScript (ES6), 200
216À l'aide de chaînes de modèle, les sauts de ligne sont significatifs et comptés.
Remarque sur
replace
: les deux extraitsstring.split('x').map(w=>...)
etstring.replace(/[^x]+/g,w=>...)
sont des moyens également valables d'exécuter une fonction pour chaque partie d'une chaîne, à l'aide d'un séparateur. L'utilisation d'un saut de ligne comme séparateur est pratique à mesure que le regexp de remplacement devient/.+/g
, car le point correspond à tout non-retour à la ligne. Et en utilisant des modèles de chaînes, les sauts de ligne n'ont aucun coût supplémentaire.la source
CJam, 107 octets
Essayez-le en ligne dans l' interpréteur CJam .
Comment ça fonctionne
la source
Gelée , 67 octets
Essayez-le en ligne!
Un lien dyadique prenant la chaîne comme argument de gauche et le nombre de points à déplacer comme argument de droite.
la source
Python 2 , 194 octets
Essayez-le en ligne!
la source