ASCII- আর্ট পাঠ পড়ুন


34

গল্ফ আমাকে অনুপ্রাণিত করে একটি এএসসিআইআই বর্ণমালা , যার মধ্যে এই চ্যালেঞ্জটি (প্রায়) সরাসরি বিপরীত।


টাস্ক:

ASCII- আর্ট পাঠ্যের একটি স্ট্রিং নিন এবং নিয়মিত ASCII পাঠ্য হিসাবে পাঠ্যের সামগ্রীটিকে আউটপুট দিন।


ইনপুট:

ASCII- শিল্প পাঠ্যের স্ট্রিং।

ইনপুটটিতে কেবলমাত্র ASCII চরিত্র #, স্পেস এবং 4 বা 5 টি নতুন লাইন অন্তর্ভুক্ত থাকবে (একটি পেছনের নতুন লাইন alচ্ছিক)। সমস্ত লাইন একই দৈর্ঘ্য আছে। (এটি হ'ল শেষের ASCII- আর্ট লেটারটি পেছনের জায়গাগুলির সাথে প্যাড করা হয়েছে)) আপনি #যদি চান তবে ইনপুটটির পরিবর্তে অন্য কিছু মুদ্রণযোগ্য ASCII অক্ষর ব্যবহার করতে পারেন ।

A-Zইনপুটটিতে ASCII- আর্ট অক্ষর এবং ASCII- আর্ট স্পেস (হোয়াইট স্পেসের একটি 5x5 ব্লক) থাকবে। কোনও বিরামচিহ্ন নেই। এএসসিআইআই-আর্ট পাঠ্যের একটি মাত্র লাইন (5 আসল লাইন) রয়েছে। এখানে কোনও অনুসরণযোগ্য বা শীর্ষস্থানীয় এএসসিআইআই-আর্ট স্পেস থাকবে না বা সংলগ্ন এএসসিআইআই-আর্ট স্পেস থাকবে না।

বর্ণের আকার 5x5 অক্ষর। প্রতিটি বর্ণের মধ্যে একটি 1x5 স্থান রয়েছে। শব্দের মধ্যে স্থান হ'ল হোয়াইটস্পেসের 5x5 ব্লক (প্রতিটি দিকে + 1x5 স্পেস, কারণ এটি কেবল অন্য একটি অক্ষর)। শেষে বা শুরুতে কোনও 1x5 স্থান থাকবে না কেবল কেবল ASCII- আর্ট অক্ষরের মধ্যে।


আউটপুট:

স্ট্রিংটিতে ASCII অক্ষর A-Z+ স্পেস হিসাবে পাঠ্যটি রয়েছে। আউটপুট ছোট হাতের মধ্যেও থাকতে পারে, যদি এটি আপনার সমাধানের পক্ষে কোনওভাবে সহজ হয়। মিশ্র কেস অনুমোদিত।


ASCII- শিল্প চিঠিগুলি:

 ###  ####   ###  ####  ##### #####  ###  #   # ##### ##### #   # #     #   #
#   # #   # #   # #   # #     #     #     #   #   #     #   #  #  #     ## ##
##### ####  #     #   # ####  ####  #  ## #####   #     #   ###   #     # # #
#   # #   # #   # #   # #     #     #   # #   #   #   # #   #  #  #     #   #
#   # ####   ###  ####  ##### #      ###  #   # ##### ###   #   # ##### #   #

#   #  ###  ####   ###  ####   ###  ##### #   # #   # #   # #   # #   # #####
##  # #   # #   # #   # #   # #       #   #   # #   # #   #  # #   # #     # 
# # # #   # ####  #   # ####   ###    #   #   #  # #  # # #   #     #     #  
#  ## #   # #     #  #  #   #     #   #   #   #  # #  ## ##  # #    #    #   
#   #  ###  #      ## # #   #  ###    #    ###    #   #   # #   #   #   #####

স্থান:

     |
     | A 5x5 square of spaces.
     | (Padded with |s to make it appear in this post.)
     |
     |

উদাহরণ:

ইনপুট:

#   # ##### #     #      ###        #   #  ###  ####  #     #### 
#   # #     #     #     #   #       #   # #   # #   # #     #   #
##### ####  #     #     #   #       # # # #   # ####  #     #   #
#   # #     #     #     #   #       ## ## #   # #   # #     #   #
#   # ##### ##### #####  ###        #   #  ###  #   # ##### #### 

আউটপুট: HELLO WORLD

ইনপুট:

 ###   ###   ###  ##### #####
#   # #     #   #   #     #  
#####  ###  #       #     #  
#   #     # #   #   #     #  
#   #  ###   ###  ##### #####

আউটপুট: ASCII

ইনপুট:

####  ####   ###   ### 
#   # #   # #   # #    
####  ####  #     #  ##
#     #     #   # #   #
#     #      ###   ### 

আউটপুট: PPCG


এটি , তাই বাইটের মধ্যে সংক্ষিপ্ত উত্তর ins


10
আমি ভাবছি এর সমাধানটিতে হ্যাশ ফাংশনটি কিছুটা জড়িত থাকতে পারে ...
নিল

6
আমার কাছ থেকে অনুগ্রহ করে যদি আপনি এটি কোনও চিত্রতে ইনপুট রূপান্তর করে এবং ইমেজ প্রসেসিং ব্যবহার করে এটি সমাধান করেন! (সমাধান অবশ্যই অবশ্যই গল্ফ করা উচিত)
স্টিভি গ্রিফিন

3
যদি এটি কারওর সাহায্যে হয়: হয় দ্বিতীয় সারির, চতুর্থ সারিতে বা বর্ণের মধ্য কলামটি প্রাসঙ্গিক তথ্য না হারিয়ে ফেলে দেওয়া যেতে পারে।
মার্টিন এন্ডার

1
নিবন্ধন করুন আমি মনে করি না, কারণ এটি খুব মানব-পাঠযোগ্য ASCII- শিল্প পাঠ্য হবে না।
স্টেডিবক্স

1
@ জোনাথান অ্যালান আমার ধারণা, এটিও ঠিক হবে।
স্টেডিবক্স

উত্তর:


13

জেলি ,  50 44  42 বাইট

ỴZ;6/UOḂḅ7‘ị“¥ŒƲVĊ⁾|W£⁼³ƭÇuʋụzḢĖ0ḢẆẠØsĠỌỊ»

এটি অনলাইন চেষ্টা করুন! (আর্গুমেন্টটি শীর্ষস্থানীয় নিউলাইনটির প্রয়োজন নেই বলে মনে রাখবেন, তবে যেহেতু বহির্মুখী স্ট্রিংকে আরও মানব-পঠনযোগ্য করে তোলার জন্য আমি একটিকে অন্তর্ভুক্ত করেছি)

ফলাফলগুলি মিশ্র কেস ( কোনও মন্তব্যে ওপি দ্বারা অনুমোদিত )।

কিভাবে?

নতুন লাইনে বিভক্ত হয়, স্থানান্তরিত হয় এবং অক্ষরের উপস্থাপনা পেতে একসাথে (অবধি) ছয়টির সাব-স্লাইসে যোগ দেয় এবং প্রতিটি বিপরীত হয় (দৈর্ঘ্যের চূড়ান্ত অক্ষরের জন্য পরবর্তী ভিত্তিক রূপান্তরকে দৈর্ঘ্যের 30 এর অন্যান্য সকলের সাথে সমান করে)। তারপর মানচিত্র '#'এবং ' 'এক এবং শুন্যতে যথাক্রমে সত্য যে ব্যবহার '#'করার সময় একটি বিজোড় পূরণবাচক হয়েছে ' 'একটি এমনকি এক হয়েছে। প্রতিটি পড়তে যেমন এটি একটি বেস সাত নম্বর। কার্যকরভাবে প্রতিটিটির মডিউল 81 লাগে (27 সম্ভাব্য ক্ষেত্রে 27 টির জন্য অনন্য মান উত্পন্ন করতে পারে) এবং অবশেষে সঠিক "" ম্যাজিক স্ট্রিং "তে সূচকগুলি সঠিক অক্ষরের সাথে সঠিক অক্ষরের সাথে সূচিত হয় (মডিউলো সূচীকরণটি দৈর্ঘ্যের একটি ম্যাজিক স্ট্রিংয়ের সাথে সংরক্ষণের জন্য ব্যবহৃত হয়) 2 বাইট)।

এখানে ম্যাজিক স্ট্রিংটি আমি তৈরি করেছি (ম্যাচটি-সংবেদনশীল) রিজেক্স প্যাটার্নটি এটির সাথে মিলানোর জন্য প্রয়োজনীয় (আমি এটির দৈর্ঘ্য তৈরি করতে "এড" যুক্ত করেছি):

 ' affectedly Azerbaijan rewaxed naganas jiujitsudankly pase UVB freqHaarlemcoacted'
'^ ..f...e.....z......a..r.w.x...n.g......iuj....d..kly.p.s...vb....qh.....m.o.ct.*'

এটি সংকুচিত হতে পারে, জেলির অভিধানে শব্দগুলির মতো এগারটি সাব-স্লাইস সন্ধান করুন (যার বেশিরভাগই শীর্ষস্থানীয় স্পেস ডিফল্ট ব্যবহার করে):

' affectedly Azerbaijan rewaxed naganas jiujitsudankly pase UVB freqHaarlemcoacted'
 ^          ^          ^       ^       ^        ^     ^    ^   ^    ^      ^

যার ফলস্বরূপ জেলি সংকুচিত স্ট্রিংয়ের ফলস্বরূপ, “¥ŒƲVĊ⁾|W£⁼³ƭÇuʋụzḢĖ0ḢẆẠØsĠỌỊ»

কোডের বাকী অংশগুলি নিম্নলিখিত হিসাবে কাজ করে:

ỴZ;6/UOḂḅ7‘ị“...» - Main link: multi-line string, s   e.g. HI as the #s and spaces
Ỵ                 - split on new lines                     ["#   # #####","#   #   #  ","#####   #  ","#   #   #  ","#   # #####"] (each is actually a list)
 Z                - transpose                              ["#####","  #  ","  #  ","  #  ","#####","     ","#   #","#   #","#####","#   #","#   #"] (each is actually a list)
   6/             - six-wise reduce by
  ;               -     concatenation                      ["#####  #    #    #  #####     ","#   ##   #######   ##   #"] (each is actually a list)
     U            - upend (reverse each)                   ["     #####  #    #    #  #####","#   ##   #######   ##   #"] (each is actually a list)
                  -     note: all except the last will be length 30 and like "     ...", which will become [0,0,0,0,0,...], while the last will be length 25 without those five leading zeros.
      O           - cast to ordinals ('#' -> 35, ' '-> 32) [[32,32,...],[35,32,...]]
       Ḃ          - modulo 2 ('#' -> 1, ' ' -> 0)          [000001111100100001000010011111, 1000110001111111000110001] (each is actually a list)
        ḅ7        - convert from base 7 (vectorises)       [223498370543967315553, 191672428080864454753] (these are now integers)
          ‘       - increment                              [223498370543967315554, 191672428080864454754]
                  -  (modulo 81 these would be [68, 41])
           ị      - index into (modulo & 1-indexed):                        
            “...» -     the "magic string" described above ' affectedly Azerbaijan rewaxed naganas jiujitsudankly pase UVB freqHaarlemcoacted'
                                                           "Hi"                                   41^                        68^

14

পাইথন 2 , 405 335 234 182 171 বাইট

lambda s,j=''.join:j(' QPVXU_O__FBLK_JMD_CSYZWIENH_AG___TR'[int(j(`ord(y)%2`for y in j(s.split('\n')[x][i:i+5]for x in range(5))),2)%13836%37]for i in range(0,len(s)/5,6))

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


শেষ পর্যন্ত জেএসের চেয়ে খাটো


মডুলাসের চতুর ব্যবহার, তবে আমি ভাবতে সাহায্য করতে পারি না যে করার একটি উপায় অবশ্যই রয়েছে: [0,2,3,7,...]এবং ' UBGOTA...এটি ভাগ করুন এবং কোনও ধরণের ম্যাপিং ব্যবহার করুন। 0:' ',2:'U',3:'V'...দেখতে অনেক দীর্ঘ ,,, অনেক আছে :'',। (আমি জানি আপনার মূল পোস্টে একই রকম কিছু ছিল তবে খুব দীর্ঘ সংখ্যার সাথে
স্টিভি গ্রিফিন

1
@ স্টিভি গ্রিফিন এখন এটি আরও ভাল
ovs

11

জাভাস্ক্রিপ্ট (ES6), 204 186 184 182 বাইট

সংরক্ষিত 18 বাইটের জন্য নীল
সেভড
2 বাইটের ধন্যবাদ ইটিএইচ প্রডাকশনসকে বাঁচিয়েছে 2 বাইট ইয়ারর্যান্ডকে ধন্যবাদ

ভাঙ্গন:

  • 42-বাইট দেখার সারণী
  • 162 144 142 140 বাইট কোড
s=>(a=s.split`
`)[0].replace(/.{6}/g,(_,n)=>' H_JM__WDCSORLU___QKG_P_AFT_N_EI_XBV____YZ'[[0,1,2,4].reduce((p,r,i)=>p+='0b'+a[r].substr(n,5).replace(/./g,c=>1^1-c)<<i*6,0)%178%69%43])

ডেমো


1
আপনি অবশ্যই এবং এর (a=s.split`\n`)[0].replace(/......?/g,সাথে ব্যবহার না করে পুরো গোছা বাইট সংরক্ষণ করতে পারেন । substr(n,5)join
নিল

আমি মনে করি আপনি এর সাথে একটি বাইট সংরক্ষণ করতে পারবেন c=>0|c>' 'এবং এর সাথে অন্য একটিp+='0b'+...
ETH প্রোডাকশনগুলি

চ্যালেঞ্জের মন্তব্য বিভাগে @ স্টেডিবক্স দ্বারা উল্লিখিত হিসাবে, \nইনপুট নেওয়া অবৈধ। তবে আমি মনে করি আপনি splitপদ্ধতিতে যেমন করছেন ঠিক তেমনভাবে আপনি ইনপুট হিসাবে প্রকৃত নিউলাইন সহ টেম্পলেটকে আক্ষরিক ব্যবহার করতে পারেন ।
অর্জুন

1
@ ডবিফ্রি-এলফ আমি প্রকৃতপক্ষে একটি টেম্পলেট ব্যবহার করতে পারি - যা ঘটনাক্রমে নেতৃস্থানীয় উক্তিটির কারণে পাঠযোগ্যতার ক্ষতি করতে পারে। তবে ফাংশনে যাওয়ার আগে ইনপুট ডেটা ফর্ম্যাট করার পথে কোনও বাধা যুক্ত করা বিষয়টির বাইরে, আইএমএইচও (যতক্ষণ না ইনপুটটির আসল সামগ্রী বৈধ থাকে)।
আর্নাউল্ড

1
@ ডবিফ্রি-এলফ আমার ভয়টি আমার মন্তব্যটি কিছুটা অস্পষ্ট ছিল এবং আমি যে প্রশ্নের উত্তর দিচ্ছিলাম তা আমি কিছুটা ভুল বুঝতে পেরেছি। \nকোডের কল সাইটে স্ট্রিং আক্ষরিক ব্যবহার করা ঠিক আছে, কারণ ফাংশনটিতে স্থান দেওয়া প্রকৃত স্ট্রিংটিতে কেবলমাত্র নতুন লাইন অক্ষর অন্তর্ভুক্ত রয়েছে, \` and n . Passing a string that contains \ both উভয়ই নয় এবং nপৃথক সংলগ্ন অক্ষর হিসাবে ঠিক হবে না।
স্টেডিবক্স

9

বাশ + চিত্রম্যাগিক + টেসারেক্ট , 161 বাইট

আমি @ স্টিও-গ্রিফিনের প্রস্তাবিত পদ্ধতির চেষ্টা করতে চেয়েছিলাম এবং ব্যাশ + ইমেজম্যাগিক (একটি স্ট্রিংকে একটি চিত্রে রূপান্তর করতে) এবং টেসারেট (ওসিআর করার জন্য) গিয়েছিলাম। এখানে আমার কোড, যা 'হেল্লো ওয়ার্ল্ড' টেস্টকেসের জন্য কাজ করে তবে অন্যটি ব্যর্থ করে। প্যারামিটারগুলিতে কিছু টুইট করা (ফন্ট, ফন্টের আকার, কর্নিং, স্পেসিং) সহায়তা করে।

convert -font Courier-Bold -pointsize 8 -interline-spacing -3 -kerning -3 label:"$(</dev/stdin)" -bordercolor White -border 5%x20% png:- | tesseract stdin stdout

কমান্ডটি চালানোর পরে কেবল ascii আর্টকে কমান্ডলাইনে কপি-পেস্ট করুন। Input d টিপে আপনার ইনপুটটি শেষ করুন।

পরীক্ষার কেসগুলির জন্য বর্তমান আউটপুট:

  • হেলো ওয়ার্ল্ড: হেলো ওয়ার্ল্ড
  • এএসসিআইআই: এইচ 5511
  • পিপিসিজি: পিপিওজি

6

স্কালা, 184 181 বাইট

hashCode:) এর ভিত্তিতে একটি ম্যাজিক স্ট্রিং + মডুলো সমাধান

(a:String)=>a.split("\n").map(_.grouped(6)map(_.take(5))toArray).transpose.map(l=>"Q__WLUY_XOI_ZN_GEFR_P__JKBMV_S__ __C__D__H_T__A"(Math.abs(l.mkString.hashCode)%106%79%47))mkString

অনলাইনে চেষ্টা করুন (স্কালাফিডল)

আরও পঠনযোগ্য:

(a:String) => a.split("\n")
                .map(_.grouped(6)map(_.take(5))toArray)
                .transpose
                .map ( l => 
                    "Q__WLUY_XOI_ZN_GEFR_P__JKBMV_S__ __C__D__H_T__A"(
                        Math.abs(l.mkString.hashCode)%106%79%47
                    )
                )mkString

ব্যাখ্যা

  • প্রাথমিক স্ট্রিং (ASCII আর্ট) 5 টি লাইনে বিভক্ত (ASCII চরিত্রের উচ্চতা)
  • প্রতিটি লাইন 6-অক্ষর উপাদানগুলিতে বিভক্ত (ASCII অক্ষর + 1 স্থানের প্রস্থ)
  • শুধুমাত্র প্রথম 5 টি অক্ষর রাখা হয়েছে (শেষে স্থানটি অকেজো)
  • (হয় প্রতিটি হওয়া ASCII অক্ষর, 25 অক্ষর (5x5) একটি ক্রম হিসাবে প্রতিনিধিত্ব করা হয় ধারণকারী লাইন পক্ষান্তরিত হয় '#'বা ' ')
  • প্রতিটি ASCII চরিত্রের উপস্থাপনা (ক্রম) স্ট্রিংয়ে রূপান্তরিত হয় এবং সেই স্ট্রিংয়ের জন্য একটি পরম হ্যাশকোড গণনা করা হয় (পরবর্তী মডুলাসের কারণে পরম প্রয়োজন)
  • প্রতিটি ASCII চরিত্রের জন্য % 106 % 79 % 47একটি সংখ্যা সংযুক্ত করার জন্য পরপর 3 টি মডিউল ( ) প্রয়োগ করা হয় [0; 47[(নীচে ব্যাখ্যা দেখুন)
  • এই সংখ্যাটি যাদু স্ট্রিংয়ের সূচক হিসাবে ব্যবহৃত হয়

কিভাবে যাদু স্ট্রিং পেতে?

প্রথমত, আমি এই জাতীয় সমস্ত অক্ষর উপস্থাপন করেছি:

case class Letter(letter: Char, ascii: Seq[Char])

তারপরে, আমি সমস্ত বর্ণের ASCII উপস্থাপনা সম্বলিত একটি বর্ণমালা তৈরি করেছি:

উদাহরণ:

 ### 
#   #  
#####  
#   #  
#   #

হয়ে

Letter('A', " ### #   #######   ##   #") // 25 characters from top-left to bottom-right

প্রতিটি অক্ষরের জন্য, একটি পরম হ্যাশকোড গণনা করা হয়েছিল (সমস্ত হ্যাশকোডগুলি পৃথক):

val codes = alphabet.map { case Letter(l, a) => (l, Math.abs(a.mkString.hashCode)) }
// codes: Seq[(Char, Int)] = List(( ,253243360), (A,380997542), (B,1221679148), (C,1573119535), (D,307929190), (E,858088672), (F,857996320), (G,750155628), (H,897290147), (I,1518088099), (J,928547488), (K,1184149391), (L,519601059), (M,741735953), (N,2139154001), (O,1625960980), (P,1307658950), (Q,92382816), (R,1221771494), (S,1689301359), (T,1515228067), (U,1390718627), (V,386730851), (W,733134481), (X,628338619), (Y,23919695), (Z,2081560145))

তারপরে আমি প্রতিটি কোড হ্রাস করার চেষ্টা করেছি, তবে সর্বদা এই সত্যকে সম্মান করে যে প্রতিটি কোড অবশ্যই অনন্য হতে হবে (কোড অনুসারে তালিকাভুক্ত তালিকাটিতে 27 টি উপাদান থাকতে হবে, প্রতিটি বর্ণের জন্য 1 টি)। সুতরাং আমি প্রথম 200 মডিউল চেষ্টা করেছি:

val mod = (1 to 200).find(modulo => codes.map { case (a,b) => (a, b % modulo) }.groupBy(_._2).size==27).get

আমি 106প্রয়োগ করা প্রথম মডুলো হিসাবে পেয়েছি :

val codes2 = codes.map { case (l, c) => (l, c%mod) }
val codes = codes2
// codes: Seq[(Char, Int)] = List(( ,32), (A,46), (B,104), (C,35), (D,38), (E,16), (F,96), (G,94), (H,41), (I,89), (J,102), (K,71), (L,83), (M,105), (N,13), (O,56), (P,20), (Q,0), (R,18), (S,29), (T,43), (U,5), (V,27), (W,3), (X,87), (Y,53), (Z,91))

আমি ছোট পদক্ষেপগুলি পূর্ববর্তী পদক্ষেপগুলি পুনরাবৃত্তি করেছি। আমি পেয়েছি:

  • 79
  • 47
  • 44
  • 42

দ্রষ্টব্য: আমি যে সর্বশেষ মডুলোটি বেছে নিয়েছি 47তা এখানে ছোট নয়:

  • আমি 44 খুঁজে পেয়েছি, তবে আমি যদি 44 বেছে নিই, তবে যাদুটির স্ট্রিংয়ের আকার 44 হবে (47 এর পরিবর্তে) তবে আমাকে লিখতে হবে %106%79%47%44( %106%79%47= 10 অক্ষরের পরিবর্তে 13 টি অক্ষর)। তাই বাইটে, কোডটি যেটি পেয়েছিল তার সমান আকারের হওয়া উচিত
  • এখানেও 42 রয়েছে, তবে তারপরে কোডটি পাওয়া উচিত ছিলাম তার চেয়ে 1 বাইট বেশি

এরপরে, আমি প্রতিটি অক্ষরের সাথে সম্পর্কিত নির্দিষ্ট কোডগুলি পেতে, একটানা মডিউলাসটি % 79 % 47শেষ পর্যন্ত প্রয়োগ করেছি codes:

codes: Seq[(Char, Int)] = List(( ,32), (A,46), (B,25), (C,35), (D,38), (E,16), (F,17), (G,15), (H,41), (I,10), (J,23), (K,24), (L,4), (M,26), (N,13), (O,9), (P,20), (Q,0), (R,18), (S,29), (T,43), (U,5), (V,27), (W,3), (X,8), (Y,6), (Z,12))

অবশেষে যাদু স্ট্রিংটি তৈরি করতে:

val initialMap = (0 until 47).map(i => (i, '_')).toMap
val codesMap = codes.map(i => (i._2, i._1)).toMap

val magicString = (initialMap ++ codesMap).toSeq.sortBy(_._1).map(_._2).mkString
// magicString: String "Q__WLUY_XOI_ZN_GEFR_P__JKBMV_S__ __C__D__H_T__A"

উদাহরণ:A উপরের চিঠিটি 46 ( 380997542 % 106 % 79 % 47) এর সাথে সম্পর্কিত এবং যাদু স্ট্রিংয়ের 46 তম উপাদানটি এ :)

পরীক্ষার মামলা

// assign function to f
val f = (a:String)=>a.split("\n").map(_.grouped(6)map(_.take(5))toArray).transpose.map(l=>"Q__WLUY_XOI_ZN_GEFR_P__JKBMV_S__ __C__D__H_T__A"(Math.abs(l.mkString.hashCode)%106%79%47))mkString

ওহে বিশ্ব :

val asciiArt = """|#   # ##### #     #      ###        #   #  ###  ####  #     #### 
                  |#   # #     #     #     #   #       #   # #   # #   # #     #   #
                  |##### ####  #     #     #   #       # # # #   # ####  #     #   #
                  |#   # #     #     #     #   #       ## ## #   # #   # #     #   #
                  |#   # ##### ##### #####  ###        #   #  ###  #   # ##### #### """.stripMargin

f(asciiArt)    // HELLO WORLD

এএসসিআইআই:

val asciiArt = """| ###   ###   ###  ##### #####
                  |#   # #     #   #   #     #  
                  |#####  ###  #       #     #  
                  |#   #     # #   #   #     #  
                  |#   #  ###   ###  ##### #####""".stripMargin

f(asciiArt)    // ASCII

পিপিসি:

val asciiArt = """|####  ####   ###   ### 
                  |#   # #   # #   # #    
                  |####  ####  #     #  ##
                  |#     #     #   # #   #
                  |#     #      ###   ### """.stripMargin

f(asciiArt)    // PPCG

সম্পাদনাগুলি

  • সরিয়ে 3 বাইট সংরক্ষিত .সামনে map, toArrayএবংmkString

3

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

<?$l=" 00000YE00G0000R000A0Q0000C0BW000K00000000000LT00000J00000000MU0000Z0000DI000000V0000000P00H0000ONF000S00X";preg_match_all("#(.{5})\s#s","$_GET[0] ",$t);for($i=0;$i<$c=count($a=$t[1])/5;$i++)$s.=$l[bindec(strtr($a[$i].$a[$i+$c].$a[$i+2*$c].$a[$i+3*$c].$a[$i+4*$c]," #","01"))%106];echo$s;

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

সম্প্রসারিত

$l=" 00000YE00G0000R000A0Q0000C0BW000K00000000000LT00000J00000000MU0000Z0000DI000000V0000000P00H0000ONF000S00X"; # search string mod 106
preg_match_all("#(.{5})\s#s","$_GET[0] ",$t); # Regex take each group of five chars followed by a whitespace
for($i=0;$i<$c=count($a=$t[1])/5;$i++)
  $s.=$l[bindec(strtr($a[$i].$a[$i+$c].$a[$i+2*$c].$a[$i+3*$c].$a[$i+4*$c]," #","01"))%106]; # join each groups make a binaray make a decimal mod 106  
echo$s; # Output

ইনপুটটিকে কোনও চিত্রের ফর্ম্যাটে রূপান্তর করা হচ্ছে

@ স্টেভি গ্রিফিন একটি চিত্র থেকে এটি পেতে একটি সমাধান অনুসন্ধান করুন। আমার মনে হয় তিনি আমার ব্যবহারযোগ্য চিত্রের ফর্ম্যাটটি চান না

echo'<svg xmlns="http://www.w3.org/2000/svg" width="100%"><switch><foreignObject x="0" y="0" width="100%" height="300"><body xmlns="http://www.w3.org/1999/xhtml"><pre>'.$_GET[0].'</pre></body></foreignObject></switch></svg>';

SVG- এ এইচটিএমএল অংশ থাকতে পারে যদি তা কোনও বিদেশীঅবজেক্টে অন্তর্ভুক্ত থাকে। সুতরাং আমি একটি এসভিজিতে একটি প্রাক এলিমেন্ট রেখেছি।

চিত্র আউটপুট

<svg xmlns="http://www.w3.org/2000/svg" width="100%"><switch><foreignObject x="0" y="0" width="100%" height="300"><body xmlns="http://www.w3.org/1999/xhtml"><pre>#   # ##### #     #      ###        #   #  ###  ####  #     #### 
#   # #     #     #     #   #       #   # #   # #   # #     #   #
##### ####  #     #     #   #       # # # #   # ####  #     #   #
#   # #     #     #     #   #       ## ## #   # #   # #     #   #
#   # ##### ##### #####  ###        #   #  ###  #   # ##### #### </pre></body></foreignObject></switch></svg>

চিত্র পরিবর্তন থেকে সমাধান

করা SVG হিসাবে "i.svg" আপনি শুধুমাত্র প্রতিস্থাপন দরকার করা SVG সংরক্ষণ পর মেশিন পাঠযোগ্য তাই $_GET[0]সঙ্গে preg_replace("#(^.*e>)(.*)(</p.*$)#s","$2",join(file("i.svg")))স্বাভাবিক ইনপুট + + 55 বাইট সঙ্গে ভাবে


2

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

-join$(for($t=$args-split'
';$c-lt$t[0].Length;$c+=6){$s=0;$t|% s*g $c,5|% t*y|%{$s+=$s+$_}
'_ISRJ_BK_HFQPL_MYNCE _TXDAO_VWUZ__G'[$s%578%174%36]})

পরীক্ষার স্ক্রিপ্ট:

$f = {

-join$(for($t=$args-split'
';$c-lt$t[0].Length;$c+=6){$s=0;$t|% s*g $c,5|% t*y|%{$s+=$s+$_}
'_ISRJ_BK_HFQPL_MYNCE _TXDAO_VWUZ__G'[$s%578%174%36]})

}

&$f @"
#   # ##### #     #      ###        #   #  ###  ####  #     #### 
#   # #     #     #     #   #       #   # #   # #   # #     #   #
##### ####  #     #     #   #       # # # #   # ####  #     #   #
#   # #     #     #     #   #       ## ## #   # #   # #     #   #
#   # ##### ##### #####  ###        #   #  ###  #   # ##### #### 
"@

&$f @"
 ###   ###   ###  ##### #####
#   # #     #   #   #     #  
#####  ###  #       #     #  
#   #     # #   #   #     #  
#   #  ###   ###  ##### #####
"@

&$f @"
####  ####   ###   ### 
#   # #   # #   # #    
####  ####  #     #  ##
#     #     #   # #   #
#     #      ###   ### 
"@

&$f @"
       ###  ####   ###  ####  ##### #####  ###  #   # ##### ##### #   # #     #   # #   #  ###  ####   ###  ####   ###  ##### #   # #   # #   # #   # #   # #####
      #   # #   # #   # #   # #     #     #     #   #   #     #   #  #  #     ## ## ##  # #   # #   # #   # #   # #       #   #   # #   # #   #  # #   # #     # 
      ##### ####  #     #   # ####  ####  #  ## #####   #     #   ###   #     # # # # # # #   # ####  #   # ####   ###    #   #   #  # #  # # #   #     #     #  
      #   # #   # #   # #   # #     #     #   # #   #   #   # #   #  #  #     #   # #  ## #   # #     #  #  #   #     #   #   #   #  # #  ## ##  # #    #    #   
      #   # ####   ###  ####  ##### #      ###  #   # ##### ###   #   # ##### #   # #   #  ###  #      ## # #   #  ###    #    ###    #   #   # #   #   #   #####
"@

আউটপুট:

HELLO WORLD
ASCII
PPCG
 ABCDEFGHIJKLMNOPQRSTUVWXYZ

বিঃদ্রঃ:

  1. $t|% s*g $c,5|% t*y|%{$s+=$s+$_} শর্টকাট জন্য $t.substring($c,5).toCharArray()|%{$s+=$s+$_}
  2. ("abcd","efgh").substring(1,2) অ্যারে প্রদান করে ("bc","de")
  3. ("bc","de").toCharArray() অ্যারে প্রদান করে ('b','c','d','e')

2

সি,  225  209 বাইট

16 বাইট সংরক্ষণের জন্য @ সেলিংক্যাটকে ধন্যবাদ!

i,j,k,l,n,m;f(char*s){l=index(s,10)-s+1;for(i=0;i<l/6;++i){for(m=j=0;j<5;m+=n*(exp10(j++)+.1))for(n=k=0;k<5;)n+=(s[i*6+j+k*l]==35)<<k++;for(j=0;"Qi Y$>W);Xa%d^F4K-]7jcMAG="[j++]-32-m%77;);putchar(n?64+j:32);}}

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

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