আসুন কী-ভাষা পার্স এবং প্রক্রিয়া করি! কীবোর্ড কী বা টিপস এবং / অথবা বিশেষ কীগুলির অনুক্রমের ইনপুট দেওয়া, একটি প্রোগ্রাম লিখুন, ফাংশন, ইত্যাদি যা নিম্নলিখিত ক্রিয়াকলাপের উপর ভিত্তি করে সমস্ত ক্রিয়াকলাপ প্রক্রিয়া করা হয় তখন পণ্যটিকে আউটপুট করে দেয়:
+-------------------------------------------------------+
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | - | + | |
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | _ | = |Del|
+-------------------------------------------------------+
|TAB| q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
| | Q | W | E | R | T | Y | U | I | O | P | { | } | | |
+-------------------------------------------------------+
|CAPS | a | s | d | f | g | h | j | k | l | ; | ' | RET |
| | A | S | D | F | G | H | J | K | L | : | " | |
+-------------------------------------------------------+
| SHIFT | z | x | c | v | b | n | m | , | . | / | SHIFT |
| | Z | X | C | V | B | N | M | < | > | ? | |
+-------------------------------------------------------+
| |
| SPACEBAR |
+-------------------------------------------------------+
কি যে আউটপুট প্রকৃত অক্ষর না হোয়াইটস্পেস গঠিত এবং হয় অন্যান্য চাবি হিসাবে "চরিত্র কী" নামে পরিচিত হবে সংশোধন করতে সক্ষম, এবং অন্যান্য কী অথবা আউটপুট হোয়াইটস্পেস "বিশেষ কী" নামে পরিচিত হবে আউটপুট সংশোধন ঐ যে। বর্ণমালা অক্ষর কীগুলি, যা বড় হাতের অক্ষরের সাথে ইনপুটটিতে প্রদর্শিত হবে, যেকোনটি দিয়ে Shift
বা Caps Lock
বড় হাতের অক্ষর তৈরি করতে সংশোধন করা যেতে পারে , এবং বাকী অক্ষর কীগুলি কেবল Shift
তাদের বিকল্প অক্ষর তৈরি করতে পরিবর্তিত হতে পারে । সুতরাং A
ইনপুটটিতে a A
অক্ষর কীটি সম্পর্কিত, যার স্বাভাবিক আউটপুট a
এবং যার পরিবর্তিত আউটপুট, কোনওটি Shift
বা Caps Lock
কী দিয়ে প্রাপ্ত, তা A
। অন্য দিকে,/
যা / ?
অক্ষর কী এর সাথে মিলে যায় তার একটি সাধারণ আউটপুট থাকে /
এবং ?
কেবলমাত্র Shift
এই সময়ের সাথেই প্রাপ্তের একটি পরিবর্তিত আউটপুট থাকে ।
বিধি
ইনপুটটি সর্বদা অক্ষর কী এবং বিশেষ কীগুলির ক্রম সমন্বিত একটি স্ট্রিং থাকবে । ইনপুটটির জন্য স্ট্রিং ম্যাপিংয়ের সম্পূর্ণ বিশেষ কী (যেমন ফর্ম্যাটটি যা তারা ইনপুটটিতে থাকার নিশ্চয়তা দেয়) এবং তাদের সম্পর্কিত ক্রিয়াগুলি / আউটপুটগুলি নিম্নরূপ:
<DEL> -> Delete the previous character (including whitespace). If called when string is empty, nothing happens. If called 2 or more times in a row, 2 consecutive deletes happen. For instance, "RE<DEL><DEL>" should return an empty string ("") and also "R<RET><DEL><DEL>E" should return just "E".
<CAPS> -> Enable Caps Lock until <CAPS> appears again, upon which it is disabled, although it is not guaranteed to be disabled by the end of the input. Enabling this only modifies the upcoming alphabet keys resulting in them outputting only uppercase letters. For instance, "<CAPS>RE<CAPS>" results in the output "RE", but <CAPS>.<CAPS> would still result in a ".".
<RET> -> Add a new line.
<SPC> -> Add a single blank space.
<TAB> -> Add 4 spaces.
<SHFT> -> Shift is held down resulting in the alternate character of the upcoming keypress to be output, after which the key is released. For instance, "<SHFT>A" results in the output "A", "<SHFT>1" results in the output "!", and "<SHFT>1234" results in the output "!234" as only the first upcoming keypress is modified and nothing else. It is guaranteed that a character key will succeed a <SHFT>. Therefore, <SHFT><SPC> is not a possible input.
একটি খালি স্ট্রিং ইনপুট হিসাবেও সম্ভব, যার জন্য আউটপুট কিছুই হওয়া উচিত নয়।
- কোনও বিল্ট-ইন ব্যবহার করে যা এই সমস্যাটিকে সরাসরি সমাধান করে তা নিষিদ্ধ।
- স্ট্যান্ডার্ড লুফোলের ব্যবহার নিষিদ্ধ।
পরীক্ষার কেস
ফর্ম্যাটটিতে উপস্থাপন করা হয়েছে এবং তার Actual String Input -> Actual String Output
পরে কয়েকটির ব্যাখ্যা।
1<SHFT>2<TAB><CAPS>R.KAP.<SPC><SHFT>123 -> 1@ R.KAP. !23
আউটপুট
1
হিসাবে1
কী টগল ছাড়া টেপা হলে, তারপর Shift চেপে অনুষ্ঠিত হয় এবং2
চাবি ফলে টেপা হলে@
আউটপুট। তারপরে শিফট কীটি প্রকাশিত হবে এবং ট্যাব টিপবে, ফলস্বরূপ 4 টি ফাঁকা ইনডেন্টেশন হবে। আপ পর ক্যাপস লক কী চাপা হয়, যার পরেR
,.
,K
,A
,P
, এবং.
কি টেপা হয়, আউটপুট ফলেR.KAP.
। অবশেষে, একটি একক স্থান আউটপুট ফলে স্থানান্তর দ্বারা অনুসরণ করা হয়!23
আউটপুট বলা হচ্ছে যে1
,2
এবং3
কি শেষে চাপা করছে।<SHFT>ABCDEFG<SHFT>HIJK<SHFT>1<SHFT>2<SHFT>3<SHFT>4567890 -> AbcdefgHijk!@#$567890
Shift কী চেপে অনুষ্ঠিত হয় দ্বারা অনুসরণ
A
কী, আউটপুট ফলেA
আউটপুট দ্বারা অনুসরণbcdefg
যখনB-G
কি টেপা হয়। তারপর, Shift কী আবার নিচে অনুষ্ঠিত হয় সফলH
কী, আউটপুট যা পরেH
, দ্বারা অনুসরণijk
যখনI-K
কি টেপা হয়। অবশেষে,1-4
কী সব শিফট যেমন পরিবর্তিত হয় প্রতিটি কীপ্রেস আউটপুট ফলে পায়ের সামনে অনুষ্ঠিত হয়!@#$
দ্বারা বন্ধ সমাপ্ত567890
যখন5-0
কি টেপা করছি।<CAPS>THIS<SPC>IS<SPC>IN<SPC>ALL<SPC>CAPS<CAPS><SPC>NOW<SPC>THIS<SPC>IS<SPC>IN<SPC>ALL<SPC>LOWERCASE -> THIS IS IN ALL CAPS now this is in all lowercase
<TAB><SPC><TAB><SHFT>1 -> !
<CAPS>WWW<CAPS>.CODEGOLF.STACKEXCHANGE<SHFT>.COM -> WWW.codegolf.stackexchange>com
PROGRAMMING<CAPS><SPC>IS<SPC><CAPS>AWESOME -> programming IS awesome
<DEL><RET><DEL><RET><DEL> -> "" (Empty String)
মুছুন কীটি শুরুতে টিপিত হয় যার পরে কিছুই হয় না। তারপরে, রিটার্ন কীটি একটি নতুন লাইনের ফলস্বরূপ চাপানো হয় যা ব্যাকস্পেস কীটি আবার চাপ দেওয়ার পরে মুছে ফেলা হয়। অবশেষে, একই ক্রম (ব্যাকস্পেসের পরে নতুন লাইন) পুনরাবৃত্তি হয়। এত কিছুর পরেও আউটপুটটি খালি স্ট্রিং।
<SHFT>HI<SPC>HOW<SPC>ARE<SPC>YOU<SHFT>/<RET><SHFT>I<SPC><SHFT>AM<SPC>O<DEL><SHFT>GOOD<SHFT>1 -> Hi how are you?\nI Am Good!
<SHFT>,<CAPS>RET<CAPS><SHFT>. -> <RET>
স্ট্রিংটি আসল স্ট্রিং আউটপুট
<RET>
হওয়া উচিত । সুতরাং, এটি একটি নতুন লাইন আউটপুট করা উচিত নয় ।<CAPS>67890,.;'[]<CAPS> -> 67890,.;'[]
<CAPS><SHFT>A -> A
RE<DEL><DEL> -> "" (Empty String)
U<RET><DEL><DEL>I -> i
<DEL><DEL><DEL>5<DEL> -> "" (Empty string)
"" (Empty String) -> "" (Empty String)
এই codegolf তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতেছে!
AbcdefgHijk!@#$567890
? এছাড়াও, # 8 পরীক্ষায়, <SHFT>
স্ট্রিংয়ের শেষে, তবে বিধিগুলি বলে: "এটি নিশ্চিত যে একটি অক্ষর কী একটি <SHFT> সফল করবে।"