ডিকোড ফক্স ব্রেইল


21
⢣⠃⢎⠆⣇⡇⡯⡂⠈⡏⢰⢵⢐⡭⢸⠪⡀⢸⢐⡭⠀⢹⠁⢎⠆⢸⣱⢸⡃⢎⠰⡱⢸⣱⢸⡃⠈⡏⢸⡃⡱⡁⢹⠁⢸⡀⡇⡗⢅⢸⡃⠈⡏⢸⢼⢸⢐⡭⠀

⣇⢸⡃⢹⠁⢹⠁⣟⢸⢕⢐⡭⠀⡮⡆⡯⡂⣟⠀⡯⠰⡱⢸⣸⢸⢕⠀⣏⡆⢎⠆⢹⠁⣪⠅⢸⢼⢸⠰⣩⢸⢼⠀⡮⡆⡗⢼⢸⣱⠀⢎⠆⡯⠀⢇⠇⡮⡆⡯⡂⡇⡮⡆⣟⡆⣇⢸⡃⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀

⢎⠆⡗⢼⢸⡃⢸⡃⡗⠔⡇⡯⠂⢹⠁⢣⠃⠸⡸⢸⡃⡯⡂⢹⠁⡇⢎⢰⢵⢸⡀⢸⡀⡇⡗⢼⢸⡃⢐⡭⢸⡃⡯⠂⡮⡆⡯⡂⡮⡆⢹⠁⣟⢐⡭⠀⢎⢸⢼⢰⢵⢸⢕⢰⢵⠰⡁⢹⠁⣟⢸⢕⢐⡭⠀

⡮⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⠀⡇⣪⠅⢈⣝⢸⡃⡯⡂⢎⠆⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀

⣪⠅⢎⠆⢸⠈⡏⠀⣇⠰⡱⠰⡱⢸⠪⡀⣪⠅⢸⡀⡇⡗⢅⢸⡃⠸⡰⡸⠰⡱⢸⢕⢸⣱⢐⡭⠀⡮⡆⡯⡂⣟⠀⣪⠅⣟⢸⠕⢰⢵⢸⢕⢰⢵⠈⡏⢸⡃⣏⡆⢸⣳⠘⡜⠀⢹⠁⢇⢆⠇⢎⠆⢸⡀⡇⡗⢼⢸⡃⣪⠅

⡇⡗⢼⢸⠕⢸⣸⠈⡏⠀⡇⣪⠅⢰⢵⠀⣪⠅⢹⠁⡯⡂⡇⡗⢼⠰⣩⠀⢎⠰⡱⢸⠢⡇⢹⠁⡮⡆⡇⡗⢼⢸⢸⠢⡇⢎⡅⢸⠅⡮⡆⣇⡇⡱⡁⢸⣳⢸⢕⢰⢵⢸⢸⡀⣇⢸⡃⠰⡱⢸⠅

⢎⠆⡗⢼⢸⡀⢣⠃⢸⡃⡗⢼⠰⣩⢸⡀⡇⣪⠅⡧⡇⢸⣸⢸⠕⢸⠕⢸⡃⡯⡂⢎⢰⢵⢐⡭⢸⡃⢸⡀⣟⠈⡏⠈⡏⢸⡃⡯⡂⣪⠅⢰⢵⢸⠢⡇⣏⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⢐⡭⠀

⡮⡆⣟⡆⢎⢸⣱⢸⡃⡯⠰⣩⢸⢼⢸⢀⠇⡗⢅⢸⡀⡗⠔⡇⡗⢼⠰⡱⢸⠕⠰⣩⡆⡯⡂⣪⠅⢹⠁⣇⡇⢇⠇⢇⢆⠇⡱⡁⢣⠃⣩⡃

⢎⠆⣇⡇⢹⠁⡯⠂⣇⡇⢹⠁⢸⠢⢺⢰⢵⠘⡜⠀⣟⡆⣟⠀⣇⡇⡯⠂⡯⠂⣟⢸⢕⠀⢎⠆⡯⡂⢸⡀⢎⠆⢇⢆⠇⣟⢸⢕⠰⡁⡮⡆⣪⠅⣟⠀

⣪⠅⡧⡇⢎⠆⡯⡂⢹⠁⣟⢐⡭⠈⡏⠀⢇⢆⠇⡇⡗⢼⢐⡭⠀

⡗⢼⠰⡱⠀⣇⠰⡱⠰⡱⢸⠕⢸⢼⠰⡱⢸⡀⣟⢐⡭⠀

উপরের ASCII সংস্করণ

⡯⡂⣟⢸⡀⡮⡆⢹⠁⣟⢸⣱⠀

ব্রেইল চরিত্রগুলি সম্পর্কে

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

এই জাতীয় সমস্ত ম্যাট্রিকের সংক্ষিপ্তকরণ হল 4 বাই 2 * এন বুলিয়ান ম্যাট্রিক্স, যেখানে এন ইনপুট স্ট্রিংয়ের দৈর্ঘ্য।

আপনার কোনও বিন্দু ছাড়াই উল্লম্ব লাইনগুলি সন্ধান করা উচিত এবং প্রতিটি অক্ষরের জন্য বড় ম্যাট্রিক্সকে ছোট ম্যাট্রিকগুলিতে বিভক্ত করতে পৃথককারী হিসাবে ব্যবহার করুন use

তারপরে, ইংরেজী বর্ণমালা বা স্পেসগুলির অক্ষরে রূপান্তর করার জন্য নিদর্শনগুলি সন্ধান করুন। নোট করুন যে বিভাজকগুলি (উল্লম্ব খালি লাইনগুলি) অপসারণের পরে, একটি স্পেস 4 বাই 0 ম্যাট্রিক্স।

নীচে ASCII এর বর্ণমালার বর্ণনা রয়েছে:

A   | B   | C  | D   | E  | F  | G   | H   | I | J  | K    | L  | M     | N    | O   | P   | Q    | R   | S   | T   | U   | V   | W     | X   | Y   | Z
----+-----+----+-----+----+----+-----+-----+---+----+------+----+-------+------+-----+-----+------+-----+-----+-----+-----+-----+-------+-----+-----+----
.#. | ##. | .# | ##. | ## | ## | .## | #.# | # | .# | #.#. | #. | #...# | #..# | .#. | ##. | .##. | ##. | .## | ### | #.# | #.# | #...# | #.# | #.# | ###
#.# | ### | #. | #.# | ## | #. | #.. | #.# | # | .# | ##.. | #. | ##.## | ##.# | #.# | #.# | #..# | #.# | #.. | .#. | #.# | #.# | #.#.# | .#. | #.# | ..#
### | #.# | #. | #.# | #. | ## | #.# | ### | # | .# | #.#. | #. | #.#.# | #.## | #.# | ##. | #.## | ##. | .## | .#. | #.# | #.# | #.#.# | .#. | .#. | .#.
#.# | ### | .# | ### | ## | #. | .## | #.# | # | #. | #..# | ## | #...# | #..# | .#. | #.. | .### | #.# | ##. | .#. | ### | .#. | .#.#. | #.# | .#. | ###

সবিস্তার বিবরণী

  • ইনপুট হ'ল ইউ + 2800..U + 28FF রেঞ্জের ইউনিকোড কোড পয়েন্টগুলির একটি ক্রম যা কোনও জনপ্রিয় এনকোডিং সমর্থিত (ইউটিএফ -8, ইউসিএস -2) আপনার ভাষার সাধারণ স্ট্রিং ধরণের হিসাবে উপস্থাপিত হয় (UTF-8, UCS-2 ইত্যাদি)।

  • আউটপুটে ট্রেলিং স্পেসগুলি ভাল।


সম্পাদনা: যাঁদের ব্রাউজারগুলি বিন্দুগুলিকে বিভ্রান্ত করে, তাদের কাছে ক্ষমাপ্রার্থী এটি (চিত্র) এর মতো দেখায়: ভুল-ব্রেইল


5
আপনার টাস্কটি এই জাতীয় / অক্ষরগুলি চারটি ডট উচ্চ এবং ভেরিয়েবল প্রস্থের / একটি ফাঁকা উল্লম্ব লাইন অক্ষরকে পৃথক করে / একটি স্থান শূন্য প্রস্থে পৃথক করে dec কেবলমাত্র / ইংলিশ বড় হাতের অক্ষর এবং ফাঁকা স্থান / abcdefghijklmnopqrstuvwxyz / আউটপুট আপার বা লোয়ারকেস / সংক্ষিপ্ত বিজয় / কোনও লফোলস / সম্পর্কিত হতে পারে
এনজিএন

উত্তর:


14

পাইথন 3 , 181 179 171 167 161 159 বাইট

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

-2 বাইট ধন্যবাদ এনএনজি থেকে
-5 বাইটস মিঃ এক্সকোডারকে ধন্যবাদ ।

lambda h,j=''.join:j(' ZAQV;JWP;MBOS;YRKCGXDF;ILHUENT'[int('0'+i,27)%544%135%32]for i in j(chr(64|i&7|i>>3&8)+chr(64|i>>3&7|i>>4&8)for i in h[::2]).split('@'))

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


আপনি 39এবং এর মধ্যে স্থান সরিয়ে ফেললে অজগর অভিযোগ করবে না if; আপনি যদি এবং-এবং-
কৌশলটির

175 বাইট প্রতিস্থাপন i and int(i,27)%15472%39or 0করে int(i or'0')%15472%39--- এটি অনলাইন চেষ্টা করে দেখুন!
মিঃ এক্সকোডার

এবং ''.joinএকটি ভেরিয়েবলকে বরাদ্দ দিয়ে 174 বাইট --- এটি অনলাইনে চেষ্টা করুন!
মিঃ এক্সকোডার

11

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

@ বিএনএন-কে 1 বাইট সংরক্ষণ করা হয়েছে

s=>[...s].map(c=>g((k=c.charCodeAt()/8)&8|k*8&7)&g(k&7|k/2&8),o=x='',g=n=>x=n?x*27+n:(o+=' DZQGYWXNHJ.CSTIO.AFB.LPVE..KUMR'[x%854%89%35],n))&&o

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


g((k=c.charCodeAt())&7|k/8&8)&g(k/8&7|k/16&8)->g((k=c.charCodeAt()/8)&8|k*8&7)&g(k&7|k/2&8)
এনজিএন

@ এনএনজি ধন্যবাদ :) অন্য অপেক্ষমান অপ্টিমাইজেশনের সাথে মার্জড।
আর্নল্ড

আমি জিজ্ঞাসা করতে পারি, আপনি কিভাবে উজ্জ্বল সঙ্গে এসেছেন x%854%89%35? আপনি অনেক বিভিন্ন এলোমেলো মডুলি চেষ্টা করেছেন?
ngn

@ngn আমি চেষ্টা করেছি m0 <1000 , M1 <m0 , মি 2 <M1 (ধারণা যে আসলে অন্য কিছু অপ্টিমাইজেশন সঙ্গে, কিন্তু)। এবং যে গুণক দ্বারা x গুণিত হয়: [4,6,8,9,10,11,12] এবং [15 ... 31] । বর্তমানে কিছু অন্যান্য পদ্ধতির চেষ্টা করছি।
আর্নৌল্ড

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