ট্র্যাক
/
Elixir
Elixir
/
অনুশীলনী
/
RPG ক্যারেক্টার শিট
RPG ক্যারেক্টার শিট

RPG ক্যারেক্টার শিট

লার্নিং অনুশীলনী

ভূমিকা

IO

ইনপুট ও আউটপুট পরিচালনার জন্য IO মডিউলটি ফাংশন সরবরাহ করে।

আউটপুট

স্ট্যান্ডার্ড আউটপুটে একটি স্ট্রিং লিখতে IO.puts ব্যবহার করুন। IO.puts স্ট্রিংয়ের শেষে সবসময় একটি নতুন লাইন যোগ করে। আপনি যদি এই আচরণটি না চান, তাহলে এর বদলে IO.write ব্যবহার করুন। সফল হলে দুটি ফাংশনই :ok অ্যাটমটি রিটার্ন করে।

IO.puts("Hi!")
# > Hi!
# => :ok

IO.puts স্ট্রিং লেখার জন্য দরকারি, তবে আর বিশেষ কোনো কাজে নয়। আপনার যদি debug করার জন্য এমন একটি টুল দরকার হয়, যা দিয়ে যেকোনো মান স্ট্যান্ডার্ড আউটপুটে লিখতে পারবেন, তাহলে এর বদলে IO.inspect ব্যবহার করুন। IO.inspect তাকে যে মানটি দেওয়া হয়, সেটিই অপরিবর্তিত অবস্থায় রিটার্ন করে, তাই এটি আপনার code-এর যেকোনো জায়গায় বসানো যায়। এটি আরও অনেক অপশনও নেয়, যেমন :label, যা দিয়ে আপনি এটিকে অন্য IO.inspect কল থেকে আলাদা করতে পারবেন।

ইনপুট

স্ট্যান্ডার্ড ইনপুট থেকে একটি লাইন পড়তে IO.gets ব্যবহার করুন। IO.gets একটি আর্গুমেন্ট নেয়: একটি স্ট্রিং, যা এটি ইনপুট চাওয়ার জন্য প্রম্পট হিসেবে প্রিন্ট করবে। IO.gets প্রম্পটের পরে নতুন লাইন যোগ করে না, দরকার হলে সেটি আপনাকেই যোগ করতে হবে।

IO.gets("What's your name?\n")
# > What's your name?
# < Mary
# => "Mary\n"

নির্দেশনা

আপনি আর আপনার বন্ধুরা কলম-কাগজে খেলা রোল-প্লেয়িং গেম খেলতে ভালোবাসেন, কিন্তু খেয়াল করলেন যে নতুন মানুষকে আপনার দলে যোগ করানো বেশ কঠিন। নতুনরা প্রায়ই চরিত্র তৈরি করতে গিয়ে হিমশিম খায়। শুরুটা কোথা থেকে করতে হবে, তারা জানে না। নতুন খেলোয়াড়দের সাহায্য করার জন্য আপনি ঠিক করলেন একটি ছোট প্রোগ্রাম লিখবেন, যা পুরো প্রক্রিয়াটি ধরে ধরে তাদের পথ দেখাবে।

1. নতুন খেলোয়াড়কে স্বাগত জানান

RPG.CharacterSheet.welcome/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি স্বাগত বার্তা প্রিন্ট করবে, আর :ok রিটার্ন করবে।

RPG.CharacterSheet.welcome()
# > Welcome! Let's fill out your character sheet together.
# => :ok

2. চরিত্রের নাম জিজ্ঞাসা করুন

RPG.CharacterSheet.ask_name/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি প্রশ্ন প্রিন্ট করবে, উত্তর পাওয়ার জন্য অপেক্ষা করবে, আর শুরুর ও শেষের ফাঁকা জায়গা বাদ দিয়ে সেই উত্তর রিটার্ন করবে।

RPG.CharacterSheet.ask_name()
# > What is your character's name?
# < Mathilde
# => "Mathilde"

3. চরিত্রের ক্লাস জিজ্ঞাসা করুন

RPG.CharacterSheet.ask_class/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি প্রশ্ন প্রিন্ট করবে, উত্তর পাওয়ার জন্য অপেক্ষা করবে, আর শুরুর ও শেষের ফাঁকা জায়গা বাদ দিয়ে সেই উত্তর রিটার্ন করবে।

RPG.CharacterSheet.ask_class()
# > What is your character's class?
# < healer
# => "healer"

4. চরিত্রের লেভেল জিজ্ঞাসা করুন

RPG.CharacterSheet.ask_level/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি একটি প্রশ্ন প্রিন্ট করবে, উত্তর পাওয়ার জন্য অপেক্ষা করবে, আর সেই উত্তর একটি ইন্টিজার হিসেবে রিটার্ন করবে।

RPG.CharacterSheet.ask_level()
# > What is your character's level?
# < 2
# => 2

5. আগের ধাপগুলোকে একত্রিত করুন

RPG.CharacterSheet.run/0 ফাংশনটি ইমপ্লিমেন্ট করুন। এটি নতুন খেলোয়াড়কে স্বাগত জানাবে, চরিত্রের নাম, ক্লাস আর লেভেল জিজ্ঞাসা করবে, আর চরিত্রের শিটটি একটি ম্যাপ হিসেবে রিটার্ন করবে। এটি "Your character" লেবেল দিয়ে ম্যাপটিও প্রিন্ট করবে।

RPG.CharacterSheet.run()
# > Welcome! Let's fill out your character sheet together.
# > What is your character's name?
# < Mathilde
# > What is your character's class?
# < healer
# > What is your character's level?
# < 2
# > Your character: %{class: "healer", level: 2, name: "Mathilde"}
# => %{class: "healer", level: 2, name: "Mathilde"}
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Elixir Exercism

RPG ক্যারেক্টার শিট শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।