المسارات
/
Elixir
Elixir
/
التمارين
/
ورقة شخصية RPG
ورقة شخصية RPG

ورقة شخصية RPG

تمرين تعلّمي

مقدمة

IO

وحدة IO توفّر دوال التعامل مع الإدخال والإخراج.

الإخراج

لكتابة سلسلة نصية إلى المخرج القياسي، استخدم IO.puts. تضيف IO.puts دائمًا سطرًا جديدًا في نهاية السلسلة النصية. إن لم ترغب في هذا السلوك، فاستخدم IO.write بدلًا منها. تُرجع كلتا الدالتين الذرّة :ok إذا نجحتا.

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

IO.puts مفيدة لكتابة السلاسل النصية، لكن ليس لأكثر من ذلك. إن احتجت أداةً لتنقيح الكود تتيح لك كتابة أي قيمة إلى المخرج القياسي، فاستخدم 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 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.