কিওয়ার্টি কীবোর্ড আউটপুট


37

একটি অক্ষর, আউটপুট (স্ক্রিনে) দেওয়া পুরো কিওয়ার্টি কীবোর্ড লেআউট (ফাঁকা স্থান এবং নতুন লাইনের সাথে) যা অক্ষরটিকে অনুসরণ করে। উদাহরণগুলি এটি পরিষ্কার করে দেয়।

ইনপুট ঘ

f

আউটপুট 1

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

ইনপুট 2

q

আউটপুট 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

ইনপুট 3

m

আউটপুট 3

(প্রোগ্রাম আউটপুট ছাড়াই শেষ হয়)

ইনপুট 4

l

আউটপুট 4

z x c v b n m

সংক্ষিপ্ততম কোড জিতেছে। (বাইটে)

দ্রষ্টব্য

অতিরিক্ত লাইনগুলি বা একটি লাইনের শেষে অতিরিক্ত স্থান গ্রহণ করা হয়।


একটি ফাংশন কি পর্যাপ্ত বা আপনার একটি সম্পূর্ণ প্রোগ্রাম প্রয়োজন যা স্টাডিন / স্টাডাউট পড়তে / লেখেন?
agtoever

1
অনুযায়ী @agtoever meta.codegolf.stackexchange.com/questions/7562/... , এটা অনুমোদিত হয়। তবে, ফাংশনটি এখনও পর্দায় আউটপুট করতে হবে।
ভূত_স_ই_কোড

পরিবর্তে এই লিঙ্কটি চেষ্টা করুন। meta.codegolf.stackexchange.com/questions/2419/…
প্রেতাত্মা_ইন_কোড

1
একটি লাইন অনুমতি দেওয়ার আগে নেতৃত্বের স্থান হয়?
সাহিল অরোরা

1
পছন্দ করেছেন
ভূত_স_ই_কোড

উত্তর:


19

সিজেম, 42 40 বাইট

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

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

"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.

কী e#? এটি কি কোনও মন্তব্যের জন্য সিজেএম সিনট্যাক্স? আগাম ধন্যবাদ.
এএল

@ হ্যাঁ হ্যাঁ
মার্টিন ইন্ডার

11

পাইথ, 33 বাইট

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

মনে রাখবেন যে কয়েকটি অক্ষর ছাপিয়ে যায় না। পাইথ সংকলকটিতে এটি অনলাইনে চেষ্টা করুন ।

কিভাবে এটা কাজ করে

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.

ওহ মানুষ, আমি সবেমাত্র আমার প্রথম পাইথ প্রোগ্রাম তৈরি করেছি (কেবল 38 বাইট!), তারপরে আপনি এসেছিলেন ... +1 বিটিডাব্লু, আমার মনে \ হয় এর সমতুল্য d
ETH প্রোডাকশনগুলি

ওফ, আমার ধারণা এটি এক রকম নয় ... কী আলাদা?
ETH প্রোডাকশনগুলি

1
@ এটিএইচ প্রডাকশন @ ডেনিস একই কারণে কেন md55 টি স্পেস তৈরি করে না। dমানক অপারেটরের পুনরাবৃত্ত যুক্তির মাধ্যমে পুনরুক্ত হওয়া ডিফল্ট পরিবর্তনশীল। এবং jL\ <list>মানচিত্র অপারেটরের জন্য কেবল শর্টকাট mj\ d<list>
জাকুবে

1
@ জাকুব ওহ, এটি বোধগম্য হয়। ধন্যবাদ!
ডেনিস

10

পার্ল, 56 বাইট

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

শেবাংকে 3 হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়। একটি নেতৃস্থানীয় সম্পর্কে newline ইনপুট জন্য একটি উদ্বেগের বিষয় না হয়, তাহলে pএবং lতারপর, /$_\n?/একটি খালি দিয়ে প্রতিস্থাপিত করা যেতে পারে $_4 সংরক্ষণ করুন।


নমুনা ব্যবহার

$ 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
আমাকে সম্পর্কে\K শেখানোর জন্য আপনাকে ধন্যবাদ !
ডম হেস্টিংস

@ ডোমহাস্টিংস এই ক্ষেত্রে, বাইট গণনা করার জন্য এটি সত্যই প্রয়োজনীয় ছিল না, s/.\B/$& /gসমানভাবে কাজ করবে। এর চেয়ে ভালো উদাহরণ
primo

6

জিএস 2 , 38 37 বাইট

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

উত্স কোডটি সিপি 437 এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!

টেস্ট রান

$ 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

কিভাবে এটা কাজ করে

♦                                      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

সি #, 112 বাইট 105 110

গণনাটি 5 বাইট বৃদ্ধি পেয়েছে, তবে আরও সঠিক! ধন্যবাদ @ মার্টিনব্যাটনার !!

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());}

আন 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

জাভাস্ক্রিপ্ট (ES6), 60 বাইট

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

অন্যান্য উত্তরগুলির মতো একই কৌশল ব্যবহার করে। পরামর্শ স্বাগত!


আপনি কেন "..." ব্যবহার করেন তা ব্যাখ্যা করতে পারেন? আমি জেএসফিডেল ছাড়াই চেষ্টা করছি এবং এখনও কাজ করছি?
আওশি

@ আওশি এটি একটি স্প্রেড অপারেটর । এটি স্ট্রিংকে অক্ষরের অ্যারেতে পৃথক করে। এটি ছাড়া .join` `কিছুই কিছুই করবে না এবং ফলস্বরূপ কোনও ফাঁক থাকবে না।
ব্যবহারকারী81655

@ ব্যবহারকারী81655 আপনাকে ট্যাঙ্ক করুন
আওশি

4

রুবি, 63 57 বাইট

কমান্ড লাইন আর্গুমেন্ট হিসাবে অক্ষর গ্রহণ করে: ruby keyboard.rb e

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

4

টিস্ক্রিপ্ট , 50 45 44 বাইট

চা স্ক্রিপ্টটি গল্ফ করার জন্য জাভাস্ক্রিপ্ট।

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

অবহেলিত এবং ব্যাখ্যা

`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

জাভাস্ক্রিপ্ট ES6, 73

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

যদি প্যারামিটারটি হয় pবা নেতৃস্থানীয় হয় তবে কোনও শীর্ষস্থানীয় নিউলাইন যদি অনুমতি না পায় lতবে 83 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

সেড, 59 টি অক্ষর

(58 টি অক্ষর কোড + 1 অক্ষর কমান্ড লাইন বিকল্প।)

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

নমুনা রান:

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

রুবি, 86 87 83 71 66

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

অতিরিক্ত স্থান mহ'ল ইনপুটটি 'মি' হয় তবে প্রোগ্রামটি ক্রাশ হওয়া থেকে রোধ করা।

টিপস ~ 16 বাইটের জন্য @ মান্যাটওয়ার্ককে ধন্যবাদ


আমাকে অনুমান করতে দাও ... শেষ বারে প্রচুর পাইথন কোডিং হচ্ছে?
manatwork

1
কিছু ছোটখাট সিনট্যাক্স পরিবর্তন: ARGV$*; each_charchars; do.. end{.. }; printf$><<+ + %এই হতে হবে: "qwertyuiop↵asdfghjkl↵zxcvbnm".split($*[0])[1].chars{|i|$><<"%s "%i}রুবিতে গল্ফ করার জন্য আরও টিপস
manatwork

@ মান্যাটওয়ার্ক প্রথমবার রুবিতে গল্ফ করার চেষ্টা করছে, টিপস / লিঙ্কটির জন্য ধন্যবাদ!
স্নোরিংফ্রাগ

1
আমি দেখছি আপনি আমার প্রথম মন্তব্যে ইঙ্গিতটি পান নি। রুবিতে মাল্টলাইন স্ট্রিংগুলির চারপাশে ট্রিপল কোটের প্রয়োজন নেই। (আসলে এখন পর্যন্ত আমার কোনও ধারণা ছিল না যে এটি রুবি দ্বারা গৃহীত হয়েছিল))
manatwork

1
আউটপুটে শীর্ষস্থানীয় স্থানগুলি বেশ কুরুচিপূর্ণ। হিসাবে .রেগুলার এক্সপ্রেশন মধ্যে মিলছে না \n, ডিফল্ট অনুসারে ভাল ব্যবহার এই ব্যবধান জন্য: puts"qwertyuiop↵asdfghjkl↵zxcvbnm ".split($*[0])[1].gsub(/./,'\& ')। যদিও কোড দৈর্ঘ্য একই থাকবে।
manatwork

2

পিএইচপি, 88 বাইট

<?=$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)];

-F3 হিসাবে গণনা করা কমান্ড লাইন বিকল্পের প্রয়োজন , ডিফল্ট .ini সেটিংটি ধরে নেওয়া হয় (আপনি আপনার স্থানীয় .ini অক্ষম করতে পারেন -n)।


নমুনা ব্যবহার

$ 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

প্রোলোগ (এসডাব্লুআই), 153 133 বাইট

সম্পাদনা করুন: @ ফ্যাটালাইজ থেকে টিপস সহ 20 বাইট কাটা

কোড

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),!.

ব্যাখ্যা

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

উদাহরণ

>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

atom_codesএসডাব্লুআই-প্রোলোগ ব্যবহার করে আপনি ব্যাককোটগুলি ব্যবহার করে অংশটি ছোট করতে পারেন যা স্ট্রিং কোডগুলি ডিলিমেট করে (যাতে আপনি bস্ট্রিংয়ের সাথে সরাসরি এলকে প্রতিস্থাপন করতে পারেন )।
ফ্যাটালাইজ করুন

পছন্দ করুন যেহেতু আমি যাইহোক পরীক্ষার জন্য এসডাব্লুআই-প্রোলোগ ব্যবহার করছি, এটি দুর্দান্ত ধারণা বলে মনে হচ্ছে।
এমিগানা

এছাড়াও, এর b([A,_|T],[H]):-A=H,writef('%s',[T]);b(T,[H]).জন্য 2 টি পৃথক নিয়মের পরিবর্তে ব্যবহার করা bহয় 7 বাইট সংক্ষিপ্ত। সাধারণত, ;একাধিক নিয়ম লেখার পরিবর্তে সমস্ত নিয়মকে
ওআরএসের সাথে একত্রে সংশ্লেষ

প্রোলগ শিখার পরে এত দিন হয়ে গেছে যে আপনি সম্পূর্ণরূপে ভুলে গিয়েছিলেন যে আপনি এটি পছন্দ করতে পারেন। দুর্দান্ত টিপ! ধন্যবাদ :)
এমিগানা

2

বেফুঞ্জ, 122 বাইট

"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$\<

এটি এখানে পরীক্ষা করা হয়েছে: বেফুঞ্জ -৩৩ দোভাষী

কিভাবে এটা কাজ করে

  • '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' স্ট্যাকের উপর ধাক্কা দেওয়া হয়।
  • বাতিল করার জন্য মানগুলির সংখ্যা (হার্ডকোডড @ZVD0FHJ:LNP^\<>,2B48X.T6R) এন ঠেলাঠেলি করা হয়
  • প্রথম এন মানগুলি বাতিল এবং অবশিষ্ট মানগুলি মুদ্রিত হয়।

বিঃদ্রঃ

আমি এনকোডিংটি বাছাই করেছি যাতে @প্রোগ্রামটির সাথে ওভারল্যাপ করার জন্য স্ট্রিংটি শুরু হয় । এই স্ট্রিংটি নিম্নলিখিত পাইথন কোড দিয়ে উত্পন্ন হয়েছে:

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
ভাল উত্তর! কোড গল্ফ এসই তে আপনাকে স্বাগতম। (আমিও নতুন।)
ভূত_ইন_থো কোড

1

মাম্পস - 102 বাইট

গল্ফ স্ক্রিপ্ট:

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

অবহেলিত এবং মন্তব্য করেছেন:

 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.

অতিরিক্ত নিউলাইনগুলিকে অনুমতি দেওয়ার নিয়মটি আমাকে প্রায় 10 বাইট সংরক্ষণ করেছে ...


1

জাভা - 107 বাইট

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

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 "));
    }
}

যদি লাইনের শুরুর জায়গাগুলি গ্রহণযোগ্য হয় তবে আমরা 99 বাইটে নেমে যেতে পারি:

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

1

পাইথন 2, 58 67 63 বাইট ##

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

স্ট্রিং বা চর হিসাবে ইনপুট নেয়। ইনপুটটিতে স্ট্রিং বিভক্ত হয় এবং বিভক্ত হওয়ার পরে সবকিছু মুদ্রণ করে।

(প্রথমবারের কোড-গল্ফিং, দয়া করে নম্র হন: পি)

সম্পাদনা: এখন যোগ করা অক্ষরের মধ্যে প্রয়োজনীয় অতিরিক্ত স্থানগুলি দেখেনি

সম্পাদনা 2: একটি বেনাম ল্যাম্বডা ফাংশন হিসাবে সংশোধন করা হয়েছে এবং 4 টি বাইট সংরক্ষণ করে অতিরিক্ত বিভক্ত আরগটি সরিয়ে ফেলা হয়েছে


পিপিসিজিতে আপনাকে স্বাগতম! আমি মনে করি না যে আপনার পরে স্থান প্রয়োজন print, তবে মনে হয় এটি প্রতিটি জোড়া অক্ষরের মধ্যে ফাঁকা স্থান মুদ্রণ করে না।
মার্টিন এন্ডার

এখনই একটি রেফারেন্স সরবরাহ করতে পারে না, কিন্তু যখন দোভাষীকে ইনপুটটির অতিরিক্ত ফর্ম্যাটিংয়ের প্রয়োজন হয়, সেটিও গণনাতে অন্তর্ভুক্ত থাকে। (আমি ভুল হলে আমাকে সংশোধন করুন, তবে আমি মনে করি এটি কেবল তখনই কার্যকর হয় যদি ইনপুটটি চারপাশের উদ্ধৃতিগুলির সাথে একত্রে পাস করা হয়, যেমন "f"))
manatwork

প্রথম প্রথম গল্ফ। ফাংশনগুলি ডিফল্টরূপে, এমনকি বেনামেও অনুমোদিত হয়, সুতরাং এটি করার জন্য এটি খাটো lambda s:...। আমি মনে করি বিভাজনের কোনও আরগের দরকার নেই 1, যেহেতু চরিত্রটি কেবল একবার প্রদর্শিত হয়। এটি উত্তরোত্তর লাইনের শুরুতে ফাঁকা স্থানগুলিকে আউটপুট দেয়, এটি অনুমোদিত কিনা তা নিশ্চিত নয়।
xnor

1

রুবি, 59 57 67 বাইট

অক্ষরের মধ্যে ফাঁকা স্থান যুক্ত করা হয়েছে

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

এটি "এম" ইনপুট ব্যর্থ হয়। এটি অ্যারে সূচকটি -1 থেকে 1 এ পরিবর্তন করে খুব সহজেই ঠিক করা যায় তবে তারপরে ইনপুট "এম" এর ফলাফল হবে nil। যা নিজেই কোনও সমস্যা নয়, তবে অক্ষরগুলির মধ্যে ফাঁকা স্থান যুক্ত করার জন্য আপনার কোডটি শেষ করার সময় আপনাকে সমস্যা তৈরি করবে।
manatwork

1

জাভাস্ক্রিপ্ট, 88 বাইট

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("some letter")document.write()বা দিয়ে তৈরি করা যেতে পারে console.log(), কিন্তু আরে, এটি দীর্ঘ: পি

ডেমো:

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
আপনি সম্ভবত স্ট্রিংয়ের \nপরিবর্তে ব্যবহার করে ;এবং প্রতিস্থাপন থেকে মুক্তি পেয়ে কয়েকটি বাইট সংরক্ষণ করতে পারেন।
ইটিএইচ প্রডাকশন 21

@ অবশ্যই, ধন্যবাদ! আমি প্রতিস্থাপনটি ব্যবহার করেছি, কারণ প্রথমদিকে, লাইন ব্রেকগুলি গণনা না করে প্রতিস্থাপনটি ছোট করা হবে। তারপরে আমি লক্ষ করেছি যে লাইন ব্রেকগুলি সেখানে হওয়া উচিত, তাই আমি আবার প্রতিস্থাপন ব্যবহার করেছি। এমনকি কোডটি আরও দীর্ঘায়িত করতে পারে তা
ভেবেও দেখেনি

1

এসকিউএল (এমএস টি-এসকিউএল), 172 বাইট

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

আমি এখানে নতুন, কেবল এই সাইটটি আবিষ্কার করেছি। আমি সঠিকভাবে পোস্ট করেছি কিনা বা টি-এসকিউএল অনুমোদিত কিনা তা ধারণা নেই তবে আমি উপরের পদ্ধতিটি জানি।


1

হে 2.2, 48 46 টি অক্ষর

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

নমুনা রান:

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

ও, 61 টি অক্ষর

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

নমুনা রান:

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

এটি আইডিইতে কোনও কারণে কাজ করে না, এখনই এটি খতিয়ে দেখছে ...
ফেজ

"qwertyuiop\nasdfghjkl\nzxcvbnm\n"i/r;s{n.'\n=ST?}dকেবলমাত্র নতুন দোভাষীকে নিয়ে কাজ করে তবে এটি 51 বাইট।
পর্ব

পার্মালিনক্স হয় ... অগ্রগতি একটি কাজ: পি
ফেজ

হ্যাঁ, লিব্রেজপ্লেক্স ডিরেক্টরিতে
পর্যায়ক্রমে

গিট রেপোটিকে ক্লোন করুন git submodule update --init, তারপরেmake
পর্যায়ক্রমে

1

জাপট , 49 42 41 40 38 বাইট

Japt একটি সংক্ষিপ্ত সংস্করণ জা vaScri পর্তুগীজ ভাষায়অনুবাদক

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

দ্য ?অমুদ্রণীয় ইউনিকোড গৃহস্থালির কাজ U + এ 0086 হতে হবে।

কিভাবে এটা কাজ করে

          // 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

এখন সিজেমকে মারধর! :) পরামর্শ স্বাগত!

অ-প্রতিযোগিতামূলক সংস্করণ, 12 বাইট

;Dv qU g1 ¬¸

১১ ই জানুয়ারী, আমি জাপটে একটি দুর্দান্ত নতুন বৈশিষ্ট্য যুক্ত করেছি : প্রোগ্রামটিতে যদি একটি শীর্ষস্থানীয় কমা থাকে, তবে ভেরিয়েবলগুলি ABCDEFGHIJLবিভিন্ন মানগুলিতে পুনরায় সংজ্ঞায়িত হয়। Dসেট করা আছে "QWERTYUIOP\nASDFGHJKL\nZXCVBNM", সুতরাং ;Dvএখানে স্ট্রিং প্রতিস্থাপন যথেষ্ট।



0

8086 মেশিন কোড + ডস, 61 বাইট

হেক্সডাম্প (ডানদিকে এএসসিআইআই ভিউ সহ):

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.

সমাবেশের উত্স কোড (তাস দিয়ে একত্রিত হতে পারে):

    .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

দুটি মজাদার জিনিস:

  1. qwertyস্ট্রিং এর অফসেট হয় 0x011e। এর উপরের বাইটটি 1, যা অক্ষর ইনপুটটির জন্য ডস ফাংশন সংখ্যা। এটি কোডে 1 বাইট সংরক্ষণ করে।
  2. সমস্ত ছোট-বড় অক্ষরের বিট 5 সেট রয়েছে। যখন একটি করছেন ANDসঙ্গে 0x20, সব তারা একটি স্থান, যা ছাপা হয় পরিণত হয়। পূর্ববর্তী চরটি যদি লাইন বাইটের শেষে ছিল তবে এটি 0 এ পরিণত হবে এবং কোনও স্থান আউটপুট নয়। এটি 0d 20 0a 20লাইনের শেষে অযৌক্তিক ক্রম এড়ানোর জন্য ব্যবহৃত হয় ।

একটি প্রায় মজাদার জিনিস:

আমি ঠিক স্থান (স্ট্রিংয়ের শুরু) এর পরিবর্তে ঠিকানার 0 (যে প্রোগ্রামের আকার 2 বাইট দ্বারা হ্রাস পেয়েছে) থেকে শুরু করে ইনপুট চর অনুসন্ধান করার চেষ্টা করেছি। এটি প্রায় কাজ করে; তবে এটি ইনপুটটির জন্য ব্যর্থ হয়েছিল t, কারণ কোডটিতে স্বয়ং বাইট রয়েছে t(শর্তাধীন জাম্পের এনকোডিংয়ের অংশ হিসাবে)। সুতরাং t, এটি কয়েক জাঙ্ক বাইট আউটপুট হবে:

আউটপুট


0

32, 32 অক্ষর / 79 বাইট

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

Try it here (Firefox only).

কমপক্ষে আমি চর গণনায় জিতে যাচ্ছি ... (বাইট কাউন্ট একটি আলাদা গল্প)

হ্যাঁ, ঠিক বুঝতে পেরেছি যে আমি কিছুক্ষণ আগে ইনডেক্স শর্টকাটগুলি প্রয়োগ করেছি ( ⎖1পরিবর্তে [1])। বোকা আমাকে!


এই কি ভাষা? বা এটি কি আক্ষরিক: i.imgur.com/WC7XvYs.png (এবং সেখানে কোনও ডকুমেন্টেশন আছে) এটি অদ্ভুত, আহা!
ʰᵈˑ

এটি ইএসমিন। চিঠিগুলি ডাবলস্ট্রাকের মধ্যে রয়েছে, তাই এগুলি দেখতে আপনার সমস্যা হতে পারে। Github.com/molarmanful/ESMin দেখুন (যদিও দস্তাবেজগুলি পুরানো)।
মামা ফান রোল

0

সি ++, 129, 112 97 বাইট

#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));
}

ব্যবহার করে আপনি 17 বাইট বন্ধ শেভ পারে putsপরিবর্তেstd::cout<<
DJMcMayhem

@ ডিজেএমসিমেহেম ধন্যবাদ! একটি চমৎকার পয়েন্ট: কিছু কারণে আমি এখনও একটি প্রয়োজন হবে জন্য #includeজন্য puts, কিন্তু স্পষ্টরূপে আমি না!
তাস

এছাড়াও, এই অন্য 12 খাটো।
DJMcMayhem

ধন্যবাদ! আমি জানতামও না strstrএকটা জিনিস ছিল।
তাস

আমি মনে করি এটি কিছুটা অতিরিক্ত ছড়িয়ে পড়েছে। আপনি প্রয়োজন <stdio.h>জন্য strstr
DJMcMayhem

0

ব্যাচ, 206 + 2 = 208 বাইট

কারণ এটি বিলম্বিত সম্প্রসারণ ব্যবহার করে আপনার এটির সাথে অনুরোধ করা উচিত CMD /V /C keyboard.cmd <letter>, তাই স্যুইচটির জন্য 1 2 যোগ করুন /V

@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 =!

আমি আশঙ্কা করছি যে কমান্ড লাইন বিকল্পটি পসিক্স সরঞ্জামগুলির মতো cmdগ্রহণ করলে এটি 1 গণনা করবে /VC। তবে আমি জানি যে /Vএটির নিজস্ব প্রয়োজন /যা গণনাও করে।
manatwork

0

পাইথন, 109 বাইট

আমি এটি কিছুটা বড় জানি তবে এটি এখনই কীভাবে করা যায় তা আমি জানি!

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])

আমি মনে করি না kb()আপনার শেষে কল করার দরকার আছে ; ফাংশন সংজ্ঞায়িত যথেষ্ট। এছাড়াও, 1 ইন্ডেন্টেশন স্থান যথেষ্ট is এই পরিবর্তনগুলি করার পরে, আমি এই সাইটটি ব্যবহার করে 108 বাইট পেয়েছি ।
ETH প্রোডাকশন

@ এথ প্রডাকশনগুলি বাহ আমি জানি না যে একবার স্পেস জিনিস। (অজগর থেকে নতুন) আপনার সাহায্যের জন্য আবার ধন্যবাদ!
আশ্বিন গুপ্ত 21

0

বাশ, 80 বাইট

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

এটি নিজে চেষ্টা করুন, হয় পছন্দসই চরিত্রের সাথে $ 1 প্রতিস্থাপন করুন বা একটি #! / বিন / বাশ স্ক্রিপ্ট তৈরি করুন।

সাইগউইনের কয়েকটি নমুনা এখানে:

$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

এটি স্বল্পতম নয়, তবে আমি এটি নিয়ে এখনও গর্বিত!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.