Wałek do notacji kostek
Prawdziwy parser zapisu kości na stole: wpisz 3d6+2, 4d6kh3 lub adv i uzyskaj każdy pojedynczy rzut kostką, zatrzymane/upuszczone kostki i sumę.
Wynik
Dice Notation Roller czyta i rzuca tym samym skrótem, który jest używany na stołach RPG i w podręcznikach: „NdS” oznacza rzuć N kostkami o krawędziach S, więc „3k6” rzuca trzema sześciościennymi kostkami. Dodaj płaski modyfikator za pomocą +N lub -N („3k6+2”), połącz kilka grup kości w jednym wyrażeniu („2k8+1k6-1”) lub użyj skrótu zalety/wady D&D 5e („adv” rzuca dwiema dwudziestościennymi kostkami i zatrzymuje wyższą, „dis” zatrzymuje dolną). Zapis „Utrzymuj najwyższą i najniższą” („4d6kh3” rzuca czterema sześciościennymi kostkami i zatrzymuje trzy najwyższe — standardowy sposób rzucania wynikami umiejętności D&D) jest również w pełni obsługiwany.
Pod maską kryje się prawdziwy tokenizator i parser, a nie lista rozpoznanych wyrażeń: zapis jest skanowany znak po znaku w tokeny (grupy kości, słowa kluczowe adv/dis, zwykłe liczby i operatory +/-), łączone w małe drzewo wyrażeń i dopiero wtedy oceniane. Działa każda poprawna składniowo kombinacja, łącznie z notacją, dla której nikt nie napisał przykładu. Każda kość jest rzucana za pomocą kryptograficznego generatora liczb losowych przeglądarki (crypto.getRandomValues, a nie Math.random) przy użyciu próbkowania odrzucenia, więc każda ściana ma dokładnie równe szanse, a wynik pokazuje każdą pojedynczą kość, które kości zostały zachowane lub odrzucone w przypadku rzutów kh/kl, zastosowany modyfikator i ostateczną sumę.
Aby narzędzie było przewidywalne i szybkie, grupy kości są ograniczone do 100 kości i 1000 boków na grupę, a najwyższa/najniższa liczba nie może nigdy przekroczyć liczby rzuconych kości. Zniekształcony zapis — nieznany znak, dwa operatory w rzędzie, wiszący znak + na końcu — powoduje wyświetlenie konkretnego, czytelnego komunikatu o błędzie zamiast cichej awarii lub awarii. Wszystko działa lokalnie w przeglądarce: żaden zapis, rzut ani wynik nie są nigdzie wysyłane.