Dice Notation Roller
Pravi stolni analizator notacije kockica: upišite 3d6+2, 4d6kh3 ili adv i dobijte svako pojedinačno bacanje kocke, zadržane/ispuštene kockice i zbroj.
Rezultat
Dice Notation Roller čita i baca istu skraćenicu koja se koristi za stolnim RPG stolovima i u pravilnicima: "NdS" znači bacanje N kockica sa S stranama, tako da "3d6" baca tri šesterostrane kockice. Dodajte ravni modifikator s +N ili -N ("3d6+2"), kombinirajte nekoliko grupa kockica u jednom izrazu ("2d8+1d6-1") ili upotrijebite D&D 5e stenografiju za prednost/nedostatak ("adv" baca dvije kockice s dvadeset strana i zadržava višu, "dis" zadržava nižu). Obilježavanje zadrži najviše i zadrži najniže ("4d6kh3" baca četiri šesterostrane kockice i zadrži najveće tri — standardni način za bacanje rezultata sposobnosti D&D) također je u potpunosti podržan.
Ispod haube ovo je pravi tokenizer i parser, a ne popis prepoznatih izraza: notacija se skenira znak po znak u tokene (grupe kockica, adv/dis ključne riječi, obični brojevi i +/- operatori), sastavlja se u malo stablo izraza i tek onda se procjenjuje. Svaka sintaktički valjana kombinacija funkcionira, uključujući zapis za koji nitko nije napisao primjer. Svaka se kockica baca pomoću kriptografskog generatora slučajnih brojeva preglednika (crypto.getRandomValues, ne Math.random) pomoću uzorkovanja odbijanja tako da svako lice ima točno jednake šanse, a rezultat pokazuje svaku pojedinačnu kockicu, koje su kockice zadržane ili ispuštene za kh/kl bacanja, primijenjeni modifikator i konačni zbroj.
Kako bi alat bio predvidljiv i brz, grupe kockica ograničene su na 100 kockica i 1000 strana po grupi, a čuvanje najvećeg/najnižeg broja ne može premašiti broj bačenih kockica. Pogrešno oblikovan zapis — nepoznati znak, dva operatora u nizu, viseći + na kraju — stvara specifičnu, čitljivu poruku o pogrešci umjesto tihog kvara ili pada. Sve se izvodi lokalno u pregledniku: nikakva notacija, valjak ili rezultat nikada se nigdje ne šalju.