ASCII- টেবিলটিকে ASCII- সারণী হিসাবে পুনরায় তৈরি করুন


26

আমি যখন কোড-গল্ফিং করি তখন প্রায়শই আমি জানতে চাইব একটি নির্দিষ্ট চরিত্রের ASCII মান কী। মুদ্রণযোগ্য এএসসিআইআই অক্ষরগুলির দ্রুত সন্ধান করার জন্য আমার প্রিয় একটি সম্পদ হ'ল ASCIItable.com । এটিতে একটি দুর্দান্ত চিত্র রয়েছে যা কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর এবং তাদের মানগুলিই নয়, অপ্রিনিতযোগ্য এবং প্রসারিত অক্ষরগুলি এবং হেক্সাডেসিমাল, অক্টাল এবং এইচটিএমএলের মানগুলিও দেখায়:

এখানে চিত্র বর্ণনা লিখুন

আজকের চ্যালেঞ্জটি হ'ল ASCII টেবিলটি একটি চিত্রের পরিবর্তে ASCII টেবিল হিসাবে পুনরায় তৈরি করা। জিনিসগুলি আরও সহজ রাখতে, আমরা কন্ট্রোল-ক্যারেক্টার ব্যবহার করব না (32 এর নিচে অক্ষর) এবং আমরা কেবলমাত্র দশমিক মান এবং অক্ষরটি দেখাব। অন্য কথায়, আপনার চ্যালেঞ্জটি হ'ল একটি সম্পূর্ণ প্রোগ্রাম বা এমন একটি ফাংশন লিখুন যা নিম্নলিখিত পাঠ্যটি প্রিন্ট করে বা ফেরত দেয়:

Dec  Chr   | Dec  Chr   | Dec  Chr
----------------------------------
32   Space | 64   @     | 96   `
33   !     | 65   A     | 97   a
34   "     | 66   B     | 98   b
35   #     | 67   C     | 99   c
36   $     | 68   D     | 100  d
37   %     | 69   E     | 101  e
38   &     | 70   F     | 102  f
39   '     | 71   G     | 103  g
40   (     | 72   H     | 104  h
41   )     | 73   I     | 105  i
42   *     | 74   J     | 106  j
43   +     | 75   K     | 107  k
44   ,     | 76   L     | 108  l
45   -     | 77   M     | 109  m
46   .     | 78   N     | 110  n
47   /     | 79   O     | 111  o
48   0     | 80   P     | 112  p
49   1     | 81   Q     | 113  q
50   2     | 82   R     | 114  r
51   3     | 83   S     | 115  s
52   4     | 84   T     | 116  t
53   5     | 85   U     | 117  u
54   6     | 86   V     | 118  v
55   7     | 87   W     | 119  w
56   8     | 88   X     | 120  x
57   9     | 89   Y     | 121  y
58   :     | 90   Z     | 122  z
59   ;     | 91   [     | 123  {
60   <     | 92   \     | 124  |
61   =     | 93   ]     | 125  }
62   >     | 94   ^     | 126  ~
63   ?     | 95   _     | 127  DEL

প্রতিটি লাইনে ট্রেলিং স্পেস এবং একটি ট্রেলিং নিউলাইন অনুমোদিত are যেহেতু এটি চ্যালেঞ্জ, তাই আপনার জমা দেওয়া কোনও ইনপুট নিতে পারে না বা কোনও বাহ্যিক সংস্থান (যেমন কোনও ফাইল বা ওয়েব) অ্যাক্সেস করতে পারে না এবং আপনার লক্ষ্য এই পাঠ্যটিকে যতটা সম্ভব আউটপুট করার জন্য কোডটি সংকুচিত করা।

স্ট্যান্ডার্ড লুফোলগুলি প্রয়োগ হয় এবং বাইটের মধ্যে সংক্ষিপ্ত উত্তর। শুভ গল্ফিং!


3
আমার সেই ঠিক ASCII টেবিলের চিত্রটি আমার দেয়ালে আটকে আছে ... যাইহোক, লাইনগুলির একটি তালিকা ফেরত দেওয়া যেতে পারে?
ফ্লিপট্যাক

2
@ ফ্লিপট্যাক অবশ্যই আপনি পারেন। কেন আমি এর মতো পুরোপুরি যুক্তিসঙ্গত কিছুকে অনুমতি দেব না?
ডিজেএমসিএমহেম

10
আমি এটি দোপ বলব না - অন্যটির জন্য হেক্স মান, প্রিন্টেবলগুলির নাম প্রয়োজন এবং এটি একটি আলাদা টেবিল বিন্যাস। এটি দৃশ্যমান ASCII এ আটকে যায় এবং সমস্ত অ-মুদ্রণযোগ্যগুলির 3-বর্ণের কোড না চেয়ে গল্ফিয়ার কোডকে অনুমতি দেয়।
ফ্লিপট্যাক

@ ফ্লিপট্যাক এটিতে এখনও স্পেস এবং ডেল রয়েছে
সাইমন 16

2
@ গুরকা হ্যাঁ, তবে অন্যটির প্রতিটি কন্ট্রোল অক্ষর রয়েছে।
ফ্লিপট্যাক

উত্তর:


11

পাইথন 2, 185 183 175 159 বাইট

ফ্লিপট্যাকের জন্য 8 টি বাইট সংরক্ষণ করা হয়েছে!

পাইথনে গল্ফ করাতে এখনও বেশ নতুন।

for a in["Dec  Chr   | "*3,"-"*39]+["".join(["%-5d%-6s| "%(l,('Space',chr(l),'DEL')[(l>32)+(l>126)]) for l in(i,32+i,64+i)])for i in range(32,64)]:print a[:-5]

টেবিলের বডি তৈরি করতে নেস্টেড তালিকা বোঝার ব্যবহার করে।

Ungolfed:

lines =   \
  ["Dec  Chr   | "*3, "-"*39] +                    # first two lines
    ["".join(                                        # join 3 parts of each line
      ["%-5d%-6s| " % (l, ('Space',chr(l),'DEL')[(l>32)+(l>126)]) 
        for l in (i,32+i,64+i)]                      # generate 3 parts of a line
      )
      for i in range(32,64)]

for line in lines: print line[:-5]

পুরানো প্রচেষ্টা, 185 183 175 বাইট

print("Dec  Chr   | "*3)[:-5]+"\n"+"-"*34
a=lambda x:('Space',chr(x),'DEL')[(x>32)+(x>126)]
for l in range(32,64):print("%-5d%-6s| "*3%(l,a(l),l+32,a(l+32),l+64,a(l+64)))[:-5]

Ungolfed:

print ("Dec  Chr   | "*3)[:-5] + "\n" + "-"*34
def a(x):
    return "Space" if x==32 else "DEL" if x==127 else chr(x)
for line in range(32,64):
    print ("%-5d%-6s| "*3 % (line, a(line), line+32, a(line+32), 
      line+64, a(line+64))) [:-5]

আমি একটি স্পেস দেখতে পাচ্ছি l for l in (i, 32 + i, 64 + i)] `এর জন্য, একটি বাইট সংরক্ষণ করার জন্য সরানো যেতে পারে।
সর্বোচ্চ



5

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

f=n=>n?(n>>6?' | ':`
`)+n+(99<n?'  ':'   ')+(126<n?'DEL':String.fromCharCode(n)+'    '+f(n>95?n-63:n+32)):`${x='Dec  Chr   '}| ${x}| ${x}
${'-'.repeat(34)}
32   Space`+f(64)

console.log(f())


চমৎকার উত্তর! আপনি `${x='Dec Chr '}| ${x}| ${x}লাইন 2 বাই এর শেষে প্রতিস্থাপন করে আরও একটি বাইট সংরক্ষণ করতে পারেন(x='Dec Chr ')+(' |'+x)*2+`
লূক

@ L.Serné আমি ECMAScript এর এমন কোনও সংস্করণ জানি না যা *অপারেটরের সাথে স্ট্রিংটির পুনরাবৃত্তি করবে । বা আমি কি কোনওভাবে আপনার পরামর্শকে ভুল বুঝাব?
আর্নল্ড

উফফফ, আমার খারাপ। অজগর সমাধান এবং পরে জাভাস্ক্রিপ্ট গল্ফ চেষ্টা করার জন্য আপনি এটি পান।
লুক

5

ভি , 98, 96 , 94 বাইট

i32 | 64 | 9631ñÙl.l.ñÍä«/&   &    
ÎéiD@"
bsDELF 27kdH5lRSpaceÄÒ-Ä3RDec  Chr³ | Î35|D

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

শুধু সবে একশ অধীন squeaking। আমি পাইথকে মারতে পারি কিনা তা আমি দেখতে পাচ্ছি, তবে আমি কোনও প্রতিশ্রুতি দেব না।

এখানে একটি হ্যাক্সডাম্প:

00000000: 6933 3220 7c20 3634 207c 2039 361b 3331  i32 | 64 | 96.31
00000010: f1d9 016c 2e6c 2ef1 cde4 ab2f 2620 2020  ...l.l...../&   
00000020: 1616 2620 2020 200a cee9 6944 4022 0a62  ..&    ...iD@".b
00000030: 7344 454c 1b46 2016 3237 6b64 4835 6c52  sDEL.F .27kdH5lR
00000040: 5370 6163 651b c4d2 2dc4 3352 4465 6320  Space...-.3RDec 
00000050: 2043 6872 b320 7c20 1bce 3335 7c44        Chr. | ..35|D

এবং এটি কীভাবে কাজ করে তা এখানে:

i32 | 64 | 96<esc>      " Insert some starting text
31ñ          ñ          " 31 times:
   Ù                    "   Duplicate this line
    <C-a>               "   Increment the first number on this line
         l.             "   Increment the next number
           l.           "   Increment the next number

আকর্ষণীয় এটি এখানে পেতে। প্রথমে আমাকে একটি ভিম-ট্রিকটি ব্যাখ্যা করতে দিন। সন্নিবেশ মোডে থাকাকালীন নির্দিষ্ট কিছু অক্ষর sertedোকানো হয় (সমস্ত মুদ্রণযোগ্য ASCII- অক্ষর, উপরে বেশিরভাগ আনম্যাপ করা অক্ষর 0x7fএবং কয়েকটি অন্যান্য), তবে অন্যান্য অক্ষরগুলির একটি পার্শ্ব-প্রভাব রয়েছে have উদাহরণস্বরূপ, 0x1b( <esc>) স্বাভাবিক মোডে পালিয়ে যাবে। 0x01( <C-a>) সর্বশেষ sertedোকানো পাঠ্য ইত্যাদি পুনরায় সন্নিবেশ করিয়ে দেবে, কখনও কখনও, আমরা এই অক্ষরগুলিকে আক্ষরিকভাবে সন্নিবেশ করতে চাই। আক্ষরিক পালানোর অক্ষর সন্নিবেশ করতে, আপনাকে অবশ্যই টাইপ করতে হবে <C-v><esc>। এটি এমন সমস্ত চরিত্রের জন্য কাজ করে যার পার্শ্ব প্রতিক্রিয়া রয়েছে। সুতরাং মূলত, <C-v>স্ট্রিং লিটারালগুলির সাথে ভাষাগুলিতে ব্যাকস্ল্যাশের সমতুল্য যা আপনাকে স্ট্রিংয়ে কিছু অক্ষর থেকে বাঁচতে দেয়।

<C-v>সন্নিবেশ মোডের সাথে অন্য দরকারী কৌশলটি হ'ল এটি কোড-পয়েন্ট অনুসারে ডেসিমাল, হেক্সাডেসিমাল, অক্টাল বা হেক্সাডেসিমাল ইউনিকোডের মধ্যে অক্ষর সন্নিবেশ করতে ব্যবহার করা যেতে পারে । যেহেতু আমাদের কাছে ইতিমধ্যে কয়েকটি ASCII মানগুলির সাথে সামঞ্জস্যপূর্ণ এমন সংখ্যা রয়েছে, তাই আমাদের কেবল <C-v>সেই অক্ষরগুলির আগে একটি রাখা দরকার , এবং সংশ্লিষ্ট পাঠ্যটি ভিআইএম-কীস্ট্রোক হিসাবে চালানো দরকার। এটি একটি রেজেক্স কমান্ড, এবং "প্রতিটি লাইনে 'ড' x" কমান্ড দিয়ে অর্জন করা যেতে পারে। সুতরাং আমরা:

Í                       " Substitute globally:
 ä«                     "   One or more digits
   /                    " With:
    &                   "   The matched number + some spaces
        <C-v><C-v>&     "   A ctrl-v character, then the matched number again
                        "   Since ctrl-v is like a backslash, we need two to enter a literal ctrl-v character
Î                       " On every line:
 éi                     "   Insert an 'i'
   D                    "   Delete this line
    @"                  "   Run it as vim keystrokes

এই মুহুর্তে, বাফারটি দেখতে এমন দেখাচ্ছে

32         | 64   @     | 96   `    
33   !     | 65   A     | 97   a    
34   "     | 66   B     | 98   b    
35   #     | 67   C     | 99   c    
36   $     | 68   D     | 100   d    
37   %     | 69   E     | 101   e    
38   &     | 70   F     | 102   f    
39   '     | 71   G     | 103   g    
40   (     | 72   H     | 104   h    
41   )     | 73   I     | 105   i    
42   *     | 74   J     | 106   j    
43   +     | 75   K     | 107   k    
44   ,     | 76   L     | 108   l    
45   -     | 77   M     | 109   m    
46   .     | 78   N     | 110   n    
47   /     | 79   O     | 111   o    
48   0     | 80   P     | 112   p    
49   1     | 81   Q     | 113   q    
50   2     | 82   R     | 114   r    
51   3     | 83   S     | 115   s    
52   4     | 84   T     | 116   t    
53   5     | 85   U     | 117   u    
54   6     | 86   V     | 118   v    
55   7     | 87   W     | 119   w    
56   8     | 88   X     | 120   x    
57   9     | 89   Y     | 121   y    
58   :     | 90   Z     | 122   z    
59   ;     | 91   [     | 123   {    
60   <     | 92   \     | 124   |    
61   =     | 93   ]     | 125   }    
62   >     | 94   ^     | 126   ~    
63   ?     | 95   _     | 127       

এখন আমাদের কেবলমাত্র কিছু সাধারণ পরিষ্কার করা দরকার যা এই উত্তরের বেশিরভাগ বাইটের জন্য দায়ী

bsDEL<esc>              " Change the literal 0x7f character to "DEL"
          F <C-v>27kd   " Remove a space from the lines that have too many
H5l                     " Move to the first space character
   RSpace<esc>          " And replace it with "Space"
Ä                       " Duplicate this line
 Ò-                     " And replace it with '-'s
   Ä                    " Duplicate this line
    3R                  " And replace it with three copies of the following string:
      Dec  Chr³ | <esc> " 'Dec  Chr   | '

Î35|D                   " Remove all but the first 35 characters of each line

5

এফ #, 222 বাইট

let c,p=String.concat" | ",printfn"%s"
Seq.replicate 3"Dec  Chr  "|>c|>p
p(String.replicate 34"-")
for i=32 to 63 do[for j in[i;i+32;i+64]->sprintf"%-5d%-5s"j (match j with 32->"Space"|127->"DEL"|_->string(char j))]|>c|>p

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


আমি কি দয়া করে এর একটি নিরবচ্ছিন্ন সংস্করণ চাইতে পারি? আমি এফ # শেখার ক্ষেত্রে সত্যিই নতুন, এবং আপনি এটি কীভাবে করেছেন তা আমি সঠিকভাবে বুঝতে পছন্দ করব!
Ciaran_McCarthy

1
প্রথম লাইনটি একক-চরিত্রের নামগুলিতে দুটি ফাংশন আখ্যায়িত করে। এখন আপনি যদি ["ab"; "cd"] |> c |> pএটি "" "সাথে সম্মিলিত করেন অক্ষর এবং মুদ্রণগুলি যেমন "আব | সিডি" যা টেবিলটি মুদ্রণের জন্য প্রাথমিক ধারণা। বাকিগুলি মোটামুটি সোজা, কেবল যেখানেই সম্ভব হোয়াইটস্পেস এড়ানো।
আসিক

4

ডিসি , 167 বাইট

[[Space]nq]sp[[DEL]nq]sq[[ ]n]sc[Dec  Chr]dsen[   | ]dsfnlenlfnlen10P34[[-]n1-d0<a]dsax10P0[[32+dndZ2=c[  ]ndd32=pd127=qP[    ]n]dswx[ | ]nlwx[ | ]nlwx10P95-d32>b]dsbx

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

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

[[Space]nq]sp     # p is a macro that prints "Space" and then quits from the call one level up
[[DEL]nq]sq       # q is a macro that prints "DEL" and then quits from the call one level up
[[ ]n]sc          # c is a macro that prints a space
[Dec  Chr]dsen    # Save the string "Dec  Chr" in register e, and print it.
[   | ]dsfn       # Save the string "   | " in register f, and print it.
len               # Print "Dec  Chr" again.
lfn               # Print "   | " again.
len               # Print "Dec  Chr" again.
10P               # Print a newline.
34                # Push 34 on the stack.

[[-]n1-d0<a]dsa   # a is a macro that repeatedly prints "-" and decrements the top of the stack, while the top of the stack is positive.

x10P              # Execute macro a, followed by a newline. (This prints the line of hyphens.)

0                 # Push 0 on the stack.

[                 # Starting a large macro (which will be stored in register b) for printing the table row by row.

[32+dndZ2=c[  ]ndd32=pd127=qP[    ]n]dsw

                  # w is a macro which:
                        (1) adds 32 to the top of the stack;
                        (2) prints it as a number;
                        (3) uses Z to compute the number of characters the number required to print that number;
                        (4) if it required 2 characters to print the number, calls the macro c to print an extra space
                        (5) prints the string "Space" (for ASCII code 32) or the string "DEL" (for ASCII code 127) or the appropriate character, followed by the right number of spaces

x                 # Execute macro w to print an entry in column 1.
[ | ]n            # Print a column divider.
lwx               # Execute macro w to print an entry in column 2 (ASCII code 32 higher than the previous entry).
[ | ]n            # Print a column divider.
lwx               # Execute macro w to print an entry in column 3 (ASCII code 32 higher than the previous entry).

10P               # Print a newline.
95-               # Subtract 95 to adjust to go to the beginning of the next line.

d32>b             # If the top of stack is <= 32, execute macro b again, effectively looping to print all the rows of the table.

]dsb              # End the definition of the large macro, and store it in register b.

x                 # Execute the macro that's in b (with 0 at the top of the stack initially).

4

পার্ল, 120 বাইট

$,="| ";say+("Dec  Chr   ")x3;say"-"x32;say map{sprintf"%-5s%-6s",$_,$_-32?$_-127?chr:DEL:Space}$_,$_+32,$_+64for 32..63

-Eপতাকা সহ চালান :

perl -E '$,="| ";say+("Dec  Chr   ")x3;say"-"x32;say map{sprintf"%-5s%-6s",$_,$_-32?$_-127?chr:DEL:Space}$_,$_+32,$_+64for 32..63'

-২ বাইট @ জিবি ধন্যবাদ ।


আমি যদি একটু পার্ল বুঝতে পারি তবে সম্ভবত আপনি "% -3s" এর পরিবর্তে "% -5s" ব্যবহার করে 2 টি স্পেস কাটতে পারেন (ঘটনাক্রমে, আমি রুবিতে এটিই করি)
জিবি

3

সি, 179 বাইট

i;f(){for(;i++<37;)printf(i<4?"Dec  Chr%s":"-",i<3?"   | ":"\n");printf("\n32   Space | ");for(i=64;i<127;i+=i>95?-63:32)printf("%-5d%-6c%s",i,i,i>95?"\n":"| ");puts("127  DEL");}

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

সেমি-ungolfed:

i;
f() {
  for(;i++<37;) printf(i<4?"Dec  Chr%s":"-",i<3?"   | ":"\n");

  printf("\n32   Space | ");
  for(i=64;i<127;i+=i>95?-63:32) printf("%-5d%-6c%s",i,i,i>95?"\n":"| ");
  puts("127  DEL");
}


3

ভি , 151 150 148 136 135 130 129 125 বাইট

12 বাইট <C-v>g<C-a>পরিবর্তিত সংখ্যার জন্য ব্যবহার করার জন্য @ nmjcman101 ধন্যবাদ সংরক্ষণ করেছেline('.')

অতিরিক্ত স্পেস এবং পুনরায় সাজানো সামগ্রীগুলি সরাতে ÇÓ/dব্যবহার করে এবং শীর্ষস্থানীয় স্পেসগুলি সহ লাইনগুলি সরিয়ে দেওয়ার জন্য 2 ডি বাইট @ ডিজেএমসিমেহেমকে ধন্যবাদ রক্ষা করেছে

এই উত্তরটি @ nmjcman101 এর ভি উত্তর (যা ব্যবহার করে :set ve=all) এর সাথে প্রতিযোগিতায় রয়েছে । তবে এখন, আমি সেগুলি সরিয়ে ফেলার একটি উপায় খুঁজে পেয়েছি A ^[এবং কিছু বাইট সংরক্ষণ করেছি এবং আমরা একটি এমনকি বাইকাউন্টে আছি

iSpace 
¬!~Ó./&ò
iDELí^/31   
HlgGo| 63ÙkGld/Sp
$p/`
G$d/@
$p/64
G$d/S
$pÇÓ/d
/d
hdê/32
O34é-O!| !| !Ó!/Dec  Chr   

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

Hexdump:

00000000: 6953 7061 6365 200a 1bac 217e d32e 2f26  iSpace ...!~../&
00000010: f20a 6944 454c 1bed 5e2f 3331 2020 200a  ..iDEL..^/31   .
00000020: 1648 6c67 0147 6f7c 201b 3633 d96b 1647  .Hlg.Go| .63.k.G
00000030: 6c64 2f53 700a 2470 2f60 0a16 4724 642f  ld/Sp.$p/`..G$d/
00000040: 400a 2470 2f36 340a 1647 2464 2f53 0a24  @.$p/64..G$d/S.$
00000050: 70c7 d32f 640a 2f64 0a68 64ea 2f33 320a  p../d./d.hd./32.
00000060: 4f1b 3334 e92d 4f21 7c20 217c 2021 1bd3  O.34.-O!| !| !..
00000070: 212f 4465 6320 2043 6872 2020 20         !/Dec  Chr 

ব্যাখ্যা (অসম্পূর্ণ এবং পুরানো)

এখানে কৌশলটি হ'ল আমি ASCII কোড পয়েন্টগুলি তৈরি করতে লাইন নম্বরগুলি ব্যবহার করছি।

দ্রষ্টব্য: ^[হয় 0x1b, ^Vহয়C-v

প্রথমে আমরা সমস্ত অক্ষর তৈরি করি।

iSpace             " insert Space
^[¬!~              " insert every character between ! and ~

বর্তমান বাফারের মতো দেখতে

Space
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

এখন আমরা এই অক্ষরগুলির মধ্যে একটি নতুন লাইন সন্নিবেশ করি

     Ó./&ò         " insert a newline before every character (:s/./&\r/g)

32 SPACE ... 127 DELআপনার কোডের অংশটির প্রতিস্থাপন এখানেই রয়েছে : এটি অনলাইনে চেষ্টা করুন! এটি সেই ঝরঝরে জিনিসটি ব্যবহার করে যেখানে আপনি সংখ্যার g^A
গুচ্ছকে

@ nmjmcman101 হ্যাঁ, এটি .4.৪-এ যোগ করা হয়েছে s তবে কিছুটা হলেও সরকারীভাবে যোগ করা হয়েছে ৮. সাধারণ কমান্ডটি অনলাইনে
DJMcMayhem

উভয় ক্ষেত্রেই, আপনি একবার যে আপনি একটি কি করতে পারেন পেতে :set ve=allআপনি পাইপ সন্নিবেশ লেট সহজ এবং তারপর কার্সার স্থানে সরানো হবে কোন লেখা নেই, কপি এবং / আপনি যে সমস্ত স্থানে ছড়ানো ছাড়া প্রয়োজন পেস্ট A <esc>সর্বত্র
nmjcman101

@ nmjcman101 g^Aধন্যবাদ, এটি আমাকে 12 বাইট সংরক্ষণ করেছে :)
কৃতিক্সিত লিথোস

@ ডিজেএমসিএমহেম কোনও কারণে, আদর্শ ব্যবহার করে এবং তারপর সংখ্যা
বাড়ানো কোনও

3

ভি , 130 120 99 বাইট

সাব 100 ক্লাব। :se ve=allএটি করার সর্বোত্তম উপায় হ'ল আমি আর বিশ্বাস করি না। এটি একটি অতিরিক্ত ... 11 বাইট কেবল লেখার জন্য |! তবে এটাই আমার আছে।

আমি প্রায় ক্রিটিক্সি লুথোস উত্তরটির সাথে প্রতিযোগিতায় পোস্ট করছি কারওর :se ve=allকিছু এড়াতে ব্যবহার করে A <esc>। আমি নিশ্চিত নই যে উভয় পদ্ধতিই এখন আরও ভাল so সুতরাং আশা করি এটি উভয় পক্ষেই কিছুটা গল্ফকে অনুপ্রাণিত করতে পারে এবং কোন পদ্ধতিটি পিষ্টকে গ্রহণ করবে তা দেখুন।

আমি @ ডিজেএমসিমেহেম আমাদের উভয় প্যান্টকে লাথি মারতে চাইছি half

iSpace
¬!~Ó./&ò
iDELí^/31   
Hlg:se ve=all
12|êr|2ñ031j$x)PñHd)ÄÒ-Ä3RDec  Chr³ | /d
hdêÎ35|D

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

কৌতূহলীদের জন্য হেক্সডাম্প (আগ্রহী হলে আমি কেবল এটি একটি ভিএম-স্টাইলের লুকানো চরিত্রের ব্লকে পরিবর্তন করব)

00000000: 6953 7061 6365 0a1b ac21 7ed3 2e2f 26f2  iSpace...!~../&.
00000010: 0a69 4445 4c1b ed5e 2f33 3120 2020 0a16  .iDEL..^/31   ..
00000020: 486c 6701 3a73 6520 7665 3d61 6c6c 0a31  Hlg.:se ve=all.1
00000030: 327c 16ea 727c 32f1 3016 3331 6a24 7829  2|..r|2.0.31j$x)
00000040: 50f1 4864 29c4 d22d c433 5244 6563 2020  P.Hd)..-.3RDec  
00000050: 4368 72b3 207c 201b 2f64 0a68 64ea ce33  Chr. | ./d.hd..3
00000060: 357c 44                                  5|D

1
বৈশ্বিক কমান্ডটি বেশ কিছুটা হলেও সংক্ষিপ্ত করা যায়। একটির জন্য, ddযদি আপনি কেবল এটি করেন তবে তা অন্তর্ভুক্ত d। আপনি <M-s>যা করতে পারেন তা সবসময় \sরেজেজেসের সমতুল্য । সুতরাং আপনি এটি কমান পারে: ç^ó*/d। তবে আপনি যদি বিপরীতে গ্লোবাল কমান্ডটি স্যুইচ করেন তবে আপনি :g!প্রতিটি লাইন অন্বেষণের অক্ষরের সাথে মেলে না এমন জন্য অনুসন্ধান করতে পারেন । ÇÓ/dযা সমান:g!/\S/normal dd
ডিজেএমসিএমহেম

3

এডাব্লুকে , 200 বাইট

BEGIN{b="-----------";a="Dec  Chr   ";print a"|",a"|",a"\n-"b b b;for(a=31;a++<63;){printf"%-5d%-6s| %-5d%-6c| %-5d%-5s\n",a,a<33?"Space":sprintf("%c",a),a+32,a+32,a+64,a<63?sprintf("%c",a+64):"DEL"}}

বিন্যাসকৃত:

BEGIN {
  b="-----------"
  a="Dec  Chr   "
  print a"|",a"|",a"\n-"b b b
  for(a=31;a++<63;) {
    printf "%-5d%-6s| %-5d%-6c| %-5d%-5s\n",
      a,    a<33 ? "Space" : sprintf("%c", a),
      a+32, a+32,
      a+64, a<63 ? sprintf("%c", a+64) : "DEL"
  }
}

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


2

সি 188 বাইট

f(){i=31;printf("Dec Chr | Dec Chr | Dec Chr");printf("\n--------------------------");for(;i<63;i++)printf("\n%d%4c  | %d%4c  | %d%4c",(i+1),(i+1),(i+33),(i+33),(i+65),(i+65));puts("DEL");

সাধারণত এটির মতো দেখতে:

f()
{
    int  i=31;
    printf("Dec Chr | Dec Chr | Dec Chr");
    printf("\n--------------------------"); 
    for(;i<63;i++)  
      printf("\n%d%4c  | %d%4c  | %d%4c", (i+1),(i+1),(i+33),(i+33),  (i+65),(i+65));
    puts("DEL");
}

2

সি (249 বাইট)

স্পষ্টতার জন্য নিউলাইনগুলি যুক্ত হয়েছে।

#define L(s,e)for(i=s;i<e;++i)
#define P printf
main(i){L(0,3)P("Dec  Chr  %s",i<2?" | ":"\n");
L(0,34)P("-");P("\n");L(32,64){P("%-5d", i);
i==32?P("Space"):P("%-5c",i);
P(" | %-5d%-5c | %-5d ",i+32,i+32,i+64);
i==63?P("DEL"):P("%-5c",i+64);P("\n");}}

আপনি স্পষ্টভাবে করে কিছু বাইট সংরক্ষণ করতে পারবেন Pকরা printf(: যেমন এখানে দেখানো, repl.it/JBRD
Zachary

এবং আপনার চতুর্থ লাইনের স্থান সরিয়ে দিয়ে।
জ্যাকারি

2

জাভা, 434 422 321 বাইট

class A{public static void main(String[]a){
    int k=1,r,s=32;
    for(;k<4;k++)
        o("Dec   Chr  ",k);
    for(;k<37;k++)                                                                              
        o("-",k==36?3:4);
    for(k=r=s;!(k==64&&r==-63);r=k>95?-63:s,k+=r)
        o(k+"   "+((k>99)?"":" ")+(k==s?"Space":k==127?"DEL  ":((char)k+"    ")),k/s);
    }
    static void o(String s,int j){
        System.out.print(s+(j==4?"":j==3?"\n":"|"));
    }
}

ক্লাস এবং প্রধান পদ্ধতির ওভারহেড হওয়ায় জাভা সম্ভবত এটির জন্য সেরা ভাষা নয় ...

আপনি স্থিতিশীল ঘোষণার সাহায্যে মূল পদ্ধতিটি বাদ দিতে পারেন, আরও বাইট গণনা হ্রাস করে:

class A{
    static{...}

তবে এর ফলে একটি ত্রুটি হয় (অন্যথায় সফলভাবে চলার পরে):

Exception in thread "main" java.lang.NoSuchMethodException: A.main([Ljava.lang.String;)
    at java.lang.Class.getMethod(Class.java:1786)
    ...

বাইট গণনাটিতে নিউলাইনস বা ইন্ডেন্টেশন অন্তর্ভুক্ত নয়।


আমি তোমাদের পর জায়গা দরকার মনে করি না void main(){, এবং কেউই মধ্যে while(s.length()<5)এবং s+=" "। (যদি না আপনি এটি আপনার বাইট গণনায় গণনা করেন)। আর তুমি পরিবর্তন করে কয়েক বাইট সংরক্ষণ করতে পারবেন d="Dec",c="Chr"করার d=p("Dec"),c=p("Chr")এবং আপনার কল পরিবর্তন উপার্জন p(d)এবং p(c)করতে dএবং c
জ্যাকারি

434 সমস্ত অপ্রয়োজনীয় সাদা স্থান সরিয়ে দিচ্ছিল। আপনার পরামর্শটি এটিকে 425 এ নামিয়েছে Thanks ধন্যবাদ!
xirt

উত্তরে 434
ডাব্লু

সম্পন্ন. দ্রষ্টব্য: প্রোগ্রামটি উল্লেখযোগ্যভাবে পরিবর্তিত হয়েছে (আরও কমিয়েছে) সুতরাং উপরের মন্তব্যগুলি আর প্রাসঙ্গিক হতে পারে না
এক্সার্ট

2

Tcl , 233 বাইট

lassign {"Dec  Chr" "   | " 31} h S i
set H $h$S$h$S$h\n[string repe - 34]
proc p x {format %-5d%c $x $x}
time {set H "$H
[p [incr i]]  $S[p [expr $i+32]]  $S[p [expr $i+64]]"} 32
puts [regsub {\ {8}} [regsub \177 $H DEL] "   Space"]

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


আমি এটি চালিয়েছি এবং 32 উদাহরণস্বরূপ (এর পরিবর্তে '' ' Space), এবং 33!(এর মধ্যে 33 এবং এর মধ্যে কোনও স্থান নেই !)।
NoOneIs এখানে

@ সিওনরহিনো: আপনি স্পষ্টভাবে কোডের দিকে মনোযোগ দিচ্ছেন না। আমি এখানে লিখিত কোডটি আরও বেশি গল্ফ করার চেষ্টার পরে সংশোধন করেছি, তবে আমি এখনও সফল হতে পারি নি। আমি এখনই পৃষ্ঠায় গিয়েছিলাম এবং আমার ব্যর্থ প্রচেষ্টা সম্পর্কে মন্তব্য করেছি এবং এখান থেকে কোডটি পুনরায় পোস্ট করেছি; আপনি যদি এখন সেখানে যান, আপনি ঠিক ঠিক সমান কোডটি দেখতে পাবেন এবং আপনি এটি সঠিকভাবে প্রিন্ট করতে দেখবেন!
সার্জিওল

আমি দুঃখিত, আমি লিঙ্কটিতে আপনার সম্পাদনাটি দেখতে পেলাম না। আমি ধরে নিয়েছি যে কোডটি এখানে আপনি পোস্ট করেছিলেন তার মতোই।
NoOneIs এখানে

কোনও সমস্যা নেই, এটি আমার দোষ ছিল
সার্জিওল

@ সিউইনহিনো: আমি এটি অর্জন করেছি! আমি নিজেকে ছাপিয়ে গেলাম!
সার্জিওল

2

আর , 235 228 221 212 বাইট

y=apply(rbind(rep("Dec  Chr  ",3),1,matrix(sapply(1:96,function(i)paste(i+31,rep(" ",i<69),"if"(i<2,"Space","if"(i>95,"DEL",intToUtf8(c(i+31,rep(32,4))))))),nrow=32)),1,paste,collapse=" | ")
y[2]=strrep("-",34)
y

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

আমি সত্যিই 200 বাইট অধীনে পাওয়া কঠিন চেষ্টা করেছিলেন কিন্তু এই pasteএবং collapseআমাকে হত্যা করা হয়। লাইনের একটি তালিকা ফেরত দেয়।


1

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

a="Dec  Chr   | ".repeat(2)+"Dec  Chr\n"+"-".repeat(34);for(b=32;64>b;b++)a+="\n"+b+"   "+(32==b?"Space  ":String.fromCharCode(b)+"      ")+"| "+(b+32)+"   "+String.fromCharCode(b+32)+"     | "+(b+64)+(35<b?"  ":"   ")+(63==b?"DEL":String.fromCharCode(b+64))

console.log(a)

1

পাওয়ারশেল , 159 বাইট

,'Dec  Chr'*3-join'   | '
'-'*34
32..63|%{($_,($_+32),($_+64)|%{"$_".PadRight(5)+"$(([char]$_,('Space','DEL')[$_-ne32])[$_-in32,127])".padRight(5)})-join' | '}

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

প্রথম দুটি লাইন কেবল আক্ষরিক স্ট্রিং তৈরি করছে এবং সেগুলি পাইপলাইনে রেখে যাচ্ছে। প্রথমে ,একটি অ্যারে তৈরি করতে কমা অপারেটর ব্যবহার করে এবং তারপরে -joinশিরোনামগুলি তৈরি করতে একত্রে অ্যারে তৈরি করা হয়। দ্বিতীয়টি হ'ল একটি সরল স্ট্রিংয়ের গুণ।

তৃতীয় লাইনটি উপর loops 32..63এবং প্রতিটি পুনরাবৃত্তির তিন মান পাঠায় $_, ($_+32)এবং ($_+64)ইনার লুপ মধ্যে। অভ্যন্তরীণ লুপটি PadRightমানটি করে ( 5অক্ষরগুলিতে প্যাডে উপযুক্ত স্থানগুলি যুক্ত করে )। এরপরে +একটি নেস্টেড সিউডো-টের্নারি ফলাফলের সাথে স্ট্রিং সংমিশ্রিত হয় ( )[ ]। সিউডো-টের্নারি হয় সেই charসংখ্যার উপস্থাপনা বা অন্যথায় Spaceবা DELএটির উপযুক্ত মান নির্বাচন করে। আবার, আমরা PadRightউপযুক্ত অক্ষর।

যারা তিন স্ট্রিং (উদাহরণস্বরূপ, 32 Space, 64 @, 96 `) ডান বন্ধনী মধ্যে encapsulated এবং করছে -joinএকটি একক স্ট্রিং মধ্যে কলাম চিহ্নিতকারী সঙ্গে ed। এই 32 টি স্ট্রিংগুলির প্রত্যেকটি তারপরে পাইপলাইনে রেখে দেওয়া হয়। মৃত্যুদন্ডের শেষে, একটি অন্তর্নিহিত Write-Outputপাইপলাইনে থাকা উপাদানগুলির মধ্যে একটি নতুন লাইন সন্নিবেশ করায় তাই আমরা তা নিখরচায় পাই।


1

পার্ল, 165 155 বাইট

$s='Dec  Chr   ';$_=join"\n",("$s| $s| $s","-"x34,map{join"| ",map{sprintf'%1$-5d%1$-6c',$_}($_,$_+32,$_+64)}32..63);s/ {8}/   Space/;s/\x7f.*/DEL\n/;print

1

পাইথন 2, 1564 218 বাইট

আমার প্রথম গল্ফ, স্পষ্টত ভুলের জন্য দুঃখিত

print("Dec  Chr   | "*3)[:-2]+"\n"+"-"*34+"\n32   Space | 64   @     | 96   `"
for n in range(33,63):print"| ".join([str(n+x).ljust(5)+chr(n+x).ljust(6)for x in [0,32,64]])
print"63   ?     | 95   _     | 127  DEL"

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

যদি আপনি ভাবছেন তবে প্রথম সংস্করণটি বেস 64 এনকোডড স্ট্রিং ছিল।


@ ফ্লিপট্যাক এটিকে একটি আসল সমাধানে পরিবর্তন করেছে
sagiksp

অপ্রত্যাশিত সাদা স্থান ljust(6) for
ইয়াতসি

অন্য এ x in [। এবং ভিতরে আইআরসি স্কোয়ার বন্ধনীগুলি joinমুছতে পারে।
Yytsi

1

05AB1E , 82 76 বাইট

žQSDÇƵQ¸«.Bs𔇲”:"DEL"¸«.B)øvyð2×ý})3äøvy… | ©ý}®”†…  Chr  ÿ”3ר¨'-34×.Á.Á»

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

এখনও গল্ফিং, এটি অনেক উন্নতি করা যেতে পারে।


žQSDÇƵQ¸«.Bs𔇲”:"DEL"¸«.B)ø পাঠ্য সমতুল্য সহ প্যাডযুক্ত সংখ্যাগুলি পুশ করে:

[['32 ', 'Space'], ['33 ', '!    '], ['34 ', '"    '], ['35 ', '#    '], ['36 ', '$    '], ['37 ', '%    '], ['38 ', '&    '], ['39 ', "'    "], ['40 ', '(    '], ['41 ', ')    '], ['42 ', '*    '], ['43 ', '+    '], ['44 ', ',    '], ['45 ', '-    '], ['46 ', '.    '], ['47 ', '/    '], ['48 ', '0    '], ['49 ', '1    '], ['50 ', '2    '], ['51 ', '3    '], ['52 ', '4    '], ['53 ', '5    '], ['54 ', '6    '], ['55 ', '7    '], ['56 ', '8    '], ['57 ', '9    '], ['58 ', ':    '], ['59 ', ';    '], ['60 ', '<    '], ['61 ', '=    '], ['62 ', '>    '], ['63 ', '?    '], ['64 ', '@    '], ['65 ', 'A    '], ['66 ', 'B    '], ['67 ', 'C    '], ['68 ', 'D    '], ['69 ', 'E    '], ['70 ', 'F    '], ['71 ', 'G    '], ['72 ', 'H    '], ['73 ', 'I    '], ['74 ', 'J    '], ['75 ', 'K    '], ['76 ', 'L    '], ['77 ', 'M    '], ['78 ', 'N    '], ['79 ', 'O    '], ['80 ', 'P    '], ['81 ', 'Q    '], ['82 ', 'R    '], ['83 ', 'S    '], ['84 ', 'T    '], ['85 ', 'U    '], ['86 ', 'V    '], ['87 ', 'W    '], ['88 ', 'X    '], ['89 ', 'Y    '], ['90 ', 'Z    '], ['91 ', '[    '], ['92 ', '\\    '], ['93 ', ']    '], ['94 ', '^    '], ['95 ', '_    '], ['96 ', '`    '], ['97 ', 'a    '], ['98 ', 'b    '], ['99 ', 'c    '], ['100', 'd    '], ['101', 'e    '], ['102', 'f    '], ['103', 'g    '], ['104', 'h    '], ['105', 'i    '], ['106', 'j    '], ['107', 'k    '], ['108', 'l    '], ['109', 'm    '], ['110', 'n    '], ['111', 'o    '], ['112', 'p    '], ['113', 'q    '], ['114', 'r    '], ['115', 's    '], ['116', 't    '], ['117', 'u    '], ['118', 'v    '], ['119', 'w    '], ['120', 'x    '], ['121', 'y    '], ['122', 'z    '], ['123', '{    '], ['124', '|    '], ['125', '}    '], ['126', '~    '], ['127', 'DEL  ']]

vyð2×ý})3äøvy… | ©ý} তাদের একসাথে টেবিলে যোগ দেয়:

['32   Space | 64   @     | 96   `    ', '33   !     | 65   A     | 97   a    ', '34   "     | 66   B     | 98   b    ', '35   #     | 67   C     | 99   c    ', '36   $     | 68   D     | 100  d    ', '37   %     | 69   E     | 101  e    ', '38   &     | 70   F     | 102  f    ', "39   '     | 71   G     | 103  g    ", '40   (     | 72   H     | 104  h    ', '41   )     | 73   I     | 105  i    ', '42   *     | 74   J     | 106  j    ', '43   +     | 75   K     | 107  k    ', '44   ,     | 76   L     | 108  l    ', '45   -     | 77   M     | 109  m    ', '46   .     | 78   N     | 110  n    ', '47   /     | 79   O     | 111  o    ', '48   0     | 80   P     | 112  p    ', '49   1     | 81   Q     | 113  q    ', '50   2     | 82   R     | 114  r    ', '51   3     | 83   S     | 115  s    ', '52   4     | 84   T     | 116  t    ', '53   5     | 85   U     | 117  u    ', '54   6     | 86   V     | 118  v    ', '55   7     | 87   W     | 119  w    ', '56   8     | 88   X     | 120  x    ', '57   9     | 89   Y     | 121  y    ', '58   :     | 90   Z     | 122  z    ', '59   ;     | 91   [     | 123  {    ', '60   <     | 92   \\     | 124  |    ', '61   =     | 93   ]     | 125  }    ', '62   >     | 94   ^     | 126  ~    ', '63   ?     | 95   _     | 127  DEL  ']

®”†… Chr ÿ”3ר¨'-34×.Á.Á» টেবিলের শিরোনামের অংশটি যত্ন করে:

Dec  Chr   | Dec  Chr   | Dec  Chr   
----------------------------------
32   Space | 64   @     | 96   `    
33   !     | 65   A     | 97   a    
34   "     | 66   B     | 98   b    
35   #     | 67   C     | 99   c    
36   $     | 68   D     | 100  d    
37   %     | 69   E     | 101  e    
38   &     | 70   F     | 102  f    
39   '     | 71   G     | 103  g    
40   (     | 72   H     | 104  h    
41   )     | 73   I     | 105  i    
42   *     | 74   J     | 106  j    
43   +     | 75   K     | 107  k    
44   ,     | 76   L     | 108  l    
45   -     | 77   M     | 109  m    
46   .     | 78   N     | 110  n    
47   /     | 79   O     | 111  o    
48   0     | 80   P     | 112  p    
49   1     | 81   Q     | 113  q    
50   2     | 82   R     | 114  r    
51   3     | 83   S     | 115  s    
52   4     | 84   T     | 116  t    
53   5     | 85   U     | 117  u    
54   6     | 86   V     | 118  v    
55   7     | 87   W     | 119  w    
56   8     | 88   X     | 120  x    
57   9     | 89   Y     | 121  y    
58   :     | 90   Z     | 122  z    
59   ;     | 91   [     | 123  {    
60   <     | 92   \     | 124  |    
61   =     | 93   ]     | 125  }    
62   >     | 94   ^     | 126  ~    
63   ?     | 95   _     | 127  DEL  

1

পিএইচপি, 163 149 147 বাইট

<?=($p=str_pad)(D,31,"ec Chr   | D"),$p("
",32,"-");whhile($i<96)printf("%s%-4d%-6s",$i%3?"| ":"
",$o=$i%3*32+32+$i/3,$i++?$i<96?chr($o):DEL:Space);

ভাঙ্গন

                        # print header
<?=($p=str_pad)(D,31,"ec Chr   | D"),$p("\n",32,"-");
while($i<96)            # loop $i from 0 to 96
    printf("%s%-4d%-6s",    # print formatted:
                            # string, 4 space decimal leftbound, 6 space string leftbound
        $i%3?"| ":"\n",                 # linebreak for 1st column, pipe+space else
        $o=$i%3*32+32+$i/3,             # ($i mapped to) ASCII value
        $i++?$i<96?chr($o):DEL:Space    # character
    );

%-Nরাইটবাউন্ড সংখ্যা এবং অক্ষর সংরক্ষণ করতে পারে যে বাইট মূল্য ব্যবহার করে।


একই বাইট গণনা সহ আমার মতে আরও ভাল দেখাচ্ছে এটি অনলাইনে চেষ্টা করুন!
জার্গ হালসারম্যান


0

টি-এসকিউএল, 242 বাইট

DECLARE @ INT=32PRINT'Dec  Chr   | Dec  Chr   | Dec  Chr
'+REPLICATE('-',34)L:PRINT CONCAT(@,'   ',IIF(@=32,'Space | ',CHAR(@)+'     | '),@+32,'   ',CHAR(@+32),'     | ',@+64,SPACE(5-LEN(@+64)),IIF(@=63,'DEL',CHAR(@+64)))SET @+=1IF @<64GOTO L

বিন্যাসকৃত:

DECLARE @ INT=32
PRINT'Dec  Chr   | Dec  Chr   | Dec  Chr
' + REPLICATE('-',34)
L:
    PRINT CONCAT(@,'   ',IIF(@=32,'Space | ',CHAR(@)+'     | ')
                ,@+32,'   ',CHAR(@+32),'     | ',
                 @+64,SPACE(5-LEN(@+64)),IIF(@=63,'DEL',CHAR(@+64)))
    SET @+=1
IF @<64 GOTO L

অন্যান্য ভেরিয়েবলের সাথে বিভিন্ন সাধারণ স্ট্রিং প্রতিস্থাপন সহ কয়েকটি বৈকল্পিকের চেষ্টা করেছি, তবে এটি আমার পাওয়া সংক্ষিপ্ততম সংস্করণ।



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