مسیرها
/
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 مقداری را که به آن داده شده، بدون تغییر برمی‌گرداند، بنابراین می‌توان آن را در هر نقطه‌ای از کد شما قرار داد. همچنین گزینه‌های زیادی را می‌پذیرد، برای مثال :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 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.