بعد أسابيع من الترقب، تجتمع أنت وأصدقاؤك لأول لعبة لكم من Dungeons & Dragons (D&D). ولأن هذه أول جلسة في اللعبة، فعلى كل لاعب أن يُنشئ شخصية يلعب بها. تُحدَّد قدرات الشخصية برمي نرد ذي ستة أوجه، ولكن أين النرد فعلًا؟ وترتجف من الصدمة حين تدرك أن أصدقاءك ينتظرون منك أنت أن تُحضر النرد، فقد كانت فكرتك أنت أن تلعبوا D&D! وحين تصاب بالذعر، تدرك أنك نسيت إحضار النرد، ما يعني ألا لعبة D&D. ولأنك تملك بعض مهارات البرمجة الأساسية، تجد حلًا سريعًا: ستكتب برنامجًا يحاكي رمي النرد.
في لعبة Dungeons & Dragons، يبدأ كل لاعب بتوليد شخصية يمكنه اللعب بها. وللشخصية، من بين أمور أخرى، ست قدرات: القوة والرشاقة والبنية والذكاء والحكمة والكاريزما. وهذه القدرات الست لها درجات تُحدَّد عشوائيًا. وتفعل ذلك برمي أربعة أحجار نرد ذات 6 أوجه وتسجيل مجموع أكبر ثلاثة أحجار. وتفعل ذلك ست مرات، مرة لكل قدرة.
نقاط الصحة الأولية لشخصيتك تساوي 10 + معدِّل بنية شخصيتك. وتجد معدِّل بنية شخصيتك بطرح 10 من بنية شخصيتك، ثم القسمة على 2 والتقريب إلى أسفل.
اكتب مولِّد شخصيات عشوائيًا يتبع القواعد أعلاه.
على سبيل المثال، قد تبدو الرميات الست لأربعة أحجار النرد كما يلي:
ولأن البنية تساوي 3، فإن معدِّل البنية يساوي -4 ونقاط الصحة تساوي 6.
توفِّر معظم لغات البرمجة مولِّدات أرقام (شبه) عشوائية، لكن لغات برمجة قليلة مصمَّمة لرمي أحجار النرد. ومن هذه اللغات Troll.
سجّل في Exercism لتتعلّم وتتقن CFML عبر 51 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.
نستكشف كيفية توليد رميات نرد عشوائية (ظاهريًا). ستتعرف على البذور والأعداد شبه العشوائية وبعض الأخطاء الشائعة. وأخيرًا، سنرى كيف أن الاختبار القائم على الخصائص ممتاز لاختبار الدوال التي تُرجع قيمًا عشوائية.