ডিকশন-টেকিং অ্যাপ্লিকেশানের জন্য আপনাকে কিছু কোড লেখার জন্য নিয়োগ দেওয়া হয়েছে, যা কোনও কথ্য উত্স থেকে ভয়েস ইনপুট নেয়, শব্দ হিসাবে পার্স করে এবং একটি স্ক্রিনে লিখে রাখে।
প্রকল্পটি এতটা পাওয়ারিনে আসলেই আপনাকে বিশ্বাস করে না - দুর্ভাগ্যক্রমে - আপনি আপনার কাজটি না করে সারাদিন বসে এবং গল্ফ কোডের জন্য পরিচিত, তাই তারা আপনাকে সম্পাদন করার জন্য সত্যিই একটি সহজ টাস্ক দেয়: একটি ঘুরুন ছেদযুক্ত বিরামচিহ্নের সাথে বাক্যগুলি একটি যথাযথ বিন্যাসযুক্ত বাক্যে পরিণত হয়েছে, যেখানে 'সঠিকভাবে বিন্যাসিত' নীচে সংজ্ঞায়িত হয়েছে।
বাক্যটি ইনপুটটির স্ট্রিং। একটি শব্দ সংক্রামক অ-স্থানের অক্ষরের একটি গ্রুপ। একটি বিরামচিহ্ন এমন একটি শব্দ যার প্রথম চরিত্রটি
^
।শব্দের প্রথম অক্ষর যদি ছোট হাতের অক্ষর না হয় তবে একটি শব্দকে মূলধন করা হয় (মূল বর্ণিত শব্দগুলি রেজেক্সের সাথে মেলে
/[^a-z].*/
)।বাক্যটির প্রথম শব্দটি অবশ্যই মূলধন হবে।
এ
^COMMA
কমা চরিত্র,
এবং এর একটি স্থান অনুসরণ করে তবে পূর্ববর্তী নয়।aaa ^COMMA bbb
হয়েaaa, bbb
।এ
^COLON
হ'ল একটি কমা যা দেখতে ভাল লাগে:
।এ
^SEMICOLON
হ'ল একটি কমা যা দেখতে ভাল লাগে;
।এ
^PERIOD
হ'ল একটি কমা যা দেখতে ভাল লাগে.
। নিম্নলিখিত একটি শব্দ^PERIOD
অবশ্যই মূলধন করা উচিত।এ
^BANG
এমন একটি পিরিয়ড যা দেখে মনে হয়!
।এ
^DASH
হ'ল ড্যাশ অক্ষর-
এবং এর পূর্ববর্তী এবং অনুসরণ উভয় স্থান রয়েছে।এ
^HYPHEN
হ'ল ড্যাশ চরিত্র-
তবে এর অনুসরণ বা পূর্ববর্তী কোনও স্থান নেই।একটি
^EMDASH
একটি হাইফেন (একটি ড্যাশ!) যে বানান হয়--
।একটি
^OPENQUOTE
এমন একটি উদ্ধৃতি চরিত্র"
যা এর আগে একটি স্থান রয়েছে তবে অনুসরণ করছে না। নিম্নলিখিত একটি শব্দ^OPENQUOTE
অবশ্যই মূলধন করা উচিত। যদি এর^OPENQUOTE
আগে কোনও শব্দের দ্বারা বিরামচিহ্ন নয়, তবে^COMMA
শব্দ এবং শব্দটির মধ্যে একটি যোগ করুন^OPENQUOTE
। যদি একটি^OPENQUOTE
বিরামচিহ্নের আগে থাকে যা পরবর্তী শব্দটিকে মূলধন করে তোলে, এটি পরবর্তী শব্দটির উপরে চলে যায়^OPENQUOTE
।এ
^CLOSEQUOTE
হ'ল ডিগ্রাফ,"
যা একটি স্থান অনুসরণ করে তবে পূর্ববর্তী নয়। যদি একটি^CLOSEQUOTE
একটি পূর্বে হয়^COMMA
,^PERIOD
অথবা^BANG
, যে বিরাম চিহ্ন disappears এবং^CLOSEQUOTE
বানান করা হয়,"
,."
অথবা!"
যথাক্রমে। অদৃশ্য হয়ে যাওয়া বিরামচিহ্নগুলি যদি একটি মূলধন নির্দিষ্ট করে, তবে সেই মূলধনটি অবশ্যই পরবর্তী উপলভ্য শব্দের উপরে ঘটতে হবে।সম্পূর্ণ চূড়ান্ত ফলাফলের প্রাথমিক বা পিছনের স্থানগুলি অবশ্যই সরিয়ে ফেলতে হবে এবং একটি সারিতে দুটি বা ততোধিক স্পেসের যে কোনও স্ট্রিং সমস্ত একটি একক স্থানের অক্ষরে ভেঙে ফেলতে হবে।
যে কোন ক্ষেত্রে উপরে আবৃত নয় (যেমন
^COMMA ^COMMA
অথবা^SEMICOLON ^CLOSEQUOTE
বা^UNDEFINEDPUNCTUATION
) সুগঠিত ইনপুটে সৃষ্টি হবে না এবং এইভাবে অনির্ধারিত আচরণ।
উন্নয়ন দল আপনাকে নিম্নলিখিত সম্পর্কে অবহিত করে:
প্রকল্পটি [আপনার ভাষা এখানে] ভাষায় লেখা হচ্ছে , এবং যতটা সম্ভব সংক্ষিপ্ত হওয়া উচিত যাতে এটি অ্যান্ড্রয়েড / আইফোনের অ্যাপ্লিকেশন হওয়ার সময় যতটা সম্ভব কম জায়গা নেয়। আপনি ব্যাখ্যা করার চেষ্টা করেছেন যে অ্যাপ্লিকেশন বিকাশ কীভাবে তা করে না, তবে তারা কান দেয় না। তবে ওহে কাকতালীয় ঘটনা! আপনি [এখানে আপনার ভাষা] একটি আশ্চর্যজনক গল্ফার !
অ্যাপ্লিকেশনটির কোনও ওয়েব অ্যাক্সেস অনুমতি থাকবে না এবং এমন কোনও লাইব্রেরি ইনস্টল হবে না যা আপনার জন্য এই ফর্ম্যাটিং করে। আপনার ভাষার জন্য যদি কোনও উপস্থিত থাকে তবে আপনি সম্ভবত দলকে নেতৃত্ব দেওয়ার জন্য আপনাকে একটি রেইজেক্স লাইব্রেরির অনুমতি দিতে পারেন, যদিও আপনি যদি মনে করেন যে আপনার কোনও প্রয়োজন আছে।
নেস্টেড কোটেশনগুলির জন্য সমর্থন যা ডাবল / সিঙ্গল কোটগুলি সঠিকভাবে ব্যবহার করে অ্যাপ্লিকেশনটির পরবর্তী সংস্করণের জন্য পরিকল্পনা করা হয়েছে তবে আপনি যে সংস্করণে এখন কাজ করছেন তা নয়, তাই এটি নিয়ে চিন্তা করবেন না।
পরিচালনাটি পরীক্ষা-চালিত বিকাশের একটি বিশাল অনুরাগী, এবং তাই ডেভ টিম ইতিমধ্যে কিছু অনর্থক কীবোর্ড বানর প্রোগ্রামটির অংশের জন্য কিছু পরীক্ষা লিখেছিল: (পঠনযোগ্যতার জন্য নতুন লাইনে যুক্ত হয়েছে, এগুলি স্থান হিসাবে বিবেচনা করবে)
ইনপুট:
hello ^COMMA world ^BANG
আউটপুট:
Hello, world!
ইনপুট:
once upon a time ^COMMA there was a horse ^PERIOD that horse cost me $50 ^PERIOD ^OPENQUOTE eat your stupid oats ^COMMA already ^BANG ^CLOSEQUOTE I told the horse ^PERIOD the horse neighed back ^OPENQUOTE no ^CLOSEQUOTE and died ^PERIOD THE END
আউটপুট:
Once upon a time, there was a horse. That horse cost me $50. "Eat your stupid oats, already!" I told the horse. The horse neighed back, "No," and died. THE END
ইনপুট:
begin a ^PERIOD b ^COMMA c ^COLON d ^SEMICOLON e ^BANG f ^HYPHEN g ^DASH h ^EMDASH i ^OPENQUOTE j ^PERIOD ^OPENQUOTE k ^SEMICOLON ^OPENQUOTE l ^CLOSEQUOTE m ^BANG ^CLOSEQUOTE n ^PERIOD 0x6C6F6C end
আউটপুট:
Begin a. B, c: d; e! F-g - h--i, "j. "K; "l," m!" N. 0x6C6F6C end
এটি একটি কোড গল্ফ: সর্বনিম্ন স্কোর জয়। আপনি একটি স্ট্রিং আর্গুমেন্টের একটি ফাংশন, বা একটি প্রোগ্রাম STDIN থেকে পড়া এবং STDOUT এ লিখতে পারেন।
prompt()
?