মানচিত্রে ASCII অক্ষর অন্তর্ভুক্ত করা হয়েছে


32

অন্যান্য চ্যালেঞ্জটি নিশ্চিত করে দেখুন, ASCII চরিত্রের মানচিত্রটি বিপরীত করুন !

ASCII অক্ষর (আমেরিকান স্ট্যান্ডার্ড কোড ফর ইনফরমেশন ইন্টারচেঞ্জ) হ'ল সর্বাধিক ব্যবহৃত ব্যবহৃত চরিত্রের এনকোডিং মান। এএসসিআইআই কোডগুলি কম্পিউটার, টেলিযোগাযোগ যন্ত্রপাতি এবং অন্যান্য ডিভাইসে পাঠ্য উপস্থাপন করে।

চ্যালেঞ্জ

আপনার চ্যালেঞ্জটি ASCII অক্ষরটির ম্যাপিংটি প্রিন্ট করা যেমন ব্যবহারকারী তাদের প্রবেশ করায়। জিআইএফ:

GIF

ব্যবহারকারীর প্রতিটি ASCII অক্ষর প্রবেশ করার পরে আউটপুটটি দেখতে হবে:

টেবিল

ম্যাপিং

প্রতিটি বর্ণের একটি 16x6 লজিক্যাল গ্রিডে একটি নির্ধারিত অবস্থান থাকে, উপরের বাম অবস্থানে স্থান অক্ষর দিয়ে শুরু হয় এবং এমনভাবে মোড়ানো হয় যে এটির নীচে 0 অঙ্কটি প্রদর্শিত হবে।

মুদ্রণযোগ্য এএসসিআইআই ইনপুটটি প্রাপ্ত হলে, বর্তমানে অনস্ক্রিনে থাকা কোনও অক্ষর মুছে না ফেলে তার নির্ধারিত স্ক্রিনের স্থানে সেই ASCII অক্ষরটি মুদ্রণ করুন।

বিধি

  • তোমার প্রোগ্রাম শুধুমাত্র মুদ্রণযোগ্য ASCII অক্ষর ছকা করে নেওয়া প্রয়োজন এমন 0x20করতে 0x7E
  • আপনার মুদ্রণযোগ্য ASCII অক্ষরগুলিকে ইনপুট না করা পর্যন্ত আপনার প্রোগ্রামটি অবশ্যই স্ক্রিনে অক্ষরগুলি মানচিত করে অবিরত করা উচিত নয়। এখান থেকে, আপনার প্রোগ্রাম হয় শেষ করতে পারে বা নেভারল্যান্ডে চলে যেতে পারে।
  • আপনার প্রোগ্রাম অক্ষরগুলি আপনার পছন্দ মতো মানচিত্র করতে পারে, যেমন একটি স্প্রেডশিট, টেবিল, কনসোল উইন্ডো বা গ্রাফিকাল উইন্ডোতে।
  • আপনি ম্যাপিংটি কীভাবে প্রদর্শন করবেন তা বিবেচনা না করেই এটি অবশ্যই রিয়েলটাইমে আপডেট হওয়া উচিত (এটি ব্যবহারকারীর ইনপুট পাওয়ার সাথে সাথে)।
  • যদি আপনার প্রোগ্রামটি নিঃশব্দে ইনপুটটি না পড়ে, তবে এটি অবশ্যই কার্সারটিকে বাইরে রাখবে, যাতে পাঠ্যটি মানচিত্রের পথে না পায়।

সাহায্য

আমি জিআইএফ উত্পন্ন করতে ব্যবহৃত সিউডোকোড অ্যালগরিদম এখানে:

loop forever
    c = input
    y_coord = c / 16
    x_coord = c - y * 16
    if c is printable
        print c at (x_coord * 2 + 1, y_coord + 1)
    end if
end loop

প্রয়োজনীয় আউটপুট অর্জনের অন্য কোনও উপায় থাকতে পারে। আপনি আমার অ্যালগরিদম বা আপনার নিজের ব্যবহার করতে বেছে নিতে পারেন তবে আউটপুট অবশ্যই নির্বিশেষে একই হতে হবে।

এখানে একটি কার্যকর ASCII সারণী রেফারেন্স।

স্কোরিং

প্রতিটি ভাষার ন্যূনতম বাইট সহ উত্তর জিততে পারে। আনন্দ কর!


আমাদের কি চরিত্রগুলির মধ্যে ফাঁকা স্থান থাকা দরকার?
musicman523

@ musicman523 হ্যাঁ, সেগুলি প্রয়োজনীয়। আউটপুট দেখুন আবশ্যক ঠিক যেমন স্ক্রিনশট দেখানো।
এমডি এক্সএফ

আমাদের কি টার্মিনালের পটভূমির রঙ অনুমান করার অনুমতি দেওয়া হচ্ছে?
সম্পূর্ণমানবিক

টার্মিনাল সাফ করে দিচ্ছে, তারপরে প্রতিটি চরের জন্য আপডেট টেবিলটি আবার অঙ্কনযোগ্য?
ডিজিটাল ট্রমা

@ ডিজিটালট্রামা - প্রতিটি সময় পুনরায় আঁকা গ্রহণযোগ্য - আমি স্যান্ডবক্স পোস্টে জিজ্ঞাসা করেছি
সঙ্গীতানুষ্ঠান 523

উত্তর:


3

কিউবিআইসি , 53 57 বাইট

ব্যবধানের জন্য 4 বাইট যুক্ত করা হয়েছে।

{locate 7,1┘_?┘i=asc(A)┘locate i/16-1,(i%16+1)*2┘?chr$(i)

কিউবিআইসি কিউ বেসিকের শর্টহ্যান্ড হিসাবে বিকাশ শুরু করেছিল, তাই আমি ভেবেছিলাম আমার কিউবাসিক উত্তরটি অনুবাদ করলে এটি সুন্দরভাবে প্রদর্শিত হবে। কার্যত অভিন্ন প্রোগ্রামের জন্য আমরা বাইট-কাউন্টে প্রায় 40% সংরক্ষণ করেছি - এবং এটি তখনও LOCATE, যখন ASC, এবং CHRএখনও কিউবিআইসি-কার্যকারিতা নেই। ভাগ্যক্রমে, কিউবিআইসি এটির জন্য ক্ষতিপূরণ দেওয়ার জন্য সরাসরি কিউবাসিকের কাছে কোড পাস করতে পারে। পাশাপাশি থাকুন:

QBIC              QBASIC
------------      ------------
{                 DO
locate 7,1        LOCATE 7,1
                  note that the lower-case alphabet is left unaltered in QBIC.
_?                LINE INPUT A$  (LINE INPUT used instead of INPUT to handle comma's)
i=asc(A)          i=ASC(A$)
locate i/16-1     LOCATE i/16-1
   ,(i%16+1)*2       ,(i MOD 16+1)*2
?chr$(i)          ?CHR$(i)
                  LOOP   (implicitly added to QBIC at EOF)

18

জাভাস্ক্রিপ্ট (ES6) + এইচটিএমএল, 114 + 16 = 130 বাইট

16 শে বাইট সংরক্ষিত হয়েছে @ শেগগিকে ধন্যবাদ

a=Array(96).fill` `;onkeypress=k=>(a[k.key.charCodeAt()-32]=k.key,O.innerText=a.join` `.match(/.{1,32}/g).join`
`)
<pre id=O></pre>

এটি কেবল অবিশ্বাস্যরূপে সন্তুষ্ট কেবল কীবোর্ড ম্যাস করার জন্য ...


9
"কেবল কীবোর্ডটি ম্যাস করার জন্য অবিশ্বাস্যরূপে সন্তুষ্ট" "আমি যা যাচ্ছিলাম তা বা নাও হতে পারে। +1
এমডি এক্সএফ

এবং হ্যাঁ, আপনি কেবল প্রিন্টযোগ্য এএসসিআইআই দেওয়া যেতে পারে। আমি নিশ্চিত যে নিয়ম # 1।
এমডি এক্সএফ

আপনি কি কেবল prompt()একটি লুপের মধ্যে ব্যবহার করতে পারবেন না ? এটি আপনাকে সমস্ত ইভেন্ট পরিচালনা ও এইচটিএমএল থেকে রক্ষা করবে। ওপি মনে হয় এটি অনুমতি দেয়। গণিত পোস্টের মন্তব্য দেখুন।
অর্জুন

কেবল প্রিন্টযোগ্য এএসসিআইআই পরিচালনা করে; 7 টি বাইট বিয়োগ করুন যদি আমরা কেবল প্রিন্টযোগ্য ASCII অনুমান করতে পারি তবে তা বোধ হয় না। যদি এটি কেবল প্রিন্টযোগ্য এএসসিআইআই পরিচালনা করে তবে কীভাবে মুদ্রণযোগ্য এএসসিআইআই অনুমান করা যায় কোনও বাইট সংরক্ষণ করতে?
অর্জুন

আপনাকে ট্যাগটি onkeypressফেলে দেওয়ার সুযোগ দিয়ে নিজেই ব্যবহার করতে সক্ষম হবেন body। এছাড়াও, preট্যাগ শুধু সংক্ষিপ্ত করা যেতে পারে <pre id=O। যদিও, >এটি একটি স্নিপেটে কাজ করার জন্য আপনাকে সমাপনীটি অন্তর্ভুক্ত করতে হবে।
শেগি

15

কিউব্যাসিক 4.5, 81 85 বাইট

স্পেসিং-বিধি মেনে চলতে 4 বাইট যুক্ত করা হয়েছে।

DO
LOCATE 7,1
LINE INPUT A$:i=ASC(A$)
LOCATE i\16-1,(i MOD 16+1)*2
?CHR$(i)
LOOP

এবং আউটপুটটি এর মতো দেখতে পাবেন (দ্রষ্টব্য: পুরাতন স্ক্রিনশট, এখন প্রতিটি অক্ষর একটি স্পেস দ্বারা পৃথক করা হয়েছে):enter image description here

কিউব্যাসিকের LOCATEকমান্ড রয়েছে যা এখানে কার্যকর y এই কোডের একটি ভাঙ্গন:

DO                          Starts an infinite loop
LOCATE 7,1                  Moves the cursor out of the way
LINE INPUT A$:i=ASC(A$)     LINE INPUT gets user input; we need LINE INPUT instead of regular input
                            for support of <space> and <comma>. The ASC() function then takes the
                            ASCII value of the first character in the input, so it can deal with
                            inputs like 'Hello' - it will take ASC('H') and assign that to 'i'
LOCATE i\16-1               Here's the cool bit: LOCATE takes a row and a column to put the cursor on.
    ,(i MOD 16+1)*2         Row is determined by dividing the ASC value by 16, minus 1 (SPACE, ASC 32 
                            is placed on row 1), and for columns we take the modulo plus 1 (Again, SPACE 
                            mod 16 = 0, plus 1 = column 1). Multiplied by 2 gives us the spacing. 
                            We move the cursor to 1,2
?CHR$(i)                    PRINT a cast of the ASCII value to CHR at the specified location.
LOOP                        Ad infinitum

কিউ বেসিক সবাইকে মারধর! কি দারুন!
অর্জুন

5
@ আর্জুন আপনি বাচ্চারা এবং আপনার জাভা ...
স্টেইনবার্গ

8

জাভা 8 , 143 বাইট

o->{for(;;){char c=System.console().readPassword()[0];if(c>31&c<127)System.out.println(String.format("\u001B[%d;%df%c",c/16+1,(c%16+1)*2,c));}}

কার্সার অবস্থান নির্ধারণ করতে এবং নীরবে ব্যবহারকারীর ইনপুট পড়তে এএনএসআই নিয়ন্ত্রণ কোড ব্যবহার করে । কিছু অক্ষরের আউটপুট:CSI n ; m fConsole.readPassword()

sscreenshot


1
প্রথমবার দেখলাম জাভা কোড গল্ফেও একটা সুযোগ পেয়েছে! সুন্দর!
এলএমডি

1
+1, এর আগে কখনও readPassword()ব্যবহার করা হয়নি । ওহ, এবং মনে হচ্ছে আপনি মুদ্রণের পরে একটি অর্ধ-কোলন অনুপস্থিত। এছাড়াও, এর System.out.printfপরিবর্তে কোনওভাবে ব্যবহার সম্ভব নয় System.out.println(String.format(? আর তুমি পরিবর্তন করতে পারেন ()->থেকে o->ব্যবহার করে একটি অব্যবহৃত খালি প্যারামিটার
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন স্থির, ধন্যবাদ!
বাশফুল বেলুগা

6

ব্রেইনফাক , 355 বাইট

>>++++[->++++[->+>++++++<<]<]>>->[-<[-<<<<++++[->++++++++<]]>>>[<<<<<++++++++[->>++<<<+>]>>-<<<++>>]<<[>>>>>>[>>>]>+<<<<<[<<<]<<-]>>>>>>[>>>]++++[-<++++++++>]>[-<+>]<<[<<<]>>]<[-]<<,[[->+>+<<],[-]++++[->>--------<<]>>[>>>>[>>>]+[<<<]<-]>>>>[>>>]<<[-]<[<<<]<<[>>>>>[>>>]<<+<[<<<]<<-]>>>>>[>>>]<<<[[-]<<<]>[.>.>>]++++++++++[->+>++<<]>>[-<.>]<[-]<<<<[<<<]<,]

ব্রেইনফাকের বিকল্পগুলি বেশ সীমিত, সুতরাং আউটপুটটি টার্মিনালে রয়েছে এবং 20 টি নতুন লাইনের সাথে পর্দাটি "সাফ" করা হয়েছে। ইনপুটটি নতুন লাইনের দ্বারা পৃথক হওয়া ASCII অক্ষর হওয়া উচিত।

এটি অনলাইন চেষ্টা করুন!

ফর্ম্যাট এবং ডকুমেন্টেড

এই প্রোগ্রামটি লিখতে আমি ব্যবহৃত ডিবাগ নোট। আমি আমার দোভাষী ব্যবহার করেছি যা ডিবাগিংয়ের জন্য প্রতিটি '~' অক্ষরে টেপের স্থিতিটি প্রিন্ট করতে পারে।

[
    run.bf
    codegolf.stackexchange.com/questions/124306/map-inputted-ascii-characters
]


[
    Calculate 16 * 6
    Resulting tape state:
    [0 0 0 0 0 0 16 96 0 0 0 0 ...]
               ^
    Note that, to obtain a 16-by-6 grid, the 16
    immediately to the right is decreased to 15
    (since we will decrease it by 1 each loop
    until we reach 0 and immediately reset)
]
>>>>++++[->++++[->+>++++++<<]<]>~

[
    Our next goal is to make 96 sets of 3 cells each in the pattern [C D 0]
    The first cell will represent an entered character--when the corresponding
    input on the keyboard is pressed, it will change to the entered key.
    The first cell is initialized to 32 (' ').

    The second cell will represent the delimiter after that character.
    Every 16 cells, this should be 10 for '\n'. Otherwise, it should be 32 for ' '.

    The third cell is a buffer cell, used for traversal of the grid. In general,
    it should be only temporarily modified and then reset to 0.
]

>->[-<
    [
       -<<<<++++[->++++++++<]
       [
           The second cell of our 3-set should be 32, so the above line
           writes 32 to the 3rd cell from the beginning of the tape (0-indexed)
       ]
    ]
    >>>
    [
       <<<[ The second cell of our 3-set should be 10, and we must reset the line counter ] 
       <<++++++++[->>++<<<+>]>>-<<<++>>
    ]

    [ At this point, the delimiting cell we need is two cells to the left. ]
    <<[>>>>>>[>>>]>+<<<<<[<<<]<<-]

    >>>>>>[>>>]++++[-<++++++++>]
    [ Debug Mode: In the previous loop, add a + in the string of 8 +'s to get visible spaces in the grid ($-signs) ]
    >[-<+>]<<[<<<]>>
]

[ Go back to the beginning of the tape and clear up the residual '15' ]
<[-]~

<<,

[
    [->+>+<<],[-]++++[->>--------<<]

    [
        Take input such that the state of the tape now looks like this:
        [0 0 0 0 0 c c-32 0 32 32 0 32 32 0 32 32 0 ...]
                 ^
        Where 'c' was the entered character.
        We now set up 1's in the buffer zones of the first c-32
        3-sets and clear the character that is currently there.
        All that is left, then, is to copy c to that location.
    ]

    [ Set up the row of 1's. ]
    >>[>>>>[>>>]+[<<<]<-]

    [ Clear the current character. ]
    >>>>[>>>]<<[-]~<[<<<]

    [ Copy the new character. ]
    <<[>>>>>[>>>]<<+<[<<<]<<-]

    [ Clean up the 1's. ]
    >>>>>[>>>]~<<<[[-]<<<]

    [ Print the grid. ]
    >[.>.>>]~

    [ Print a bunch of newlines ]
    ++++++++++[->+>++<<]>>[-<.>]<[-]

    [ Take a new input. ]
    <<<<[<<<]<,
]

6

গণিত, 108 বাইট

a=" "~Table~16~Table~6;Dynamic@Grid@a
((a[[⌊#/16⌋-1,#~Mod~16+1]]=i)&@ToCharacterCode[i=Input[]];#0[])&[]

এটি https://sandbox.open.wolframcloud.com/ এ অনলাইনে ব্যবহার করে দেখুন

আপনি কোডটি পেস্ট করুন এবং টিপলে Shift+Enterএকটি ডায়ালগ বক্স পপ আপ হবে, আপনি "a"উদাহরণস্বরূপ অক্ষরের জন্য প্রবেশ করুনa । প্রোগ্রামটি চিরকাল চলে।

দ্রষ্টব্য: ওল্ফ্রাম স্যান্ডবক্সে, ফন্টটি আমার কম্পিউটারে ম্যাথমেটিকার চেয়ে আলাদাভাবে ফর্ম্যাট করা আছে। সুতরাং লাইন / কলামের ব্যবধানটি অদ্ভুত দেখাচ্ছে।


এটি কি প্রতিটি চরিত্রকে অবিচ্ছিন্নভাবে ম্যাপ করে? অর্থাৎ কাঙ্ক্ষিত আউটপুটটি দেখতে আপনি কি একবারের বেশি রান করতে হবে?
এমডি এক্সএফ

আপনি এটি একবার চালান, এবং প্রতিবার আপনি OKযখন কোনও ইনপুট বাক্স টিপেন, আপনার ইনপুট প্রবেশের জন্য অন্য একটি ইনপুট বাক্স উপস্থিত হবে।
ব্যবহারকারী 202729

বৈধ মনে হচ্ছে, ধন্যবাদ। সুন্দর কাজ!
এমডি এক্সএফ

আমি মনে করি আমি = টপ স্ট্রিং @ ইনপুট []] আরও
দৃin় হবে sers

বা আরও ভাল i = ইনপুটস্ট্রিং []
J42161217

5

পাইথন 2 , 115 বাইট

s='\n'.join([' '*31]*6)
while 1:
 c=input();i=ord(c)
 if 31<i<128:i-=32;i=i%16*2+i//16*32;s=s[:i]+c+s[i+1:];print s

এটি অনলাইন চেষ্টা করুন!

ইনপুট করা অক্ষরগুলির চারপাশে উদ্ধৃতি চিহ্নগুলি (একক বা দ্বিগুণ) প্রয়োজন (টিআইও সংস্করণটি দেয় না)।


1
আপনি পরিবর্তন করতে পারেন raw_inputকরতে inputহিসাবে এটা সম্প্রদায় আদমশুমারি আপনি ইনপুট এটি প্রায় কোট হয়েছে অনুমান করতে পারেন প্রয়োজনে।
কেয়ার্ড কোইনারিংহিংহ

1
ভাল লাগছে! যখন আমি পরীক্ষা করছিলাম আমি কেবল কীগুলি প্রবেশ করছিলাম এবং এটি অসন্তুষ্ট হয়েছিল যে আমি {কোনও মিল না নিয়ে wasুকছিলাম }
musicman523

4

str , নন-কেপটিং, 18 বাইট

আমার নতুন আধা-রহস্যময় ভাষা উপস্থাপন করছি।

#C;dby16#/~2-~u#pq

Animated GIF

#C;dby16#/~2-~u#pq
..;                   preamble
#C                    clear screen
   ...............    main program; each character is pushed to the stack before
   d                  duplicate
    b                 buffer the character
     y                convert to character code
      16#/            divmod by 16 (a / b, a % 6)
          ~2-~        subtract a / b by 2
              u       unbuffer the character
               #p     place that character in the given position
                 q    "quiet"; disable auto-printing

আমি চরিত্রগুলির মধ্যে ফাঁকা স্থান দেখতে পাচ্ছি না ...
এমডি এক্সএফ

2
@ এমডিএক্সএফ অনুমান অক্ষরের মধ্যে ফাঁকা স্থান সম্পর্কে কিছুই বলে না। উল্লেখ করার দরকার নেই এমন প্রচুর উত্তর রয়েছে যা স্পেস ব্যবহার করে না।
কনর

3

হাস্কেল, 133 বাইট

p=putStr.("\27["++)
g l=do c<-getChar;p"2J";mapM h(c:l);g(c:l)
h c|(y,x)<-divMod(fromEnum c)16=p$show y++';':show(2*x+1)++'H':[c]
g[]

এমন একটি টার্মিনাল প্রয়োজন যা এএনএসআই পলায়নের ক্রমগুলি বোঝে।

টার্মিনাল সেশনে প্রতিধ্বনি বন্ধ করার পরিবর্তে এ পর্যন্ত চাপা সমস্ত কীগুলির একটি তালিকা রাখা এবং প্রতিটি বৃত্তিকে মুদ্রণের আগে স্ক্রিনটি সাফ করা ছোট orter পরেরটির প্রয়োজন হয় import System.IOএবং hSetEcho stdin(2<1)যার দাম অনেকগুলি বাইট।


3

সি, 101 বাইট

c,y,x;f(){while(~(c=getchar()))printf("\e[1;20H"),y=c/16,x=c-y*16,printf("\e[%d;%dH%c",y+1,x*2+1,c);}

আমি গ্রাফিক্স তৈরি করতে ব্যবহৃত এই প্রোগ্রামটি ছিল। আউটপুট জিআইএফ-তে প্রদর্শিত আছে। ;)


3

কিউবাসিক, 62 58 বাইট

a=ASC(INPUT$(1))
LOCATE a\16-1,1+2*(a MOD 16)
?CHR$(a)
RUN

কিউবি 64 এর সাথে পরীক্ষিত । নিয়মিত কিউবাসিকের ক্ষেত্রেও খুব ভাল কাজ করা উচিত, যদিও আপনি CLSপ্রথম রান করার জন্য এটি পরিবর্তন করতে চাইতে পারেন mod

অনুরূপ steenbergh এর উত্তর কিন্তু ব্যবহারসমূহ INPUT$(1)অক্ষর একটি সময়ে এক পড়তে। এই পদ্ধতিটি সংক্ষিপ্ত এবং কোনও প্রম্পটও প্রদর্শন করে না। এটি RUNঅসীম লুপের জন্যও ব্যবহার করে , যেহেতু আমাদের পর্দার অবস্থা ব্যতীত পুনরাবৃত্তির মধ্যে কোনও রাজ্য সংরক্ষণ করতে হবে না।


বাহ সুন্দর. সম্পর্কে জানতাম না input$()। আমি টিপস-বিষয় খুব বিটিডব্লু পছন্দ করি।
স্টেইনবার্গ

1

পাস্কাল, ১১২ টি চর

Uses crt;var c:char;Begin ClrScr;repeat c:=ReadKey;GotoXY(ord(c)and$F*2+1,ord(c)shr 4-1);write(c);until 1<0;End.

আমার ম্যাথামেটিকাল সমাধান অনেক বাইট লাগে হিসাবে div, modএবং ToCharacterCode[Input[]], আমি পাসকাল সঙ্গে অন্য উত্তর উপার্জন করার চেষ্টা করুন। তবে ClrScrআমার সংকলক (এফপিসি) ছাড়াই স্ক্রিনে কিছু সংকলন তথ্য রেখে গেছে। ClrScr;7 বাইট লাগে।

*2সঠিক ফাঁক জন্য ব্যবহৃত অন্য 2 বাইট লাগে।


1

লোগো, 90 বাইট

cs
rt 90
keyboardon[invoke[setxy 30*modulo ? 16 -30*int ?/16 label char ?]keyboardvalue]pu

এফএমএসলোগোতে চেষ্টা করে দেখুন।

সর্বোপরি, আমার ম্যাথমেটিকা ​​এবং পাসকালের উত্তরের তুলনায় আমার লোগো সমাধানটি সবচেয়ে কম or

কচ্ছপটি লুকানোর প্রয়োজন হলে 3 বাইট যুক্ত করুন।


1

6502 মেশিন কোড + অ্যাপল // ই রম, 31 বাইট

হেক্স ডাম্প:

8000- 20 58 FC 20 0C FD 48 38
8008- E9 A0 48 29 0F 0A 85 24
8010- 68 4A 4A 4A 4A 20 5B FB
8018- 68 20 ED FD 4C 03 80

মন্তব্য সমাবেশ:

 1 HTAB     =     $24        ; HORIZONTAL POSITION OF CURSOR
 2 SETVTAB  =     $FB5B      ; SETS VERTICAL POSITION OF CURSOR FROM ACC
 3 COUT     =     $FDED      ; OUTPUTS CHARACTER IN ACC
 4 HOME     =     $FC58      ; CLEARS SCREEN
 5 RDKEY    =     $FD0C      ; GETS CHARACTER FROM KEYBOARD, STORES IN ACC
 6          ORG   $8000
 7          JSR   HOME
 8 GETINP   JSR   RDKEY
 9 * POSITION CURSOR
10          PHA              ; PRESERVE ACC
11          SEC              ; MAKE SURE CARRY IS SET TO SUBTRACT
12          SBC   #" "       ; SUBTRACT CHAR CODE OF SPACE
13          PHA              ; SAVE ACC
14          AND   #$0F       ; GET LOWER 4 BITS TO GET CURSOR X POSITION
15          ASL              ; SHIFT LEFT TO MAKE SPACES BETWEEN CHARS
16          STA   HTAB
17          PLA              ; GET OLD ACC
18          LSR              ; SHIFT HIGH NIBBLE
19          LSR              ; INTO LOW NIBBLE
20          LSR              ; TO GET CURSOR Y POSITION
21          LSR
22          JSR   SETVTAB
23          PLA              ; RESTORE ACC
24 *
25          JSR   COUT
26          JMP   GETINP

GIF demo

যদি কার্সার এটি অবৈধ করে তোলে তবে এখানে একটি কার্সার ছাড়াই 36-বাইট সংস্করণ রয়েছে:

8000- 20 58 FC AD 00 C0 10 FB
8008- 8D 10 C0 48 38 E9 A0 48
8010- 29 0F 0A 85 24 68 4A 4A
8018- 4A 4A 20 5B FB 68 20 ED
8020- FD 4C 03 80

1

রুবি, 79 75 71 + 13 = 84 বাইট

-rio/consoleপতাকা জন্য +13 বাইট ।

loop{$/+=STDIN.getch
97.times{|n|print$/[(n+31).chr]||" ",["
"][n%16]}}

Ungolfed

loop {
  $/ += STDIN.getch
  97.times {|n|
    print $/[(n+31).chr] || " ", ["
"][n%16]
  }
}

1

স্মাইলব্যাসিক 3, 82 বাইট

CLS
@L
C$=INKEY$()IF""!=C$THEN V=ASC(C$)-32LOCATE V MOD 16*2,V DIV 16*2?C$;
GOTO@L

স্মাইলব্যাসিক চরিত্রের সেটটিতে ¥এমন অবস্থান রয়েছে যেখানে \সাধারণত থাকত; আশা করি এটি পুরোপুরি এই উত্তরটি বাতিল করে না।


0

অ্যাপলসফট বেসিক , 134 বাইট

0TEXT:HOME:PR#0
1C=PEEK(49152):POKE49168,0:HTAB1:VTAB20:NORMAL:IFC>=128THENC=C-128:INVERSE
4Y=INT(C/16):X=C-Y*16:HTABX*2+1:VTABY+1:IFC>=32THEN PRINTCHR$(C):IFC<32THEN PRINTCHR$(127)
9GOTO1

এটি অ্যাপল এর একটি গল্ফ সংস্করণ] [কীবোর্ড পরীক্ষা, প্রোগ্রাম যা চ্যালেঞ্জকে অনুপ্রাণিত করেছিল।


এটি আসলে 134 বাইট, যেহেতু অ্যাপলসফট বেসিকটি টোকানাইজড।
_োকান_নাম_এখানে

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