রেঞ্জ এক বা একাধিক ধারাবাহিক ইন্টিজারের একটি সিকোয়েন্স বোঝায়। দুটি ইন্টিজারকে .. দিয়ে যুক্ত করে এগুলো তৈরি করা হয়।
1..5
রেঞ্জ ঊর্ধ্বক্রমে বা নিম্নক্রমে হতে পারে। এতে সবসময় প্রথম ও শেষ মান দুটোই অন্তর্ভুক্ত থাকে।
একটি রেঞ্জ Enumerable প্রোটোকল ইমপ্লিমেন্ট করে, অর্থাৎ Enum মডিউলের ফাংশনগুলো ব্যবহার করে রেঞ্জ নিয়ে কাজ করা যায়।
দাবা খেলার একজন উৎসাহী হিসেবে আপনি খেলাটির নিজের একটি সংস্করণ লিখতে চাইবেন। হ্যাঁ, অনলাইনে দাবার অনেক ইমপ্লিমেন্টেশন হয়তো আগেই পাওয়া যায়, কিন্তু আপনারটি হবে অনন্য!
তবে আপনার কল্পনাকে ডানা মেলতে দেওয়ার আগে প্রাথমিক বিষয়গুলো সামলে নিতে হবে। চলুন বোর্ড তৈরি করে শুরু করি।
দাবার বোর্ডের প্রতিটি ঘর চিহ্নিত করা হয় একটি অক্ষর-সংখ্যার জোড়া দিয়ে। ঘরগুলোর খাড়া কলামগুলোকে বলা হয় ফাইল, যেগুলো A থেকে H পর্যন্ত লেবেল করা। আর আড়াআড়ি সারিগুলোকে বলা হয় র্যাঙ্ক, যেগুলো ১ থেকে ৮ পর্যন্ত সংখ্যায়িত।
rank_range/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি ১ থেকে ৮ পর্যন্ত ইন্টিজারের একটি রেঞ্জ রিটার্ন করবে।
Chessboard.rank_range()
file_range/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি বড় হাতের অক্ষর A-এর কোড পয়েন্ট থেকে বড় হাতের অক্ষর H-এর কোড পয়েন্ট পর্যন্ত ইন্টিজারের একটি রেঞ্জ রিটার্ন করবে।
Chessboard.file_range()
ranks/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি ১ থেকে ৮ পর্যন্ত ইন্টিজারের একটি অ্যারে রিটার্ন করবে। অ্যারেটি হাতে লিখবেন না, rank_range/0 ফাংশন থেকে পাওয়া রেঞ্জ থেকে এটি তৈরি করুন।
Chessboard.ranks()
# => [1, 2, 3, 4, 5, 6, 7, 8]
files/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি "A" থেকে "H" পর্যন্ত অক্ষরের (স্ট্রিং) একটি অ্যারে রিটার্ন করবে। অ্যারেটি হাতে লিখবেন না, file_range/0 ফাংশন থেকে পাওয়া রেঞ্জ থেকে এটি তৈরি করুন।
Chessboard.files()
# => ["A", "B", "C", "D", "E", "F", "G", "H"]
Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।