স্টেগনোগ্রাফিক স্কোয়ারস
আপনার কাজটি একটি স্ট্রিং নেওয়া এবং একটি NxN
চিত্র তৈরি করা যা এই স্ট্রিংটি উপস্থাপন করে। আপনাকে অবশ্যই আলগোরিদিমটি লিখতে হবে যা চিত্রটিতে নেয় এবং এটিকে আবার স্ট্রিংয়ে রূপান্তরিত করে। স্কোরিংটি উভয় অ্যালগরিদমের বাইট গণনা অন্তর্ভুক্ত করবে:
"এনক্রিপশন" অ্যালগরিদম + "ডিক্রিপশন" অ্যালগরিদম ।
আপনার পৃথকভাবে প্রদর্শিত এনক্রিপশন এবং ডিক্রিপশন অ্যালগরিদম উভয়ের জন্য বাইট-গণনা সহ প্রতিটি আলাদাভাবে পোস্ট করা উচিত।
উদাহরণ অ্যালগরিদম
উদাহরণস্বরূপ, এখানে "প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ" ব্লু চ্যানেলে একটি সাধারণ ASCII ভিত্তিক স্টেগানোগ্রাফিক অ্যালগরিদম ব্যবহার করে:
#2e7250,#6ea972,#04eb6f,#0fc767,#74ab72,#ee6161
#b73b6d,#1aae6d,#f37169,#bda56e,#1fe367,#e99620
#706450,#0d3575,#146b7a,#4ea47a,#2a856c,#95d065
#3f2d73,#cef720,#bab661,#d1b86e,#f22564,#12b820
#0f3d43,#c86e6f,#1ee864,#a66565,#247c20,#c3bb47
#0e296f,#89d46c,#585b66,#c08f20,#455c20,#136f20
আপনি দেখতে পাচ্ছেন যে নীল চ্যানেলটি এই চিত্রটির জন্য কেবল অ্যাস্কি মান রাখে:
50 = 80(P) 72 = 114(r) 6f = 111(o) 67 = 103(g) 72 = 114(r) 61 = 97(a)
6d = 109(m) 6d = 109(m) 69 = 105(i) 6e = 110(n) 67 = 103(g) 20 = 32( )
50 = 80(P) 75 = 117(u) 7a = 122(z) 7a = 122(z) 6c = 108(l) 65 = 101(e)
73 = 115(s) 20 = 32( ) 61 = 97(a) 6e = 110(n) 64 = 100(d) 20 = 32( )
43 = 67(C) 6f = 111(o) 64 = 100(d) 65 = 101(e) 20 = 32( ) 47 = 71(G)
6f = 111(o) 6c = 108(l) 66 = 102(f) 20 = 32( ) 20 = 32( ) 20 = 32( )
বাকি চ্যানেলগুলি এলোমেলোভাবে উত্পন্ন মানগুলিতে ধারণ করে যে চিত্রটিতে বিভিন্ন ধরণের রং "মশলা" করা যায়। বার্তাটি চিত্রের বাইরে ফিরিয়ে আনার সময়, আমরা কেবলমাত্র অন্যান্য চ্যানেল মানগুলি উপেক্ষা করতে পারি, এবং নীল চ্যানেলে হেক্স বিটটি টানতে পারি, স্ট্রিংটি পুনর্গঠন করে:
"Programming Puzzles and Code Golf"
স্কোয়ারে স্ট্রিং প্যাড করতে ব্যবহৃত স্থানগুলি চূড়ান্ত ডিক্রিপ্টড আউটপুটটিতে অন্তর্ভুক্ত নয় Notice আপনি যখন ইমেজটিতে স্ট্রিং প্যাড করতে হবে, আপনি ধরে নিতে পারেন ইনপুট স্ট্রিং ফাঁকা দিয়ে শেষ হবে না।
বিধি
- আপনাকে অবশ্যই প্রতি পিক্সেলটিতে 1 টি অক্ষর এনকোড করতে হবে, চরটি এনকোড করার জন্য নির্বাচিত চ্যানেলটি নির্বিচারে।
- অন্যান্য আরজিবি রঙের চ্যানেলগুলিকে অবশ্যই এলোমেলোভাবে তৈরি করা উচিত, আপনি স্ট্রিংটিকে এনকোড করার জন্য বেছে নিচ্ছেন এমন একটি ছাড়া; এর অর্থ আপনার চূড়ান্ত নন-এনকোড হওয়া চ্যানেলগুলির মধ্যে
0x0000-0xFFFF
(এলোমেলোভাবে নির্বাচিত) হওয়া দরকার। - আরজিবি রঙের মানগুলির 2D অ্যারে হিসাবে চূড়ান্ত ফলাফলটি প্রকাশ করা ভাল
0x000000-0xFFFFFF
, আপনি যদি এটির সাথে মজা না চান বা এটির বাইটস কম না লাগে তবে চিত্র তৈরির প্রয়োজন হবে না। আপনি যদি হেক্স স্ট্রিং হিসাবে আউটপুট চয়ন করেন, হেক্স স্ট্রিংকে#
EG#FFFFFF
বা এর সাথে উপস্থাপন করুন#05AB1E
। আপনি ট্যাব, কমা বা অন্য যে কোনও কিছু দিয়ে অনুভূমিকভাবে বোধগম্য হতে পৃথক করতে পারেন, তবে এটি অবশ্যই বর্গীয় প্যাটার্ন বজায় রাখতে পারে; অন্য কথায়, আপনাকে অবশ্যই যথাযথ নিউলাইন বিচ্ছেদ ব্যবহার করতে হবে। - আউটপুট অবশ্যই একটি বর্গক্ষেত্রের হতে হবে এবং এটিকে সামঞ্জস্য করার জন্য স্ট্রিংটি ফাঁকা স্থানের সাথে শেষের দিকে আবশ্যক। এর অর্থ
N≈SQRT(Input#Length())
। যদি ইনপুট দৈর্ঘ্য একটি নিখুঁত বর্গক্ষেত্র না হয়, আপনিN
ফাঁকা এবং প্যাড ফাঁকা উচিত। - পূর্বে উল্লিখিত হিসাবে, আপনি যদি চিত্রটিতে শূন্যস্থান দিয়ে প্যাডিং করছেন তবে আপনাকে চূড়ান্ত "ডিক্রিপ্টেড" আউটপুটে প্যাডযুক্ত অক্ষরগুলি অন্তর্ভুক্ত করবেন না।
- আপনি ধরে নিতে পারেন:
- ইনপুট স্ট্রিং ফাঁকা দিয়ে শেষ হবে না।
- ইনপুট স্ট্রিংটি কেবল প্রিন্টযোগ্য এএসসিআইআই অক্ষর ব্যবহার করবে।
- এটি কোড-গল্ফ , সর্বনিম্ন বাইট গণনা জয়।