মিলিেক্সট ফন্টটি লেখার পার্সিং করা


56

মিলিেক্সট ফন্টের পাঠ্য পড়া

এখানে একটি ফন্ট রয়েছে যা প্রতিটি অক্ষরকে একক, 1x5 পিক্সেল ব্লকে ফিট করে। এটি প্রতিটি প্যানেলের আরজিবি চ্যানেলগুলি ব্যবহার করে প্রতিটি চ্যানেলের জন্য একটি করে তিনটি উপকলামে প্রসারণ করতে প্রতিটি পিক্সেলের আরজিবি চ্যানেল ব্যবহার করে এটি করে (ধরে নিয়েছে আপনি একটি এলসিডি স্ক্রিন ব্যবহার করছেন) does আপনার কাজ হ'ল এই ফন্টে এনকোডযুক্ত পাঠ্যের একটি স্ট্রিং নেওয়া এবং এটি 'ডিকোড' করা।

মিলিটেক্সট বর্ণমালা

CHARACTER: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
ENCODING:  WYWBMRRMMMWYWYWWWMWBMRMYGYGYCWMMMMMW
           MGBWMRRMMMMMRMRRRMGBMRWMMMMMRGMMMMMB
           MGWWWWWBWWWYRMWWMWGBYRWMMYMYGGMMWGGG
           MGRBBBMBMBMMRMRRMMGBMRMMMRWMBGMCWMGR
           WWWWBWWBWWMYWYWRWMWWMWMMGRCMYGWBMMGW

আমি প্রতিটি বর্ণকে একটি বর্ণের চিহ্নের সাথে সংক্ষেপিত করেছি (আর = লাল, জি = সবুজ, বি = নীল, সি = সায়ান, ওয়াই = হলুদ, এম = ম্যাজেন্টা, ডাব্লু = সাদা)।

ছক পূরণ করা

এর জন্য ইনপুট ফর্ম্যাটটি বেশ খোলা। আপনার কাছে ইনপুটটি প্রতিটি কলাম, একটি সারি, প্রতিটি সারি, ক char[][], বা এর মতো কিছু সমন্বিত থাকতে পারে। আপনি আপনার পছন্দের বড় হাতের অক্ষর / ছোট হাতের সাথে "লাল", "সবুজ", "নীল" পুরো শব্দটি ব্যবহার করতে পারেন (তবে এটি প্রতিটি শব্দের সাথে সামঞ্জস্যপূর্ণ হতে হবে! আপনি "লাল" ব্যবহার করতে পারবেন না এবং "সবুজ "ও করতে পারবেন না বা "নীল")।

যদি আপনার ভাষা এটি সমর্থন করে তবে আপনার রঙগুলি ইনপুটও থাকতে পারে (তবে এটি কার্যকর হতে পারে, আমি জানি না)।

আপনি ধরে নিতে পারেন যে ইনপুটটিতে কেবলমাত্র উপরের বর্ণমালায় এনকোড করা অক্ষর থাকবে (বিশেষত, আপনার আউটপুটে কোনও ফাঁক বা বিরামচিহ্ন থাকবে না)।

আউটপুট ফরমেট

আপনি হয় স্ট্রিং বা কিছু ধরণের অক্ষরের অ্যারে আউটপুট করতে পারেন। চিঠিগুলি বড় হাতের বা ছোট হাতের না কেন চয়ন করতে পারেন তবে সেগুলির অবশ্যই একই ক্ষেত্রে থাকা উচিত।

উদাহরণ

MWRRGMGYRY
MRRRMMMMRM
WWRRMWMYRM -> HELLOWORLD
MRRRMWMMRM
MWWWGMGMWY

বিধি

এটি , তাই সংক্ষিপ্ত উত্তর জেতে!

পরীক্ষা সেট

WMWGMWWMYYGMYWGMBMMYWYGMWYWMWRWWMYGW
GMRMMGRMMMMMMRMMBMWMRMMMRMGMRRMBMMMR
GWWMMGRYYYMWMWMGBMWYWMMMWYGWWRWGGMMM -> THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG
GMRWMGRMMMMWMRMMBMMRRMMCRMGMRRMRGMMM
GMWCWWWMYMGMMRGMWWMRWYGBWMGMWWMWGYGW

15
আমি মনে করি আপনি হয় সমস্ত অক্ষর হার্ডকোড করেন বা একটি গাণিতিক বিল্টিন এখানে ব্যবহার করেন।
কেউ

7
চমৎকার প্রথম চ্যালেঞ্জ, বিটিডাব্লু!
আরনাউল্ড

6
এখানে ফিক্সড ফন্ট (অন্য কয়েকটি অক্ষর ভুল) রয়েছে।
আর্নৌল্ড

7
আমি জানি না আপনি যদি আপনার পরীক্ষার সেটটি ইংরাজি বর্ণমালা থেকে সমস্ত অক্ষর অন্তর্ভুক্ত করতে চান বা না চান তবে যদি পুত্রটিকে পানগ্রাফ এবং "THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG" বলা হয় তবে এটি "এস" অনুপস্থিত হিসাবে নয়, যদি আপনি এটি চান এটি "THEQUICKBROWNFOXJUMPESOVERTHELAZYDOG" হওয়া উচিত
মাইন্ডসুইপ

5
@JonofAllTrades জাম্প একটি possibility.And আপনি এ জন্য এইচটিএমএল এক পরিবর্তন করে দুটি অক্ষর হারাতে পারেন হয়
অ্যান্ড্রু লিচ

উত্তর:


16

জাভাস্ক্রিপ্ট (ES6),  103 100 93 92  90 বাইট

@ শিরুআসাকোটোর ধন্যবাদ 9 টি বাইট সংরক্ষণ করা হয়েছে

কলামগুলির অ্যারে হিসাবে ইনপুট নেয়। একটি অক্ষরের অ্যারে প্রদান করে।

a=>a.map(s=>"H-L-D--VGQ87MR6TZ-KJ9WC05BUXF1YI2EON3S-A-P4"[parseInt(s,35)%1161%219%152%43])

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


1
@ শিরুআসাকোটো ধন্যবাদ! গুণটি কোনও ভাল ধারণা ছিল না। আমি 3 টি মোডের সাহায্যে আরও 1 টি বাইট সংরক্ষণ করেছি।
আর্নৌলদ

1
এগুলি সেখানে বেশ কয়েকটি বড় মডুলো ... সম্ভবত আপনি এগুলি আরও উন্নত করতে পারেন যাতে -এসগুলি অদৃশ্য হয়ে যায়! : ডি
এরিক আউটগল্ফার

বলপূর্বক একটি সারা রাত আমি একটি 4 সঙ্গে 90 mods, করেছেন: a=>a.map(s=>"H-L-D--VGQ87MR6TZ-KJ9WC05BUXF1YI2EON3S-A-P4"[parseInt(s,35)%1161%219%152%43])
শিয়ারু আসাকোটো

@ শিরুআসাকোটো দুর্ভাগ্যক্রমে, চ্যালেঞ্জটিতে বর্ণিত ফন্টটি ভুল। ওপি থেকে সম্ভাব্য আপডেটের জন্য অপেক্ষা করা হচ্ছে।
আর্নৌল্ড

@ আরনাউল্ড স্থির হয়ে যাওয়ার জন্য আমার অগ্রগতি এখন 93a=>a.map(s=>"UIR-L68N--W-X7B-FH-D-EZ--902-S4M5GJCQT3PKV-A1-YO"[parseInt(s,35)%464%107%99%52])
শিয়ারু আসাকোটো

9

জেলি , 50 বাইট

Oḅ⁹%211“ẎP\7ßɱðvs*Ḋ⁹UfRMJiẒVƑ).Z½Ƈ"}~ḌyH⁵Ŀ⁶Ṿ‘iⱮịØB

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

একটি মোনাডিক লিঙ্কটি কলামগুলির তালিকা হিসাবে ইনপুট গ্রহণ করে এবং অনুবাদটির জেলি স্ট্রিং আউটপুট করে। অনুসরণ করার সম্পূর্ণ ব্যাখ্যা, তবে এই সত্যের উপর নির্ভর করে যে 5 টি বর্ণের প্রতিটি সম্ভাব্য সেটটি কোড পয়েন্টে রূপান্তরিত হওয়ার পরে, বেস-256 থেকে দশমিক এবং পরে 211 মোডে রূপান্তরিত হয়।

আরনাউল্ডের স্থির ফন্ট (49 বাইট এবং একই নীতি ব্যবহার করে) ব্যবহার করে বিকল্প

ব্যাখ্যা

O                   | Convert to code points
 ḅ⁹                 | Convert from base 256 to decimal
   %211             | Mod 211
       “Ẏ...Ṿ‘iⱮ    | Find indices in [209,80,92,55,21,162,24,118,115,42,193,137,85,102,82,77,74,105,189,86,146,41,46,90,10,144,34,125,126,173,121,72,133,199,134,186]
                ịØB | Index into 01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ

7

জাজিমা / এপিএল, 80 79 73 72 71 বাইট

' P  FL6BDEZQA SY574H TVOK J 08  M  U IC92XW 3G1RN'⊇⍨52|8965|2411⊥¨⎕ucs

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


1
আপনার এপিএলে কোন বিশেষ বৈশিষ্ট্য রয়েছে?
জোনা

2
@ জোনাঃ এখানে কেবল ব্যবহৃত জিনিসটি (অনুরূপ {⍵[⍺]}) রয়েছে, অন্যটি ছাড়া এই দুটি ফাইলের মধ্যে এটি সম্পর্কিত তথ্য রয়েছে
ডিজেমা

6

05 এ বি 1 ই , 45 44 বাইট

40ö98%•Wþ@»Ý¢a:µ@,–çòßuÒ¹₃©6µć‚FVÝ∊J?•2ôžLR‡

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

কলামগুলির অ্যারে হিসাবে ইনপুট নেয় এবং অক্ষরের অ্যারে আউটপুট দেয়।

ব্যাখ্যা:

40ö                       # convert each column from base 40
   98%                    # modulo 98
      •...•2ô             # compressed array: [20, 32, 82, 30, 27, 28, 76, 89, 46, 96, 36, 4, 18, 12, 80, 75, 50, 86, 42, 2, 52, 92, 48, 0, 84, 1, 88, 90, 10, 26, 70, 41, 94, 64, 14, 60]
             žLR          # built-in array 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
                ‡         # transliterate

6

আর , 143 128 বাইট

function(v)c(0:9,LETTERS)[match(colSums((sapply(v,U<-utf8ToInt)*194:198)%%45:41),U("#</Eb=,n9J.M4Z+%*V N[Hd\\B?1Oj>KgRYT2")+34)]

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

স্ট্রিংয়ের একটি ভেক্টর গ্রহণ (ফর্মগুলি কলামগুলির সাথে সম্পর্কিত) ইনপুট হিসাবে যেমন:

MWRRG
MRRRM
WWRRM -> c('MMWMM','WRWRW','RRRRW','RRRRW','GMMMG') -> HELLO
MRRRM
MWWWG

ব্যাখ্যা:

প্রতিটি এনকোডযুক্ত স্ট্রিংয়ের জন্য নিম্নলিখিত ক্রিয়াকলাপ সম্পাদন করা (যেমন 'সিআরজিবিওয়াই' = 'এস'):

        TO ASCII      MULTIPLICATION             MODULO              SUM &              TO
        CODEPOINT                                                    OFFSET             ASCII
---------------------------------------------------------------------------------------------

'C'        67        67 * 194 = 12998       12998 %% 45 = 38  \
'R'        82        82 * 195 = 15990       15990 %% 44 = 18  |
'G'  --->  71  --->  71 * 196 = 13916  ---> 13916 %% 43 = 27  |---> (140 - 34) = 106 ---> 'j'
'B'        66        66 * 197 = 13002       13002 %% 42 = 24  |
'Y'        89        89 * 198 = 17622       17622 %% 41 = 33  /

আমরা নিম্নলিখিত স্ট্রিংটি পাই '#</Eb=,n9J.M4Z+%*V N[Hd\B?1Oj>KgRYT2'যেখানে প্রতিটি চরিত্রের সাথে মিল রয়েছে '0123456789ABCDEFGHIJKLMNOPQR'

সুতরাং কোডটি ইনপুট স্ট্রিংগুলিতে বর্ণিত ক্রিয়াকলাপ সম্পাদন করে, তারপরে '#</Eb=,n9J.M4Z+%*V N[Hd\B?1Oj>KgRYT2'স্ট্রিংয়ের অবস্থানগুলি প্রাপ্ত করার জন্য তাদের চিঠিপত্রগুলি অনুসন্ধান করে '0123456789ABCDEFGHIJKLMNOPQR'


এটি চতুর দেখাচ্ছে তবে কোডটি কীভাবে ব্যবহার করবেন তা স্পষ্ট নয়: আমি ফাংশনে কী পাস করব? চরিত্রের ভেক্টরগুলির একটি তালিকা এবং একটি সরল ভেক্টর উভয়ই "অ-সঙ্গতিপূর্ণ যুক্তি" দিয়ে ব্যর্থ হয়। একটি অক্ষর ম্যাট্রিক্স না।
কনরাড রুডল্ফ

@ কনরাডরুডল্ফ: ইনপুটটির একটি ন্যূনতম ব্যাখ্যা যুক্ত করেছেন (এবং আরও স্পষ্ট হওয়ার জন্য টিআইও পরিবর্তন করেছেন)। যত তাড়াতাড়ি আমি
কোডটির

@ ডিজিম সবই হ্যাঁ আমি স্বতন্ত্র চরিত্রগুলির আরও যুক্তিসঙ্গত পরিসরে অঙ্কগুলি সংশোধন করে খেলছি কিন্তু এখনও কিছুই নেই
জিউস্পে

@ ডিগেমএল অহ এটি কাজ করে (আমার কাছে সারি-মেজরের চেয়ে কোল-মেজর হিসাবে ডেটা ছিল) তবে আপনার উদাহরণের ফলাফল "হেল্কো" নয়, "হেল্কো" তে আসে। আমি খুব বিভ্রান্ত হয়ে পড়েছি যে এটি টিআইওতে কাজ করছে বলে মনে হচ্ছে। বিভিন্ন (ইউটিএফ -8 নন) এনকোডিং, আমার ধারণা।
কনরাড রুডল্ফ

1
@ কনরাড রুডল্ফ: একটি সংক্ষিপ্ত বিবরণ যোগ করেছেন (এবং একটি সংক্ষিপ্ত কোডটি পাওয়া গেছে);)
ডিগএমআল

3

কাঠকয়লা , 66 বাইট

WS§”*&_⟲⎇4>υ≧Y⪪ml^π≕t.A;p↶⧴q⊗Hε‖r¡¡ºÞd⸿σC⁺⮌”﹪﹪﹪⍘ιWMYCBGR³⁶⁰¦¹¹³¦⁷¹

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ফাঁকা লাইন দিয়ে সমাপ্ত কলামগুলির তালিকা হিসাবে ইনপুট নেয় akes ব্যাখ্যা:

WS

একটি ফাঁকা না হওয়া পর্যন্ত ইনপুট স্ট্রিং।

§”*&_⟲⎇4>υ≧Y⪪ml^π≕t.A;p↶⧴q⊗Hε‖r¡¡ºÞd⸿σC⁺⮌”

ঘূর্ণায়মানভাবে স্ট্রিংয়ে সূচক OV EX8HSCF5IA L TG 17 M P9RB 4 K ZY2 0JW 63Q ND Uযা (পিছনের স্থান সহ) 56 টি অক্ষর দীর্ঘ।

﹪﹪﹪⍘ιWMYCBGR³⁶⁰¦¹¹³¦⁷¹

বর্ণমালা ব্যবহার করে বেস -7 রূপান্তর সম্পাদন করুন WMYCBGRএবং তারপরে চক্রাকার সূচকের মাধ্যমে ধারাবাহিকভাবে মডিউল 360, 113, 71 এবং 56 হ্রাস করুন।

আমার বেস 7 টি অ্যারোইল্ডের ফিক্সড ফন্টের সাথে সত্যই খারাপভাবে কাজ করেছে; কিছু অনুসন্ধানের পরে আমি এখনও 73 বাইটে ছিলাম। @ গ্রিমির পদ্ধতির ব্যবহার এটিকে হ্রাস করে 67 বাইট করে। তবে আমি শেষ পর্যন্ত একটি 66 বাইট সমাধান সন্ধান করেছি:

WS§”*&″ÀM↔↓<J;×⊟ςF,Gηe↖ητγ´WIY³﹪▶⟧9?δc⁶AxDê↷hPiψ”﹪﹪﹪⍘ι⁴⁷¦²³⁷¦⁷³¦⁶⁷

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

WS

একটি ফাঁকা না হওয়া পর্যন্ত ইনপুট স্ট্রিং।

§”*&″ÀM↔↓<J;×⊟ςF,Gηe↖ητγ´WIY³﹪▶⟧9?δc⁶AxDê↷hPiψ”

ঘূর্ণায়মানভাবে স্ট্রিংয়ে সূচক ID HAM178 VS4F 3R EP6CQ Z UB O 0 X 9 G 5TNJKL2Y Wযা 63 টি অক্ষর দীর্ঘ characters

﹪﹪﹪⍘ι⁴⁷¦²³⁷¦⁷³¦⁶⁷

বর্ণমালা ব্যবহার করে বেস-47 convers রূপান্তরটি সম্পাদন করুন 0-9A-Za-kএবং তারপরে চক্রাকার সূচকের মাধ্যমে ধারাবাহিকভাবে 237, 73, 67 এবং 63 স্পষ্টভাবে হ্রাস করুন।


2

সিজেএম (by৩ বাইট)

{{Gb"õáÖÅ{a("{i%}/"@/Ö´çýß}yùÜÅ©GôÉç¢"256b43b'0f+=}%}

বা এক্সএক্সডি ফর্ম্যাটে

0000000: 7b7b 4762 22f5 e1d6 c59f 7b61 2822 7b69  {{Gb".....{a("{i
0000010: 257d 2f22 0b8a 8340 982f d6b4 e793 fddf  %}/"...@./......
0000020: 7d79 f9dc c519 17a9 0e47 0ef4 c9e7 a222  }y.......G....."
0000030: 3235 3662 3433 6227 3066 2b3d 7d25 7d    256b43b'0f+=}%}

এটি একটি বেনামে ব্লক (ফাংশন) যা কলামগুলির তালিকা হিসাবে ইনপুটটি প্রত্যাশা করে। অনলাইন ডেমো

অন্যান্য অনেক উত্তর হিসাবে, এটি একটি সংক্ষিপ্ত চেহারা টেবিল পেতে% এর শৃঙ্খলা অনুসরণ করে একটি বেস রূপান্তর করে does এই ক্ষেত্রে আমি বেস 16 এবং% চেইন ব্যবহার করি [245 225 214 197 159 123 97 40]


2

জেলি , 48 বাইট

OḌ%⁽qƥ%⁹%53“ð×⁼ẎėWWæ¤jḌṛ>÷ƭÑṙsṛḌz0Ġọµḷ’b51¤iⱮịØB

একটি অক্ষর লিঙ্ক বড় হাতের অক্ষরের তালিকার একটি তালিকা গ্রহণ করে (প্রতিটি কলাম হচ্ছে) যা অক্ষরের একটি তালিকা দেয়।

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

কিভাবে?

OḌ%⁽qƥ%⁹%53“...’b51¤iⱮịØB - Link: columns
O                         - ordinals
 Ḍ                        - convert from base ten
  %⁽qƥ                    - modulo 29415
      %⁹                  - modulo 256
        %53               - modulo 53
                    iⱮ    - map with first index of x in:
                   ¤      -   nilad followed by link(s) as a nilad:
           “...’          -     22270425059867513817410846141176204460122938458128124185752719
                b         -     convert to base
                 51       -       51
                          -     ... = [38,13,19,27,10,16,20,11,35,31,4,17,9,0,50,45,24,25,34,39,22,29,41,32,3,7,46,5,48,18,6,44,28,14,1,8]
                      ị   - index into
                       ØB -   "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"


1

স্ট্যাক্স , 46 বাইট

é►^njÖ_╪»Θîq╪↨δXû=▀úæ5?ªoéV╫╫╩ßH‼╒C═e┼$⌠°JqUu⌡

এটি চালান এবং এটি ডিবাগ করুন

প্রতিটি কলামটি বেস -36 হিসাবে ডিকোড করা হয়। 8273 এর ক্রমাগত মডুলাস, তারপরে 95 প্রয়োগ করা হয়। এটি একটি অনন্য নম্বর দেয়, একটি নির্দিষ্ট স্ট্রিং এ দেখায়।

উদাহরণগুলিতে উল্লিখিত বিন্যাসে হুবহু ইনপুট লাগে এবং কলামগুলি পেতে সেগুলি স্থানান্তর করতে হয়। আমি কিছু আলাদা ইনপুট ফর্ম্যাট ব্যবহার করে কিছু বাইট সংরক্ষণ করতে সক্ষম হব যা আমি এক পর্যায়ে করতে পারি।

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