পিগপেন সাইফার এনক্রিপশন
আপনার মিশনটি সহজ: একটি প্রোগ্রাম লিখতে যা পাঠ্যটিকে ইনপুট হিসাবে গ্রহণ করে এবং এটি পিগপেন সিফারে একটি ASCII প্রতিনিধিত্ব করে ।
ইনপুট
কেবলমাত্র ASCII (কোনও ইউনিকোড নেই) অক্ষর। আপনার অবশ্যই কমপক্ষে 16384 টি অক্ষর এবং 256 টি লাইন পরিচালনা করতে সক্ষম হবেন।
আউটপুট
- সমস্ত অক্ষর প্রতিস্থাপন করুন যা নতুন লাইন নয়
ABCDEFGHIJKLMNOPQRSTUVWXYZ
বাabcdefghijklmnopqrstuvwxyz
ফাঁকা স্থান নয়। - কেস-সংবেদনশীলভাবে, প্রতিটি অক্ষরকে তার এনক্রিপ্ট করা ফর্মের সাথে প্রতিস্থাপন করুন (পরবর্তী বিভাগটি দেখুন), প্রতিটির পরে তিনটি লাইনের প্রতিটিটিতে একটি স্থান অনুসরণ করে। প্রতিটি এনকোডযুক্ত অক্ষর ASCII আর্টের 3 * 3 ব্লক। স্থানগুলি 3 * 3 ব্লকের স্পেস দিয়ে প্রতিস্থাপন করুন।
- সমস্ত নতুন অক্ষর একই তিনটি লাইনে হওয়া উচিত (এই তিনটি লাইনের একটি পিপ্পেন-লাইন কল করুন), যদি না কোনও নতুন লাইন থাকে, যা একটি নতুন পিগপেন-লাইন শুরু করে। পিগপেন-লাইনের মধ্যে একটি সাধারণ লাইন ফাঁকা ছেড়ে যান।
সাইফার
| | | |
.| |.| |.
--+ for J +-+ for K +-- for L
--+ +-+ +--
.| |.| |.
--+ for M +-+ for N +-- for O
--+ +-+ +--
.| |.| |.
| for P | | for Q | for R
(ABCDEFGHI are the same as JKLMNOPQR, but with the . replaced by a space)
\./
V for W (note the row of 3 spaces on the top)
^
/.\ for Z (note the 3 spaces on the bottom)
\
.>
/ for X (note the leading spaces)
/
<.
\ for Y (note extra trailing spaces)
(STUV are like WXYZ, but with the . replaced by a space)
উদাহরণ
"HEllo, WORLd" ইনপুটটি তৈরি করা উচিত:
+-+ +-+ | | +-- +-- +-- | --+
| | | | |. |. |. \./ |. |. |. |
| | +-+ +-- +-- +-- V +-- | +-- --+
উপরের বেস 64 এনকোডিংটি একটি নতুন নতুন লাইনের সাথে নীচে রয়েছে। এমডি 5sum হয় 6f8ff1fed0cca4dd0492f9728ea02e7b
।
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW
ICArLS0gfCAgICstLSAtLSsK
পেছনের নতুন লাইন ছাড়াই, এমডি 5সামটি 581005bef7ee76e24c019d076d5b375f
এবং বেস 64:
Ky0rICstKyB8ICAgfCAgICstLSAgICAgICAgICstLSArLS0gfCAgIC0tKwp8IHwgfCB8IHwuICB8
LiAgfC4gICAgICBcLi8gfC4gIHwuICB8LiAgICB8CnwgfCArLSsgKy0tICstLSArLS0gICAgICBW ICArLS0gfCAgICstLSAtLSs =
বিধি
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
- এটি কোড গল্ফ। সংক্ষিপ্ততম কোড জিতেছে।
- যে ভাষাগুলি একসাথে একাধিক লাইন ইনপুট গ্রহণ করতে পারে না (যেমন জাভাস্ক্রিপ্ট সহ
prompt()
)*
একটি লাইন বিভাজক হিসাবে ব্যবহার করুন ।
Erranda
- উদাহরণটি কয়েকটি স্পেস হারিয়েছিল (একটি স্পেসে পূর্বের অক্ষরের পূর্ববর্তী অক্ষর, যদি কোনও হয়, এবং তার নিজস্ব চলমান স্থানগুলি থাকা উচিত)। এই এখন সংশোধন করা হয়েছে।
prompt
ইনপুট জন্য ব্যবহৃত হয়, তবে এটি কেবল একটি একক লাইন গ্রহণ করে। ইনপুটটিতে নতুন লাইন চিহ্নিত করতে কি আমি একটি বিশেষ চর ('*' এর মতো) ব্যবহার করতে পারি?