Hetek óta tartó várakozás után te és a barátaid összegyűltök, hogy lejátsszátok a legeslegelső Dungeons & Dragons (D&D) játékotokat. Mivel ez a játék első alkalma, minden játékosnak létre kell hoznia egy karaktert, akivel játszik. A karakter képességeit hatoldalú kockák dobásával határozzák meg, de hol vannak a kockák? Megdöbbenve veszed észre, hogy a barátaid arra várnak, hogy te szerezd be a kockákat; hiszen a te ötleted volt, hogy D&D-t játsszatok! Pánikba esve ráébredsz, hogy elfelejtettél kockát hozni, ami azt jelentené, hogy nem lesz D&D játék. Mivel van némi alapvető programozási ismereted, gyorsan kitalálod a megoldást: írsz egy programot, ami szimulálja a kockadobásokat.
A Dungeons & Dragons játékban minden játékos azzal kezdi, hogy generál egy karaktert, akivel játszhat. Ennek a karakternek többek között hat képessége van: erő, ügyesség, állóképesség, intelligencia, bölcsesség és karizma. Ennek a hat képességnek az értékét véletlenszerűen határozzuk meg. Ehhez négy hatoldalú kockával dobsz, és feljegyzed a három legnagyobb kocka összegét. Ezt hatszor teszed meg, minden képességhez egyszer.
A karaktered kezdeti életerőpontjai 10 + a karaktered állóképesség-módosítója. A karaktered állóképesség-módosítóját úgy kapod meg, hogy a karaktered állóképességéből kivonsz 10-et, elosztod 2-vel, és lefelé kerekíted.
Írj egy véletlenszerű karaktergenerátort, amely követi a fenti szabályokat.
Például a négy kockával végzett hat dobás így nézhet ki:
Mivel az állóképesség 3, az állóképesség-módosító -4, az életerőpontok pedig 6.
A legtöbb programozási nyelv rendelkezik pszeudo-véletlen generátorral, de kevés programozási nyelvet terveztek kockadobásra. Egy ilyen nyelv a Troll.
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) PowerShell nyelvet 136 feladat segítségével, valódi emberi mentorálással, mindez ingyen.
Megvizsgáljuk, hogyan generálhatunk (látszólag) véletlenszerű kockadobásokat. Megismerkedsz a seedekkel, az álvéletlen számokkal és néhány gyakori buktatóval. Végül meglátjuk, miért kiváló a tulajdonságalapú tesztelés a véletlenszerű értékeket visszaadó függvények tesztelésére.