Contexte
Vous avez été chargé de prendre des notes pour une réunion. Vous commencez à taper sur votre document Google, mais vous n'avez pas assez de temps pendant la réunion pour regarder votre clavier pendant que vous tapez.
Heureusement pour vous, vous pouvez taper sans regarder votre clavier. Après la réunion, vous vous rendez compte que tout ce que vous avez tapé était une touche à gauche.
Le défi
Pour ce défi, vous utiliserez les lettres, les chiffres et la barre d'espace de la disposition du clavier QWERTY.
Étant donné une entrée de texte (à partir de n'importe quelle méthode de saisie standard), sortez le texte résultant, où chaque caractère est déplacé d'un à gauche sur le clavier.
Pour la majorité des lettres, il suffit de regarder la lettre et de la traduire dans la lettre de gauche (
c
devientx
,t
devientr
, etc.).Pour la lettre
q
, traduisez en un caractère de tabulation littéral (\t
).Pour la lettre
a
, activez le verrouillage des majuscules, de sorte que la mise en majuscule du reste de la chaîne est inversée.Pour la lettre
z
, mettez en majuscule la lettre suivante dans la chaîne.Aucune traduction n'est requise pour la barre d'espace.
Conservez les majuscules pendant la traduction et faites attention au verrouillage des majuscules (si le verrouillage des majuscules est activé, assurez-vous que le cas est le contraire).
Tous les caractères de la chaîne d'entrée seront des lettres, des chiffres ou un espace. Aucune ponctuation ou autre caractère ne peut être inclus.
Cas de test
\t
est un caractère de tabulation littéral
Hello world -> Gwkki qieks
Code Golf -> Xisw Fikd
Queried apples -> \tyweuws OOKWA
Notation
Le score le plus bas en octets gagne. S'amuser!
Azerty
->wERT
z
, mettez en majuscule la lettre suivante dans la chaîne -> cela signifie-t-il que nous devons seulement nous soucier de la capitalisation des lettres et ne pas avoir à basculer entre les chiffres et les symboles? Quelle est la sortie attendue pour0123456789
,a0123456789
etz0z1z2z3z4z5z6z7z8z9
? (En outre, sur de nombreux claviers non QWERTY, 'Caps Lock' agit vraiment comme un 'Shift Lock'. Je pense que QWERTY ne suit pas ce modèle, mais il devrait être spécifié pour ceux d'entre nous qui ne le connaissent pas. )Réponses:
JavaScript (V8) , 271 octets
Essayez-le en ligne! Mon premier golf en code JavaScript. Cela pourrait certainement être plus court, mais je pense que c'est un bon début.
Il trouve essentiellement chaque caractère dans la
k
chaîne et le remplace par le précédent, puis échange la casse de tout entre leA
oua
et supprime toutes les occurrences deZ
ouz
(car la touche Maj ne fait rien par elle-même).Cela devrait être une disposition de clavier QWERTY normale, mais faites-le moi savoir si non.
la source
zebras=>wveA
le cas de test semble être incorrect. Le premierz
devrait entraîner l'e
impression de majusculesw
. From OP: "Pour la lettrez
, mettez en majuscule la lettre suivante dans la chaîne."Python 3 , 211 octets
Essayez-le en ligne!
Utilise une chaîne de recherche dans laquelle le caractère normal et sa version modifiée par décalage sont regroupés. Pour chaque caractère en entrée, il récupérera le caractère deux places à gauche. Modifie la mise en majuscule en ajoutant
1
(ou-1
si le caractère actuel est en majuscule) à la valeur de recherche lorsque le verrouillage Maj XOR est activé. Les nombres ne sont pas influencés par le modificateur de verrouillage des majuscules.la source
PHP , 227 octets
Essayez-le en ligne!
J'ai créé une chaîne de mappage (
~1!2@3#4$5%6^7&8*9(0 qwertyuiopasdfghjklzxcvbnm
) qui pour chaque chiffre a son mode SHIFT à gauche et pour chaque lettre a la lettre / clé à gauche.Je boucle sur les caractères saisis et pour chaque caractère:
a
ouA
, l'indicateur de verrouillage des majuscules est inversé (pas logique).z
ouZ
, l'indicateur de décalage est défini sur1
.aAzZ
:$t
.1
,$t
est imprimé, sinon, si le chiffre est1
,`
est imprimé, si le chiffre est0
,9
est imprimé et sinon,digit-1
est imprimé.$t
en minuscules ou en majuscules, sont imprimés. Le seul cas spécial ici est le caractère de tabulation, qui est imprimé tel quel.0
à la fin.la source
Rouge , 218 octets
Essayez-le en ligne!
Actuellement,
AaZz
n'affecte pas les chiffres.la source
'A pear' -> ' OWe'
C (gcc) , 276 octets
Merci à plafondcat pour -33 octets.
Essayez-le en ligne!
la source
k^=!(l^7)
au lieu dek=l^7?k:!k