এই চ্যালেঞ্জটি একটি মন্ড্রিয়ান পেইন্টিং বিবরণ ভাষার (এমপিডিএল) জন্য দোভাষীকে কোডিংয়ের অন্তর্ভুক্ত।
ভাষার সংজ্ঞা
ভাষাটি আয়তক্ষেত্রের একটি স্তরে কাজ করে। একটি আয়তক্ষেত্রটি এর উপরের বাম স্থানাঙ্ক এবং নীচের ডান স্থানাঙ্ক দ্বারা সংজ্ঞায়িত করা হয়। স্থানাঙ্কগুলি অবশ্যই পূর্ণসংখ্যা হতে পারে। স্ট্যাকটি বৈশিষ্ট্য সহ একটি একক আয়তক্ষেত্র দিয়ে আরম্ভ করা হয়(1,1,254,254)
প্রতিটি কমান্ডের নিম্নলিখিত ফর্ম্যাট থাকে:
<character><integer>
তিনটি আদেশ আছে:
v<integer>
: প্যারামিটার দ্বারা নির্দেশিত অবস্থানে (শতাংশ হিসাবে) স্ট্যাকের সর্বশেষ আয়তক্ষেত্রে উল্লম্ব বিভাজন সম্পাদন করুন। উত্স আয়তক্ষেত্রটি স্ট্যাক থেকে সরানো হয়েছে এবং দুটি নতুন আয়তক্ষেত্র পরিবর্তিত হয়েছে যা বিভক্ত হওয়ার ফলস্বরূপ। বাম আয়তক্ষেত্রটি স্ট্যাকের উপর ঠেলাঠেলি করা হয়, তারপরে ডান আয়তক্ষেত্রটি। আয়তক্ষেত্রের স্থানাঙ্কগুলি পূর্ণসংখ্যা হিসাবে, ভগ্নাংশগুলি বৃহত্তর ছোট সংখ্যায় পূর্ণ হয়।
h<integer>
: অনুভূমিক বিভাজন। শীর্ষ আয়তক্ষেত্রটি স্ট্যাকের উপরে ধাক্কা দেওয়া হয়, তারপরে নীচের আয়তক্ষেত্রটি।
c<integer>
: স্ট্যাক থেকে সর্বশেষতম আয়তক্ষেত্র সরান এবং এটি প্যারামিটার হিসাবে প্রদত্ত রঙে রঙ করে। 1 = সাদা, 2 = লাল, 3 = নীল, 4 = হলুদ
চ্যালেঞ্জ
এমন একটি প্রোগ্রাম লিখুন যা পেন্টিংয়ের বিবরণ হিসাবে প্যারামিটার হিসাবে নেয় এবং রঙিত আয়তক্ষেত্রগুলির 256x256 বিটম্যাপ উপস্থাপনা তৈরি করে। আয়তক্ষেত্রগুলি অবশ্যই 3 পিক্সেল কালো লাইনের সাথে পৃথক করা উচিত। এক বা দুটি পিক্সেল আয়তক্ষেত্রে তার অ-কালো পিক্সেল সীমানা কালো পিক্সেল দ্বারা লুকানো থাকা উচিত।
ইনপুটটি প্যারামিটার হিসাবে বা কোনও ফাইল হিসাবে আপনি পড়তে পারেন। কমান্ডগুলি একটি স্পেস দ্বারা পৃথক করা উচিত। আপনি ধরে নিতে পারেন যে ইনপুট ফাইলে সঠিক বাক্য গঠন রয়েছে এবং এর পিছনে বা নেতৃস্থানীয় স্থান, ট্যাব ইত্যাদি নেই The
সংক্ষিপ্ততম কোডটি জয়ী।
পরীক্ষা
নিম্নলিখিত উত্স:
v25 h71 v93 h50 c4 c1 c1 c2 h71 c3 h44 c1 c1
লাল, নীল এবং হলুদে রচনা II তৈরি করা উচিত :
v30 v50 c1 c5 h70 v50 c1 c3 c2
।
v
এবংh
যুক্তিগুলি পিক্সেলগুলিতে হওয়া উচিত