Emette la tastiera qwerty


37

Dato un carattere, visualizza (sullo schermo) l'intero layout di tastiera qwerty (con spazi e nuove righe) che segue il carattere. Gli esempi lo chiariscono.

Ingresso 1

f

Uscita 1

g h j k l
z x c v b n m

Ingresso 2

q

Uscita 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

Ingresso 3

m

Uscita 3

(Il programma termina senza output)

Ingresso 4

l

Uscita 4

z x c v b n m

Il codice più corto vince. (in byte)

PS

Sono accettate nuove righe o spazi extra alla fine di una riga.


Una funzione è sufficiente o è necessario un programma completo che legge / scrive su stdin / stdout?
agtoever,

1
@agtoever Secondo meta.codegolf.stackexchange.com/questions/7562/… , è consentito. Tuttavia, la funzione deve comunque essere visualizzata sullo schermo.
ghosts_in_the_code


1
lo spazio iniziale è consentito prima di una linea?
Sahil Arora,

1
@SahilArora Nope.
ghosts_in_the_code

Risposte:


19

CJam, 42 40 byte

"wertyuiop asdfghjkl zxcvbnm"q/W=S%Sf*N*

Provalo qui.

Spiegazione

"we...nm"
     e# Push the letters in order, without q. We don't need q, because it will never
     e# be part of the output.
q/   e# Split the string around the input. If the input is "q", the entire string
     e# will go into a single chunk.
W=   e# Select the last chunk.
S%   e# Split the string around spaces, discarding empty segments (only relevant for the 
     e# first segment if the input is "p" or "l").
Sf*  e# Join each line by spaces.
N*   e# Join the lines by linefeeds.

Che cosa è e#? È la sintassi di CJam per un commento? Grazie in anticipo.
AL

@AL sì lo è.
Martin Ender,

11

Pyth, 33 byte

jjL\ cec."`zÈ´ýß44,ûtKÕÀ@"z\`

Si noti che alcuni caratteri non sono stampabili. Provalo online nel compilatore Pyth .

Come funziona

jjL\ cec."`z…"z\`

        ."`z…"     Unpack …, with lowest character '`' and highest character `z`.
       c      z    Split at occurrences of the input (z).
      e            Retrieve the last resulting chunk.
     c         \`  Split into rows, at backticks.
 jL\               Separate the characters of each row by spaces.
j                  Separate the rows by linefeeds.

Oh amico, avevo appena creato il mio primo programma Pyth di sempre (solo 38 byte!), Poi sei arrivato ... +1 BTW, penso che \ sia equivalente a d.
ETHproductions

Oops, immagino non sia lo stesso ... cosa c'è di diverso?
ETHproductions

1
@ETHproductions @Dennis Stesso motivo per cui md5non produce 5 spazi. dè la variabile predefinita che scorre attraverso l'argomento iterabile dell'operatore della mappa. Ed jL\ <list>è semplicemente una scorciatoia per l'operatore della mappa mj\ d<list>.
Jakube,

1
@Jakube Oh, ha senso. Grazie!
Dennis,

10

Perl, 56 byte

#!perl -p
'qwertyuiop
asdfghjkl
zxcvbnm'=~/$_
?/;$_=$';s/\B/ /g

Contando lo shebang come 3, l'input viene preso dallo stdin. Se una nuova riga iniziale non è un problema per gli input pe l, quindi /$_\n?/potrebbe essere sostituita con una nuda $_per salvare 4.


Esempio di utilizzo

$ echo g|perl qwerty.pl
h j k l
z x c v b n m

$ echo v|perl qwerty.pl
b n m

2
Grazie per avermi\K insegnato !
Dom Hastings,

@DomHastings in questo caso, non era davvero necessario per il conteggio dei byte, s/.\B/$& /gavrebbe funzionato ugualmente bene. Un esempio migliore .
primo

6

GS2 , 38 37 byte

♦wertyuiop asdfghjkl zxcvbnm♣B3$,■♪2◙

Il codice sorgente utilizza la codifica CP437 . Provalo online!

Prova

$ base64 -d > qwerty.gs2 <<< BHdlcnR5dWlvcCBhc2RmZ2hqa2wgenhjdmJubQVCMyQs/g0yCg==
$ wc -c qwerty.gs2
37 qwerty.gs2
$ echo -n f | gs2 qwerty.gs2
g h j k l
z x c v b n m

Come funziona

♦                                      Begin string literal.
 wertyuiop asdfghjkl zxcvbnm
                            ♣          End string literal.
                             B         Swap the string with the input.
                              3        Split the string at the input character.
                               $       Select the last chunk.
                                ,      Split the selected chunk at spaces.
                                 ■     Map over the resulting array:
                                  ♪      Push ' '.
                                   2     Join the characters, separating by ' '.
                                    ◙    Push a linefeed.

6

C #, 112 byte 105 110

Il conteggio è aumentato di 5 byte, ma più corretto! Grazie @ MartinBüttner !!

void c(char i){System.Console.Write(@"q 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".Split(i)[1].Trim());}

Un-golfed

void c(char i)
{
    System.Console.Write(@"q 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".Split(i)[1].Trim());
}

5

JavaScript (ES6), 60 byte

x=>[...`qwertyuiop
asdfghjkl
zxcvbnm`].join` `.split(x)[1]

Utilizza la stessa tecnica della maggior parte delle altre risposte. Suggerimenti benvenuti!


Puoi spiegare perché usi il "...". Provo senza su JSFiddle e ancora funzionante?
Awashi,

@Awashi È un operatore di diffusione . Separa la stringa in una matrice di caratteri. Senza di essa .join` `non farebbe nulla e non ci sarebbero spazi nel risultato.
user81655,

@ user81655 Tank you
Awashi,

4

Rubino, 63 57 byte

Prende il personaggio come argomento della riga di comando: ruby keyboard.rb e

"qwertyuiop
asdfghjkl
zxcvbnm".scan$*[0]
puts$'.chars*' '

4

TeaScript , 50 45 44 byte

TeaScript è JavaScript per il golf.

`qwertyuiop
asdfghjkl
zxcvbnm`.s×[1]s(b)j(p)

Ungolfed e spiegazione

`qwertyuiop
asdfghjkl
zxcvbnm`.s(x)[1]s(b)j(p)

      // Implicit: x = input string
`...` // Take the qwerty string,
.s(x) // and split it at the input.
[1]   // Take the second item from this,
s(b)  // split it into chars,
j(p)  // and join the result with spaces.
      // Implicit: output final expression

3

JavaScript ES6, 73

f=x=>[...(k=`qwertyuiop
asdfghjkl
zxcvbnm`).slice(k.search(x)+1)].join` `

Se una nuova riga iniziale non è consentita quando il parametro è po l, quindi 83

f=x=>(k=`q 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`).slice(k.search(x)+2)

3

Python, 83 byte

lambda c,s="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":s[s.index(c)+2:]

Provalo online


3

Sed, 59 caratteri

(Codice di 58 caratteri + opzione della riga di comando di 1 carattere.)

s/./&qwertyuiop\nasdfghjkl\nzxcvbnm/
s/(.).*\1//
s/\w/& /g

Esecuzione di esempio:

bash-4.3$ echo -n 'f' | sed -r 's/./&qwertyuiop\nasdfghjkl\nzxcvbnm/;s/(.).*\1//;s/\w/& /g'
g h j k l 
z x c v b n m 

3

Ruby, 86 87 83 71 66

puts"qwertyuiop
asdfghjkl
zxcvbnm ".split($*[0])[1].gsub /./,'\& '

Lo spazio aggiuntivo successivo mè per impedire il crash del programma se l'ingresso è 'm'.

Grazie a @manatwork per ~ 16 byte di suggerimenti


Fammi indovinare ... Troppi codici Python nell'ultima volta?
arte

1
Alcune modifiche minori alla sintassi: ARGV$*; each_charchars; do.. end{.. }; printf$><<+ %porterebbe a questo: "qwertyuiop↵asdfghjkl↵zxcvbnm".split($*[0])[1].chars{|i|$><<"%s "%i}. Altro in Suggerimenti per giocare a golf in Ruby .
arte

@manatwork Prima volta che provo a giocare a golf a Ruby, grazie per i suggerimenti / link!
SnoringFrog

1
Vedo che non hai avuto il suggerimento nel mio primo commento. In Ruby non sono necessarie virgolette triple attorno a stringhe multilinea. (In realtà non avevo idea fino ad ora che ha accettato da Ruby.)
manatwork

1
Gli spazi iniziali nell'output sono piuttosto brutti. Come .in espressioni regolari non corrisponde \nper impostazione predefinita, un uso migliore che per la distanza: puts"qwertyuiop↵asdfghjkl↵zxcvbnm ".split($*[0])[1].gsub(/./,'\& '). Sebbene la lunghezza del codice rimarrà la stessa.
arte

2

PHP, 88 byte

<?=$m[1&ereg("$argn.(.*)",'q 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',$m)];

Richiede l' -Fopzione della riga di comando, conteggiata come 3. Si presume l'impostazione predefinita .ini (è possibile disabilitare il proprio .ini locale con-n ).


Esempio di utilizzo

$ echo g|php -F qwerty.php
h j k l
z x c v b n m

$ echo v|php -F qwerty.php
b n m

2

Prolog (SWI), 153 133 byte

Modificare: taglia 20 byte con i suggerimenti di @Fatalize

Codice

b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).
p(X):-name(X,C),b(`q w e r t y u i o p \r\na s d f g h j k l \r\nz x c v b n m`,C),!.

Spiegazione

p(X):-name(X,C),                                                               % Get charcode of input
      b(`q w e r t y u i o p \r\na s d f g h j k l \r\nz x c v b n m`,C),!.    % Get keyboard chars as charcodes and call b
b([A,_|T],[H]):-A=H,                                                           % If list head is input element
                writef('%s',[T]);                                              % Interpret list as charcodes and print as string
                b(T,[H]).                                                      % Else remove first element of list and try again

Esempi

>p(f).
g h j k l 
z x c v b n m

>p(q).
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

Utilizzando SWI-Prolog, è possibile abbreviare la atom_codesparte utilizzando i backquotes che delimitano i codici stringa (in modo da poter sostituire direttamente L nella chiamata di bcon la stringa).
Fatalizza il

@Fatalize cool! Dato che sto usando SWI-Prolog per i test comunque, sembra un'ottima idea.
Emigna,

Inoltre, l'utilizzo b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).di 2 regole diverse invece di b7 byte è più breve. Di solito, è sempre più breve unire tutte le regole in una singola con OR ;invece di scrivere più regole, perché si evita di ripetere il nome e i parametri del predicato e si evita anche un avanzamento di riga;)
Fatalizzare il

È passato tanto tempo da quando ho imparato Prolog che mi ero completamente dimenticato che potresti o ti piace. Ottimo consiglio! Grazie :)
Emigna,

2

Befunge, 122 byte

"m n b v c x z"25*"l k j h g f d s a"v
v1-")"g2-"U"~"q w e r t y u i o p"*25<
>-:#v_$>:#,_@ZVD0FHJ:LNP^\<>,2B48X.T6R
^1$\<

È stato testato qui: interprete Befunge-93 .

Come funziona

  • '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' viene inserito nello stack.
  • @ZVD0FHJ:LNP^\<>,2B48X.T6RViene inserito il numero di valori da scartare (hardcoded in ) N.
  • I primi N valori vengono scartati e i valori rimanenti vengono stampati.

Nota

Ho scelto la codifica in modo che la stringa inizi con @per sovrapporsi al programma. Questa stringa viene generata con il seguente codice Python:

import string
letters = string.ascii_lowercase
base = 'q 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'
print(''.join(chr(base.index(x) + 32 + 9 + 3) for x in letters))

1
Buona prima risposta! Benvenuti in Code Golf SE. (Anche io sono nuovo.)
ghosts_in_the_code

1

Parotite - 102 byte

Sceneggiatura golf:

S A="qwertyuiopasdfghjklzxcvbnm",B=0 R P F I=1:1:$L(A) S Q=$E(A,I) W:B Q," " X:"qpl"[Q "W !" S:Q=P B=1

Ungolf e commentato:

 S A="qwertyuiopasdfghjklzxcvbnm" ; Need the qwerty order
 S B=0 ; boolean flag for printing, default to false.
 R P   ; read from stdin into P
 F I=1:1:$L(A) D   ; Count I from 1 to length of qwerty variable; do all of the following:
 . S Q=$E(A,I)     ; Extract 1 letter (at position I) from A and save in Q.
 . W:B Q," "       ; If our print flag (B) is true, print the letter in Q & a space.
 . X:"qpl"[Q "W !" ; If Q is q, p or l, write a cr/lf
 . S:Q=P B=1       ; If Q == P (stdin) change our print flag from false to true.

La regola che consente nuove righe extra mi ha salvato quasi 10 byte ...


1

Java - 107 byte

void q(char c){System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replaceAll("\\w","$0 "));}

Ungolfed con lettura di classe wrapper da System.in

public class Qwerty {

    public static void main(String[] args) {
        new Qwerty().q(new java.util.Scanner(System.in).next().charAt(0));
    }
    void q(char c) {
        System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replaceAll("\\w","$0 "));
    }
}

Se gli spazi all'inizio della riga fossero accettabili, potremmo scendere a 99 byte:

void q(char c){System.out.print("qwertyuiop\nasdfghjkl\nzxcvbnm ".split(""+c)[1].replace(""," "));}

1

Python 2, 58 67 63 byte ##

lambda x:" ".join("qwertyuiop\nasdfghjkl\nzxcvbnm".split(x)[1])

Accetta input come stringa o carattere. Divide la stringa all'ingresso e stampa tutto dopo la divisione.

(La prima volta che giochi a golf, per favore sii gentile: P)

EDIT: non ho visto gli spazi aggiuntivi richiesti tra i personaggi, aggiunto ora

EDIT 2: modificato per essere una funzione lambda anonima e rimuovere l'argomento split aggiuntivo, salvando 4 byte


Benvenuti in PPCG! Non penso che tu abbia bisogno dello spazio dopo print, ma sembra che questo non stampi gli spazi tra ogni coppia di lettere.
Martin Ender,

Non è possibile fornire un riferimento in questo momento, ma quando l'interprete richiede una formattazione aggiuntiva dell'input, anche questo è incluso nel conteggio. (Correggimi se sbaglio, ma penso che "f"
funzioni

Bel primo golf. Le funzioni sono consentite per impostazione predefinita, anche quelle anonime, quindi è più breve farlo come lambda s:.... Penso che la divisione non abbia bisogno di una discussione 1, dal momento che il personaggio appare solo una volta. Questo genera spazi all'inizio di linee successive, non sono sicuro che sia consentito.
xnor

1

Rubino, 59 57 67 byte

Aggiunti spazi tra le lettere

puts"qwertyuiop\nasdfghjkl\nzxcvbnm".split(gets.chop)[-1].chars*' '

Ciò non riesce sull'ingresso "m". Ciò può essere facilmente risolto modificando l'indice dell'array da -1 a 1, ma in seguito si otterrà l'input "m" nil. Il che non è un problema in sé, ma causerà problemi al termine del codice per aggiungere spazi tra le lettere.
arte

1

JavaScript, 88 byte

function s(d){alert("qw e r t y u i o p\na s d f g h j k l\nz x c v b n m".split(d)[1])}

(non è necessario nello spazio dopo il primo carattere, poiché non arriva mai all'output)

Avvisa la tastiera quando chiami s("some letter"). Può essere realizzato anche con document.write()o console.log(), ma ehi, è più lungo: P

demo:

function s(d){alert("qw e r t y u i o p\na s d f g h j k l\nz x c v b n m".split(d)[1])}

s(prompt("Enter the key"));


1
Probabilmente potresti salvare qualche byte semplicemente usando al \nposto della ;stringa e sbarazzandoti della sostituzione.
ETHproductions

@ Certo, grazie! Ho usato il rimpiazzo, perché all'inizio, senza contare le interruzioni di riga, il rimpiazzo si accorcerebbe. Poi ho notato che le interruzioni di riga dovrebbero essere lì, quindi ho usato di nuovo Sostituisci. Non pensavo nemmeno che potesse allungare il codice: D
nicael,

1

SQL (MS T-SQL), 172 byte

CREATE PROC c @I CHAR(1) AS DECLARE @S CHAR(49) SET @S = 'w e r t y u i o p' + CHAR(13) + 'a s d f g h j k l' + CHAR(13) + 'z x c v b n m' PRINT RIGHT(@S,LEN(@S)-CHARINDEX(@I,@S))

Ungolfed:

CREATE PROC c                           -- Create a procedure named "c"
    @I CHAR(1)                          -- Which is invoked with a single character input (@I)
AS

DECLARE @S CHAR(49) = 'w e r t y u i o p' + CHAR(13) + 'a s d f g h j k l' + CHAR(13) + 'z x c v b n m' -- Initialise the entire output omitting "q " as @S
PRINT RIGHT(@S,LEN(@S)-CHARINDEX(@I,@S))    -- Use the charindex funtion to effectively substring @S

Sono nuovo qui, ho appena scoperto questo sito. Non ho idea se ho pubblicato correttamente o se T-SQL è consentito, ma so che la procedura sopra funziona.


1

O 2.2, 48 46 caratteri

"qwertyuiop
asdfghjkl
zxcvbnm
"i/r;s{n.U=ST?}d

Esecuzione di esempio:

bash-4.3$ ./o keyboard.o <<< 'f'
g h j k l 
z x c v b n m 

O, 61 caratteri

"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;""/rl{.o"\n"={}{' o}?}d

Esecuzione di esempio:

bash-4.3$ java xyz.jadonfowler.o.O keyboard.o <<< 'f'
g h j k l 
z x c v b n m 

Questo non funziona sull'IDE per qualche motivo, esaminandolo ora ...
fase

"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;s{n.'\n=ST?}dFunziona solo sul nuovo interprete ma è di 51 byte.
fase

I permalink sono ... un work in progress: P
fase

Sì, nella directory libregexp
fase

git clona il repository, git submodule update --initquindimake
fase

1

Japt , 49 42 41 40 38 byte

Japt è una versione abbreviata di Ja vaScri pt . Interprete

`qØÆyuiop\n?dfghjkl\nzxcvbnm`qU g1 ¬qS

Il ?dovrebbe essere la non stampabile Unicode char U + 0086.

Come funziona

          // Implicit: U = input char
`...`     // Take the compressed string and decompress it.
qU g1     // Split the string at the input and take the second item.
¬qS       // Split into chars, then join with spaces.
          // Implicit: output final expression

Ora batte CJam! :) Suggerimenti benvenuti!

Versione non competitiva, 12 byte

;Dv qU g1 ¬¸

A partire dall'11 gennaio, ho aggiunto una nuova fantastica funzionalità a Japt: se il programma contiene una virgola iniziale, le variabili ABCDEFGHIJLvengono ridefinite in vari valori. Dè impostato su "QWERTYUIOP\nASDFGHJKL\nZXCVBNM", quindi ;Dvè sufficiente sostituire la stringa qui.


0

Gema, 56 personaggi

?=@subst{\\A\*?=\;\?=\? ;qwertyuiop\nasdfghjkl\nzxcvbnm}

Esecuzione di esempio:

bash-4.3$ echo -n 'f' | gema '?=@subst{\\A\*?=\;\?=\? ;qwertyuiop\nasdfghjkl\nzxcvbnm}'
g h j k l 
z x c v b n m 

0

8086 codice macchina + DOS, 61 byte

Hexdump (con vista ASCII a destra):

B8 1E 01 8B F8 CD 21 B1 1F F2 AE 8B F7 AC 8A D0 ......!.........
B4 02 CD 21 80 E2 20 74 02 CD 21 E2 F0 C3 71 77 ...!.. t..!...qw
65 72 74 79 75 69 6F 70 0D 0A 61 73 64 66 67 68 ertyuiop..asdfgh
6A 6B 6C 0D 0A 7A 78 63 76 62 6E 6D 0D          jkl..zxcvbnm.

Codice sorgente assembly (può essere assemblato con tasm):

    .MODEL TINY

    .CODE
    org 100h

    MAIN PROC

    mov ax, offset qwerty ; sets ah=1 (coincidence)
    mov di, ax      ; di points to the string
    int 21h         ; reads a char from keyboard into al

    mov cl, 31      ; cx is the length of the string
    repne scasb     ; look for the char
    mov si, di      ; si now points beyond the found char

myloop:
    lodsb           ; load a char
    mov dl, al
    mov ah, 2
    int 21h         ; output the char

    and dl, 20h     ; if it's a letter, set it to a space
    jz print_done   ; if it's not a letter, don't print a space
    int 21h         ; if it's a letter, print a space
print_done:
    loop myloop     ; repeat until end of string

    ret

qwerty db 'qwertyuiop',13,10,'asdfghjkl',13,10,'zxcvbnm',13

    MAIN ENDP
    END MAIN

Due cose divertenti qui:

  1. L'offset della qwertystringa è 0x011e. Il byte superiore di esso è 1, che è il numero della funzione DOS per l'immissione dei caratteri. Ciò consente di risparmiare 1 byte nel codice.
  2. Tutte le lettere minuscole hanno il bit 5 impostato. Quando si fa un ANDcon 0x20, vengono tutti trasformati in uno spazio, che viene quindi stampato. Se il carattere precedente era un byte di fine riga, viene trasformato in 0 e non viene emesso spazio. Questo è usato per evitare la sequenza senza senso 0d 20 0a 20alla fine della linea.

Una cosa quasi divertente:

Ho provato a cercare il carattere di input iniziando dall'indirizzo 0 (che ha ridotto le dimensioni del programma di 2 byte), invece del solito posto (inizio della stringa). Questo ha quasi funzionato; tuttavia, non è riuscito per l'input t, poiché il codice stesso contiene il byte t(come parte della codifica di un salto condizionale). Quindi t, produrrebbe alcuni byte spazzatura:

output


0

𝔼𝕊𝕄𝕚𝕟, 32 caratteri / 79 byte

⟦ɘƄ瀛ذ鸊ް΀ꀆဓƘ᳀ᘁ堍怍訁码聮Ęݠⶰ䀀#]ø⬭Čï⎖1

Try it here (Firefox only).

Almeno sto vincendo nel conteggio dei caratteri ... (Il conteggio dei byte è una storia diversa.)

Oh sì, mi sono appena reso conto che ho implementato scorciatoie sull'indice ( ⎖1anziché [1]) qualche tempo fa. Sciocco me!


Che lingua è questa? o è letteralmente questo: i.imgur.com/WC7XvYs.png (e c'è documentazione) è strano, aha!
ʰᵈˑ

Questo è ESMin. Le lettere sono in doppio blocco, quindi potresti avere difficoltà a vederle. Vedi github.com/molarmanful/ESMin (i documenti non sono aggiornati).
Mama Fun Roll,

0

C ++, 129, 112 97 byte

#include<string>
#include<cstdio>
void o(char c){puts(strstr("qwertyuiopasdfghjklzxcvbnm",&c));}

Ungolfed:

#include<string>
#include<cstdio>
void o(char c)
{
    puts(strstr("qwertyuiopasdfghjklzxcvbnm",&c));
}

Puoi eliminare 17 byte usando putsinvece distd::cout<<
DJMcMayhem

@DJMcMayhem Grazie! Un punto eccellente: per qualche motivo ho pensato che avrei ancora bisogno di un #includeper puts, ma evidentemente no!
Tas,

Inoltre, questo è un altro 12 in meno.
DJMcMayhem

Grazie! Non sapevo nemmeno che strstrfosse una cosa.
Tas,

Penso che sia un po 'troppo gonfio. È necessario <stdio.h>per strstr.
DJMcMayhem

0

Lotto, 206 + 2 = 208 byte

Poiché utilizza un'espansione ritardata, è necessario invocarla CMD /V /C keyboard.cmd <letter>, quindi aggiungere 1 2 per lo /Vswitch.

@echo off
set a=q w e r t y u i o p
set b=a s d f g h j k l
set c=z x c v b n m
if not "!a:*%1 =!"=="!a!" echo !a:*%1 =!
if not "!a:*%1=!!b:*%1 =!"=="!a!!b!" echo !b:*%1 =!
if not %1==m echo !c:*%1 =!

Temo che l'opzione della riga di comando conterrebbe 1 se la cmdaccetterebbe come /VC, come fanno gli strumenti POSIX. Ma come so /Vrichiede il suo /, che viene anche conteggiato.
arte

0

Python, 109 byte

So che è un po 'grande, ma è tutto quello che so fare adesso!

def kb(c): 
 s = "q w e r t y u i o p \n a s d f g h j k l \n z x c v b n m"
 a = s.split(c)
 print(a[1])

Non credo che kb()alla fine ti serva la chiamata ; la definizione della funzione è sufficiente. Inoltre, è sufficiente 1 spazio di rientro. Dopo aver apportato queste modifiche, ottengo 108 byte, utilizzando questo sito .
ETHproductions

@ETHproductions Eeeek !!! Non lo sapevo una volta tanto nello spazio. (Nuovo su Python). Grazie ancora per il vostro aiuto!
Ashwin Gupta,

0

Bash, 80 byte

x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*$1}|sed 's/./& /g'

Provalo tu stesso, sostituisci $ 1 con il carattere desiderato o crea uno script #! / Bin / bash.

Ecco alcuni esempi di Cygwin:

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*q}|sed 's/./& /g'
w e r t z u i o p
a s d f g h j k l
y x c v b n m

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*m}|sed 's/./& /g'

$x="qwertzuiop\nasdfghjkl\nyxcvbnm"&&echo -e ${x#*h}|sed 's/./& /g'
j k l
y x c v b n m

Non è il più breve, ma ne sono ancora orgoglioso!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.