টার্মিনাল আজকাল তাই বিরক্তিকর । তারা এ জাতীয় চেহারা দেখাত:
এখন তারা কেবল কোমল এবং নিস্তেজ এবং কালো-সাদা। আমি চাই আপনি আমাকে এমন একটি প্রোগ্রাম লিখুন যা আমার টার্মিনালটিকে আবার রঙিন করে তুলবে!
বিবরণ
এই উদাহরণটি রুবি কোডটি নিন:
বেশিরভাগ লিনাক্স টার্মিনালগুলি এই পালানোর ক্রমগুলি সমর্থন করে ( \e
পালানোর চরিত্রের জন্য দাঁড়ায়), এবং উইন্ডোজ এএনসিকন দিয়ে তাদের সমর্থন করতে পারে । এখানে নির্দিষ্ট পালাবার ক্রমের বাক্য গঠন যা কোনও স্ট্রিংয়ের পাঠ্য বা পটভূমির রঙ পরিবর্তন করতে পারে:
\e[{{COLOR}}m
যেখানে \e
পালানোর চরিত্রটি দাঁড়ায় ( 0x1B
এএসসিআইআই তে) এবং {{COLOR}}
আপনি যে রঙটি ব্যবহার করতে চান তার সংখ্যা দ্বারা প্রতিস্থাপন করা হয় ( তারপরে আরও বিশদ)। এই পালানোর ক্রমের পরে যে পাঠ্য আসবে তা নির্দেশিত হিসাবে ফর্ম্যাট হবে এবং এর মানটি 0
সমস্ত বিন্যাস পুনরায় সেট করবে।
আপনার চ্যালেঞ্জটি হ'ল এমন কিছু পাঠ্য নির্দিষ্ট করে একটি স্ট্রিং নেওয়া যা রঙ ধারণ করতে পারে এবং এর রঙিন সংস্করণ আউটপুট দেয়।
ইনপুট আউটপুট
সাধারণ পাঠ্যটি ঠিক সাধারণের মতো কাজ করে এবং আক্ষরিকভাবে মুদ্রিত হয়। উদাহরণস্বরূপ, ইনপুটটি waffles
কোনও বিশেষ রঙ ছাড়াই একই আউটপুট দেয়।
কোনও রঙ নির্দিষ্ট করার জন্য সিনট্যাক্স উইকিপিডিয়ায় সিনট্যাক্সের অনুরূপ । উদাহরণস্বরূপ, বাক্যে "বর্ণ লাল" শব্দগুলিকে রঙিন This is the color red!
করতে ইনপুটটি হবে:
This is {{red|the color red}}!
পটভূমির রঙগুলিও কাজ করে। আপনি যদি একটি সাদা পটভূমিতে কালো বর্ণগুলি চান, আপনি এটি ব্যবহার করবেন:
{{black|white|This text is black on white}}
শুধুমাত্র একটি পটভূমির রঙ পেতে, অগ্রভাগটি বাদ দিন:
{{|red|This text has a red background}}
সবিস্তার বিবরণী
দুটি উন্মুক্ত কোঁকড়ানো বন্ধনী সর্বদা রঙ নির্দেশের সূচনা নির্দিষ্ট করে । দুটি সমাপ্তি কোঁকড়া বন্ধনী শেষ নির্দিষ্ট করে। বন্ধনী সর্বদা মিলবে; {{
অনুষঙ্গ ছাড়া আর কখনও হবে না }}
এবং }}
এর সাথে সম্পর্কিত হওয়ার আগে কখনও আসবে না {{
। এই রঙ নির্দেশাবলী নেস্ট করা হবে না এবং {{
একটি রঙ নির্দেশের মধ্যে কখনও প্রদর্শিত হবে না।
রঙ নির্দেশের মধ্যে, সর্বদা একটি বা দুটি |
চিহ্ন থাকবে। যদি এটির একটি থাকে তবে তার আগে লেখাটি অগ্রভাগের রঙ এবং তারপরের পাঠ্যটি সেই রঙটিতে প্রদর্শিত স্ট্রিং। যদি দুটি থাকে তবে প্রথমটির আগে লেখাটি অগ্রভাগের রঙ, প্রথমটির পরে পাঠ্য কিন্তু দ্বিতীয়টির আগে পটভূমির রঙ এবং দ্বিতীয়টির পরে লেখাটি প্রদর্শন করার জন্য স্ট্রিং থাকে। এই উল্লম্ব বারগুলি রঙ নির্দেশের বাইরে উপস্থিত থাকতে পারে এবং আক্ষরিকভাবে মুদ্রণ করা উচিত।
অগ্রভাগের রঙ বা পটভূমির রঙ (তবে উভয়ই নয়) খালি থাকতে পারে, সেক্ষেত্রে আপনাকে এগুলি ডিফল্ট হিসাবে ছেড়ে দেওয়া উচিত। চূড়ান্ত স্ট্রিং (এক থেকে আউটপুট) কখনই খালি থাকে না।
নির্দিষ্ট রঙের আউটপুট পাঠ্যের দিকনির্দেশগুলি এখানে:
একটি বর্ণ ক্রম "বিবরণ" বিভাগে সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, 42 এর একটি রঙের ক্রম হবে
"\e[42m"
।কোনও রঙ সেট করতে, নীচে নির্ধারিত সংখ্যার রঙের ক্রমটি মুদ্রণ করুন:
Color name | Color sequence number (foreground / background) --------------+---------- black | 30 / 40 red | 31 / 41 green | 32 / 42 yellow | 33 / 43 blue | 34 / 44 magenta | 35 / 45 cyan | 36 / 46 lightgray | 37 / 47 darkgray | 90 / 100 lightred | 91 / 101 lightgreen | 92 / 102 lightyellow | 93 / 103 lightblue | 94 / 104 lightmagenta | 95 / 105 lightcyan | 96 / 106 white | 97 / 107
রঙের নামগুলি সংবেদনশীল এবং কোনও অবৈধ রঙের নাম সরবরাহ করা হবে না। আপনি ভালো জিনিস হ্যান্ডেল করতে হবে না
RED
বাlightgrey
(একটি সঙ্গে বানানe
)।আপনি রঙের ক্রম মুদ্রণ করার পরে এটি অনুসরণ করে সমস্ত পাঠ্যের জন্য প্রযোজ্য হবে। একটি রং ক্রম (ডিফল্ট রং রিসেট), আউটপুট একটি রং ক্রম শেষ করতে
0
("\e[0m"
)।
পরীক্ষা ক্ষেত্রে
{{|yellow| }}
{{|yellow| }} {{|yellow| }}
{{|yellow| }} {{red|'}} {{red|'}} {{|yellow| }}
{{|yellow| }} \_/ {{|yellow| }}
{{|yellow| }} {{|yellow| }}
{{|yellow| }}
এটি একটি হাসিমুখী চেহারা ... খারাপ লাল চোখ সহ করা উচিত।
বিধি
রঙের স্বয়ংক্রিয়ভাবে পার্স করার জন্য আপনি আপনার প্রোগ্রামিং ভাষার কোনও লাইব্রেরি বা ফাংশন ব্যবহার করতে পারবেন না। এর অর্থ হ'ল এর অর্থ নির্ধারণের জন্য আপনাকে অবশ্যই এক হতে হবে
"red"
; আপনার কাছে কোনও লাইব্রেরি স্বয়ংক্রিয়ভাবে এটি করতে পারে না।এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে!
\n\[\e[32m\]\w\n\[\e[0m\]>
(সবুজ ডিরেক্টরিের নাম, পরের লাইনে প্লেইন প্রম্পট), তবে আমি এটি কোনও প্রোগ্রাম (এ পর্যন্ত পাইথন এবং জাভা চেষ্টা করে) থেকে কাজ করতে পারি না। কোন ধারনা?
echo -e "\e[31mtest\e[0m"
।
you
তিনি রূপকভাবে উপায়ে your program
(যেমন একটি লাইব্রেরি ফাংশন একটি কল বিরোধিতা), এবং যে তিনি লাগে determine
অর্থে figure out
হিসেবে নয়, choose
। অর্থাৎ এটি আপনার প্রোগ্রাম যা ম্যাপিংটি পরিচালনা করবে: স্ট্রিং ("লাল") | -> পূর্ণসংখ্যা (31)। তিনি red
কেবল 31
তাই বলেছিলেন, সেই তথ্য প্রোগ্রামে সংহত করা দরকার। যদিও এটি যুক্তিযুক্ত হতে পারে ঠিক কী হিসাবে গণনা করা যায় your program
- আমরা কী সাধারণ-উদ্দেশ্যে স্ট্রিং ম্যানিপুলেশন ফাংশন ব্যবহার করতে পারি? - অসম্মানজনকভাবে প্রতারণা / গালাগালি করবেন না।