Code Golf Challenge
J'ai un retard, mes doigts sont gros et j'envoie fréquemment un retard de ligaturer [une touche à droite sur mon kryboard.
J'ai bien peur que la situation ne devienne pire et s'aggrave avec le temps.
Sopn chaque touche que je fais wil; soyez pif shiftrd vers la droite!
Befpre alors je voudrais un programme (ou functipn) pour décaler automatiquement chaque touche sur la gauche.
Je vais m'assurer de prendre mon tome en tapant le reste de tjis chal; enge pour ne pas provoquer la confusion anu!
Objectif:
Écrivez un programme ou une fonction qui prend une entrée de l'une des touches vertes suivantes sur un clavier QWERTY standard et renvoie le caractère de la touche une à sa gauche.
Conditions:
• Vous pouvez supposer que la personne exécutant ce programme utilise un clavier QWERTY comme celui illustré ci-dessus.
• L'entrée et la sortie ne respectent pas la casse, vous pouvez utiliser n'importe quel cas (ou un mélange de combinaisons de cas) pour ce défi et vous pouvez également supposer que toutes les entrées seront dans un cas si vous le souhaitez.
• Si votre langue n’a aucun moyen de permettre à un utilisateur de saisir la touche de retour pour une raison quelconque, vous pouvez ignorer cette
• Ce défi concerne uniquement les valeurs par défaut des touches, par exemple, si la 4
touche est enfoncée, vous pouvez supposer que ce sera toujours 4
et jamais$
• Vous pouvez supposer que seules les touches vertes seront pressées.
Exemple Input
-> Output
:
S
-> a
4
-> 3
=
-> -
[
->p
Il s'agit de code-golf , donc le programme avec le nombre de bytecount le plus court gagne!
]
->[
?Réponses:
Rubis,
76 7169 octetsla source
Perl 6 ,
878369 octetsEssayez-le en ligne!
Vous vous demandez s'il existe un moyen de coder cette chaîne codée en dur en quelque chose de plus court ...
( L'idée regex de Stole GB pour -14 octets.)
la source
$"
les gammes, nous pourrions sauver quelques caractèresGelée ,
3433 octetsEssayez-le en ligne!
Comment ça marche
la source
Øq
chouette! J'aime ça, merci!Python 3,
8578 octets:la source
lambda x,k="1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm<>?":k[k.find(x)-1]
pour réduire quelques octetsPython , 76 octets
Essayez-le en ligne!
Crée un dictionnaire qui prend chaque touche vers celle à gauche en zippant la chaîne de caractères avec sa version décalée. La ligne du bas est la fonction, celle du haut est une définition.
Utiliser
translate
pour créer un mappage a donné une solution plus longue. Essayez-le en ligne!la source
Rétine ,
5351 octetsEssayez-le en ligne!
Une translittération simple déplaçant chaque position de caractère 1 vers l'arrière. Tout de
1
à/
est le jeu de caractères d'origine, tandis que la partie suivante est le nouveau jeu, en utilisanto
pour indiquer l'autre jeu.H
etL
sont des classes de caractères spéciales pour la translittération dans la rétine (respectivement mappage sur des chiffres hexadécimaux et des lettres majuscules), mais heureusement, elles se produisent sur le clavier à l'intérieur de séquences ordonnées alfabétiquement (FGH
etJKL
), afin que nous puissions éviter de les échapper en les mettant dans des plages et en gagnant comme ça 2 octets.la source
C ++, 109 octets
Essayez-le en ligne!
la source
TI-Basic, 70 octets
Je doute que ça puisse être plus court que ça ...
PS Les jetons à deux octets sont
Str1
,`
,\
,sub(
etinString(
.la source
V ,
575451 octets3 octets enregistrés grâce à @ nmjcman101 pour avoir utilisé à la
hxVp
place de ce que j'avais pour le clavier multiligneEssayez-le en ligne!
<esc>
est0x1b
et<c-r>
est0x12
Remarque: cela ne prend pas en charge la touche entrée
Contient des non imprimables, voici donc l'hexdump
Explication
La plupart du programme génère le clavier.
i
passe en mode d'insertion et chaque caractère suivant est imprimé dans le tampon. Mais il y a une petite bizarrerie ici,¬19
insère des caractères entre 1 et 9.Le programme quitte le mode d'insertion à
<esc>
. Et puis ici,/<c-r>a
il recherche l'argument dans le tampon. Cela place le curseur sur le personnage trouvé.la source
hylHVGp
vous, vous pouvez faire ce que @DJMcMayhem a fait dans la question de la motohxVp
. Je ne sais pas pourquoi tu as mis çaG
dedans, n'est-ce pas une seule ligne? Fonctionnerait égalementdhVp
.G
depuis quand le clavier était multiligne. Merci!PowerShell, 82 octets
La touche Entrée est prise en charge, mais ne peut pas être testée avec,
Read-Host
car l'activation de la touche Entrée sans valeur ne renvoie rien dans PowerShell.la source
Japt ,
5642 octetsExplication
Essayez-le en ligne!
la source
Java 8, 99 octets
Explication:
Essayez-le ici.
la source
c->"`1234567890-=qwertyuiop[]\\asdfghjkl;'\nzxcvbnm,./".replaceAll("(?s).*(.)"+c+".*","$1")
.JavaScript (ES6), 74 octets
Étant donné que
/
n'est pas dans ma chaîne,indexOf
renvoie-1
, qui, lorsqu'il est incrémenté, provoque.
la sortie. 93 octets pour traiter une chaîne:la source
GNU sed , 72 + 1 (drapeau r) = 73 octets
La clé de retour ne peut pas être testée, car sed par conception fractionne l'entrée en utilisant
\n
comme délimiteur, puis exécute le script autant de fois qu'il y a de lignes.Test: paire d'entrée-sortie continue (une fois terminé, appuyez sur Ctrl + D ou Ctrl + C)
la source
05AB1E , 50 octets
Essayez-le en ligne!
Explication:
la source
Pyth - 56 octets
Suite de tests .
la source