شخصية D&D

شخصية D&D

سهل

مقدمة

بعد أسابيع من الترقب، تجتمع أنت وأصدقاؤك لأول لعبة لكم من Dungeons & Dragons (D&D). ولأن هذه أول جلسة في اللعبة، فعلى كل لاعب أن يُنشئ شخصية يلعب بها. تُحدَّد قدرات الشخصية برمي نرد ذي ستة أوجه، ولكن أين النرد فعلًا؟ وترتجف من الصدمة حين تدرك أن أصدقاءك ينتظرون منك أنت أن تُحضر النرد، فقد كانت فكرتك أنت أن تلعبوا D&D! وحين تصاب بالذعر، تدرك أنك نسيت إحضار النرد، ما يعني ألا لعبة D&D. ولأنك تملك بعض مهارات البرمجة الأساسية، تجد حلًا سريعًا: ستكتب برنامجًا يحاكي رمي النرد.

التعليمات

في لعبة Dungeons & Dragons، يبدأ كل لاعب بتوليد شخصية يمكنه اللعب بها. وللشخصية، من بين أمور أخرى، ست قدرات: القوة والرشاقة والبنية والذكاء والحكمة والكاريزما. وهذه القدرات الست لها درجات تُحدَّد عشوائيًا. وتفعل ذلك برمي أربعة أحجار نرد ذات 6 أوجه وتسجيل مجموع أكبر ثلاثة أحجار. وتفعل ذلك ست مرات، مرة لكل قدرة.

نقاط الصحة الأولية لشخصيتك تساوي 10 + معدِّل بنية شخصيتك. وتجد معدِّل بنية شخصيتك بطرح 10 من بنية شخصيتك، ثم القسمة على 2 والتقريب إلى أسفل.

اكتب مولِّد شخصيات عشوائيًا يتبع القواعد أعلاه.

على سبيل المثال، قد تبدو الرميات الست لأربعة أحجار النرد كما يلي:

  • 5، 3، 1، 6: تستبعد العدد 1 وتجمع 5 + 3 + 6 = 14، وتُسنِد المجموع إلى القوة.
  • 3، 2، 5، 3: تستبعد العدد 2 وتجمع 3 + 5 + 3 = 11، وتُسنِد المجموع إلى الرشاقة.
  • 1، 1، 1، 1: تستبعد العدد 1 وتجمع 1 + 1 + 1 = 3، وتُسنِد المجموع إلى البنية.
  • 2، 1، 6، 6: تستبعد العدد 1 وتجمع 2 + 6 + 6 = 14، وتُسنِد المجموع إلى الذكاء.
  • 3، 5، 3، 4: تستبعد العدد 3 وتجمع 5 + 3 + 4 = 12، وتُسنِد المجموع إلى الحكمة.
  • 6، 6، 6، 6: تستبعد العدد 6 وتجمع 6 + 6 + 6 = 18، وتُسنِد المجموع إلى الكاريزما.

ولأن البنية تساوي 3، فإن معدِّل البنية يساوي -4 ونقاط الصحة تساوي 6.

Note

توفِّر معظم لغات البرمجة مولِّدات أرقام (شبه) عشوائية، لكن لغات برمجة قليلة مصمَّمة لرمي أحجار النرد. ومن هذه اللغات Troll.

العشوائية في Zig

تتجنّب المكتبة القياسية في Zig الحالة العامة الخفية، لذا بدلًا من الاحتفاظ بمولّد أعداد عشوائية خاص بك، تستقبل دوالك واجهة std.Random لسحب القيم منها. تمرّر الاختبارات مولّدًا مزوّدًا ببذرة من std.testing.random_seed، وتتحقق من أن المولّدات ذات البذرة نفسها تنتج الشخصيات نفسها.

التحقق من العشوائية

يُتحقَّق من توزيع درجات قدراتك عبر اختبارات مربع كاي عند مستوى دلالة يساوي p < 0.0001:

  • تُقارَن الدرجات التي تُرجعها ability بالتوزيع المتوقع؛
  • وتُقارَن كل قدرة من قدرات الشخصية الست بالتوزيع المتوقع؛
  • ويُقارَن نمط الدرجات الفردية والزوجية عبر قدرات الشخصية الست بما قد تُنتجه قدرات مستقلة.

إذا كان التنفيذ صحيحًا، فإن احتمال فشله في كل اختبار أقل من 0.01%.

راجع التعليمات أعلاه للاطلاع على تعريف درجة القدرة.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Zig Exercism

مستعد لبدء شخصية D&D؟

سجّل في Exercism لتتعلّم وتتقن Zig عبر 104 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.

تعمّق في شخصية D&D!

نستكشف كيفية توليد رميات نرد عشوائية (ظاهريًا). ستتعرف على البذور والأعداد شبه العشوائية وبعض الأخطاء الشائعة. وأخيرًا، سنرى كيف أن الاختبار القائم على الخصائص ممتاز لاختبار الدوال التي تُرجع قيمًا عشوائية.