আপনার চ্যালেঞ্জটি হ'ল পাঠ্যের লাইন হিসাবে ইনপুট নেওয়া এবং এটির মতো আউটপুট।
ইনপুট আউটপুট
ইনপুটটি এমন একটি স্ট্রিং হবে যাতে কেবল প্রিন্টযোগ্য ASCII অক্ষর থাকে। প্রথম বা শেষের অক্ষরগুলি কখনই শূন্যস্থান হতে পারে না এবং একসাথে দুটি স্পেস কখনও পাওয়া যায় না। এটি সর্বদা কমপক্ষে দুটি অক্ষর দীর্ঘ হবে।
আপনার আউটপুট একই স্ট্রিং হওয়া উচিত, যা নীচে বর্ণিত হবে রংধনু রঙে রূপান্তরিত। আউটপুটটি চিত্রের আকারে থাকতে পারে (কোনও ফাইলে সংরক্ষিত হয়েছে বা অন্য কোনওভাবে উপলভ্য হয়েছে), বা এটি কেবল স্ক্রিনে ফলাফল প্রদর্শন করতে পারে (নীচের রেফারেন্স বাস্তবায়নের ফলে)।
রূপান্তর
স্ট্রিংয়ের প্রতিটি বর্ণের রঙটি কী হওয়া উচিত তা নির্ধারণ করতে নিম্নলিখিত অ্যালগরিদম ব্যবহার করুন। নোট করুন যে প্রতিটি বর্ণের নিজস্ব স্বতন্ত্র রঙ । এটি গ্রেডিয়েন্ট নয়!
যদি এই চরিত্রটি একটি স্থান হয়:
- ... এতে কিছু যায় আসে না, কারণ স্পেসগুলি সত্যিই পারে না ... যাইহোক রঙ থাকতে পারে। কেবল একটি স্থান আউটপুট।
অন্যথায়:
আসুন
i= স্ট্রিং-এ এই অক্ষরটির সূচক (0-ভিত্তিক, সুতরাং প্রথম অক্ষরের জন্য, এটি হ'ল0), স্থানগুলি গণনা করা হচ্ছে না। উদাহরণস্বরূপ, স্ট্রিংfoo bar, এই মান হতে হবে4জন্যa। অন্য কথায়, এখন পর্যন্ত এটি কতগুলি অ-স্পেসের মুখোমুখি হয়েছিল।আসুন
n= স্ট্রিংয়ের ফাঁকা জায়গাগুলির সংখ্যা।এই চিঠিটির রঙটি এখন এইচএসএল নলাকার-সমন্বিত সিস্টেমে প্রকাশ করা যেতে পারে , যেমন [হিউ = (
i/n) * 360 °, স্যাচুরেশন = 100%, হালকাতা = 50%]।
নোট এই দিক নির্দেশ পরোক্ষভাবে যে যে জন্য আউটপুট fooএবং f ooঠিক একই হতে হবে পরে একটি যোগ স্পেসের জন্য ছাড়া f। এটি হ'ল, সমস্ত বর্ণগুলিতে একই রঙ বজায় রাখা উচিত।
রূপান্তর প্রক্রিয়াটির জন্য আরও বিধিগুলি বিধি বিভাগে নীচে বর্ণিত হয়েছে ।
রেফারেন্স বাস্তবায়ন
এটি জাভাস্ক্রিপ্টে লেখা হয়েছে এবং আপনি "রান কোড স্নিপেট" বোতাম টিপে চেষ্টা করে দেখতে পারেন।
window.addEventListener('load', function() {
addRainbow('Your challenge is to take input as a line of text and ' +
'output it like this.');
});
// append this text rainbow-ified to the argument (document.body by default)
function addRainbow(text, el) {
(el || document.body).appendChild(makeRainbow(text));
}
// returns a <div> that contains the text in a rainbow font
function makeRainbow(text) {
var div = document.createElement('div');
var letterCount = text.replace(/ /g, '').length, spaceCount = 0;
text.split('').forEach(function(letter, idx) {
if (letter == ' ') ++spaceCount;
div.appendChild(makeLetter(letter, (idx - spaceCount) / letterCount));
});
return div;
}
// returns a <span> that contains the letter in the specified color
function makeLetter(letter, hue) {
hue = Math.floor(hue * 360);
var span = document.createElement('span');
span.appendChild(document.createTextNode(letter));
span.style.color = 'hsl(' + hue + ', 100%, 50%)';
return span;
}
বিধি
কোনও বর্ণের হিউ মান গণনা করার সময়, আপনি অবশ্যই একটি দশমিক (অ-পূর্ণসংখ্যার) নম্বর পাবেন। আপনি এটিকে নিকটতম পূর্ণসংখ্যার সাথে গোল করতে পারেন, এটি মেঝেতে রাখতে পারেন, সিলিংটি নিতে পারেন বা একেবারেই গোল নাও করতে পারেন।
হরফের আকার অবশ্যই পঠনযোগ্য। এখানে এটি একটি 10pt আকারের ফন্ট বা তার চেয়ে বড় হিসাবে সংজ্ঞায়িত করা হয়েছে।
আপনি পাঠ্য আউটপুট করতে একটি নির্দিষ্ট-প্রস্থের ক্যানভাস বা "অঙ্কন অঞ্চল" ব্যবহার করতে পারেন তবে এটি অবশ্যই এই পোস্টের প্রথম বাক্যে প্রদত্ত উদাহরণের সাথে ফিট করতে সক্ষম হবে ।
স্কোরিং কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিততে পারে।




