Avec un caractère, affiche (à l'écran) l'intégralité de la disposition du clavier qwerty (avec espaces et nouvelles lignes) qui suit le caractère. Les exemples le montrent clairement.
Entrée 1
f
Sortie 1
g h j k l
z x c v b n m
Entrée 2
q
Sortie 2
w e r t y u i o p
a s d f g h j k l
z x c v b n m
Entrée 3
m
Sortie 3
(Le programme se termine sans sortie)
Entrée 4
l
Sortie 4
z x c v b n m
Le code le plus court gagne. (en octets)
PS
Les nouvelles lignes ou les espaces supplémentaires en fin de ligne sont acceptés.
Réponses:
CJam,
4240 octetsTestez-le ici.
Explication
la source
e#
? Est-ce la syntaxe CJam pour un commentaire? Merci d'avance.Pyth, 33 octets
Notez que certains caractères ne sont pas imprimables. Essayez-le en ligne dans le compilateur Pyth .
Comment ça marche
la source
\
est équivalent àd
.md5
ne produit pas 5 espaces.d
est la variable par défaut qui parcourt l'argument iterable de l'opérateur de carte. EtjL\ <list>
est simplement un raccourci pour l'opérateur de la cartemj\ d<list>
.Perl, 56 octets
En comptant le shebang comme 3, l'entrée est prise de stdin. Si l' un des principaux nouvelle ligne est une préoccupation pour les intrants
p
etl
, alors/$_\n?/
pourrait être remplacé par un nu$_
pour sauver 4.Exemple d'utilisation
la source
\K
!s/.\B/$& /g
cela fonctionnerait aussi bien. Un meilleur exemple .GS2 ,
3837 octetsLe code source utilise le codage CP437 . Essayez-le en ligne!
Essai
Comment ça marche
la source
C #, 112 octets
105110Le compte a augmenté de 5 octets, mais plus correct! Merci @ MartinBüttner !!
Non-golfé
la source
JavaScript (ES6), 60 octets
Utilise la même technique que la plupart des autres réponses. Suggestions bienvenues!
la source
.join` `
ne ferait rien et il n'y aurait pas d'espaces dans le résultat.Ruby,
6357 octetsPrend le caractère comme argument de ligne de commande:
ruby keyboard.rb e
la source
TeaScript ,
504544 octetsTeaScript est JavaScript pour le golf.
Ungolfed et explication
la source
JavaScript ES6, 73
Si un chef de file nouvelle ligne est autorisée lorsque le paramètre est
p
oul
, puis 83la source
Python, 83 octets
Essayez-le en ligne
la source
Sed, 59 personnages
(Option de ligne de commande avec un code de 58 caractères + 1 caractère.)
Échantillon échantillon:
la source
Ruby,
8687837166L'espace supplémentaire après
m
est d'empêcher le programme de planter si l'entrée est 'm'.Merci à @manatwork pour ~ 16 octets de conseils
la source
ARGV
→$*
;each_char
→chars
;do
..end
→{
..}
;printf
→$><<
+%
conduirait à ceci:"qwertyuiop↵asdfghjkl↵zxcvbnm".split($*[0])[1].chars{|i|$><<"%s "%i}
. Plus dans Conseils pour jouer au golf en Ruby ..
dans l' expression régulière ne correspond pas\n
par défaut, mieux l' utiliser pour l'espacement:puts"qwertyuiop↵asdfghjkl↵zxcvbnm ".split($*[0])[1].gsub(/./,'\& ')
. Bien que la longueur du code reste la même.PHP, 88 octets
Requiert l'
-F
option de ligne de commande, comptabilisée comme 3. Les paramètres .ini par défaut sont utilisés (vous pouvez désactiver votre fichier .ini local avec-n
).Exemple d'utilisation
la source
Prolog (SWI),
153133 octetsEdit: coupez 20 octets avec les astuces de @Fatalize
Code
Explication
Exemples
la source
atom_codes
partie en utilisant les guillemets qui délimitent les codes de chaîne (vous pouvez ainsi remplacer directement L dans l'appel deb
avec la chaîne).b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).
au lieu de 2 règles différentesb
est plus court de 7 octets. Habituellement, il est toujours plus court de fusionner toutes les règles en une seule avec des OR;
au lieu d'écrire plusieurs règles, car vous évitez de répéter le nom et les paramètres du prédicat et vous évitez également un saut de ligne;)Befunge, 122 octets
Il a été testé ici: interprète Befunge-93 .
Comment ça marche
'q w e r t y u i o p\na s d f g h j k l\nz x c v b n m'
est poussé sur la pile.@ZVD0FHJ:LNP^\<>,2B48X.T6R
) N est poussé.Remarque
J'ai choisi le codage pour que la chaîne commence par
@
se chevaucher avec le programme. Cette chaîne est générée avec le code python suivant:la source
Oreillons - 102 octets
Script golfé:
Ungolfed et commenté:
La règle permettant de nouvelles lignes supplémentaires m'a sauvé près de 10 octets ...
la source
Java - 107 octets
Ungolfed avec une lecture de classe wrapper à partir de System.in
Si les espaces en début de ligne étaient acceptables, nous pourrions descendre à 99 octets:
la source
Python 2,
586763 octets ##Prend l'entrée sous forme de chaîne ou de caractère. Divise la chaîne à l'entrée et affiche tout après la division.
(Première utilisation du code-golf, soyez gentil: P)
EDIT: n'a pas vu les espaces supplémentaires requis entre les caractères, ajouté maintenant
EDIT 2: modifié pour être une fonction lambda anonyme et supprimer l'argument fractionné supplémentaire, économisant 4 octets
la source
print
, mais il semble que cela n'imprime pas les espaces entre chaque paire de lettres."f"
.)lambda s:...
. Je pense que la scission n'a pas besoin d'argument1
, car le personnage n'apparaît qu'une seule fois. Cela génère des espaces au début des lignes suivantes, sans savoir si cela est autorisé.Rubis,
59 5767 octetsAjout d'espaces entre les lettres
la source
nil
. Ce qui n'est pas un problème en soi, mais qui vous causera des problèmes lors de la finition de votre code pour ajouter des espaces entre les lettres.JavaScript, 88 octets
(inutile dans l'espace après le premier caractère, car il n'atteint jamais la sortie)
Alerte le clavier lorsque vous appelez
s("some letter")
. Peut aussi être fait avecdocument.write()
ouconsole.log()
, mais bon, c'est plus long: PDémo:
la source
\n
plutôt que;
dans la chaîne et en supprimant le remplacement.SQL (MS T-SQL), 172 octets
Ungolfed:
Je suis nouveau ici, je viens juste de découvrir ce site. Aucune idée si j'ai posté correctement ou si T-SQL est autorisé, mais je sais que la procédure ci-dessus fonctionne.
la source
O 2.2,
4846 charactersSample run:
O, 61 characters
Sample run:
la source
"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;s{n.'\n=ST?}d
only works on the new interpreter but is 51 bytes.git submodule update --init
, thenmake
Japt,
4942414038 bytesJapt is a shortened version of JavaScript. Interpreter
The
?
should be the unprintable Unicode char U+0086.How it works
Now beating CJam! :) Suggestions welcome!
Non-competing version, 12 bytes
As of Jan 11, I've added a cool new feature to Japt: If the program contains a leading comma, the variables
ABCDEFGHIJL
are redefined to various values.D
is set to"QWERTYUIOP\nASDFGHJKL\nZXCVBNM"
, so;Dv
is enough to replace the string here.la source
Gema, 56 characters
Sample run:
la source
8086 machine code + DOS, 61 bytes
Hexdump (with ASCII view on the right):
Assembly source code (can be assembled with tasm):
Two fun things here:
qwerty
string is0x011e
. The upper byte of it is 1, which is the DOS function number for character input. This saves 1 byte in the code.AND
with0x20
, they are all turned into a space, which is then printed. If the previous char was an end-of-line byte, it gets turned into 0, and no space is output. This is used to avoid the nonsensical sequence0d 20 0a 20
at end of line.One almost-fun thing:
I tried to search for the input char starting at address 0 (that decreased program size by 2 bytes), instead of the usual place (start of the string). This almost worked; however, it failed for input
t
, because the code itself contains the bytet
(as part of the encoding of a conditional jump). So fort
, it would output a few junk bytes:la source
𝔼𝕊𝕄𝕚𝕟, 32 chars / 79 bytes
Try it here (Firefox only).
At least I'm winning in char count... (Byte count's a different story.)
Oh yeah, just realized that I implemented index shortcuts (
⎖1
instead of[1]
) awhile back. Silly me!la source
C++,
129, 11297 bytesUngolfed:
la source
puts
instead ofstd::cout<<
#include
forputs
, but evidently I do not!strstr
was a thing.<stdio.h>
forstrstr
.Batch, 206 + 2 = 208 bytes
Because this uses delayed expansion you need to invoke it with
CMD /V /C keyboard.cmd <letter>
, so adding12 for the/V
switch.la source
cmd
would accept it as/VC
, like POSIX tools do. But as I know/V
requires its own/
, which also gets counted.Python, 109 bytes
I know its a bit large but its all I know how to do right now!
la source
kb()
at the end; defining the function is enough. Also, 1 space of indentation is enough. After making these changes, I get 108 bytes, using this site.Bash, 80 bytes
Try it yourself, either replace $1 with desired character or make a #!/bin/bash script.
Here are some samples from cygwin:
It's not the shortest, but I'm still proud of it!
la source